rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java
@@ -4,14 +4,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.vincent.rsf.server.manager.service.QlyIsptItemService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -19,6 +24,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.*; @Api(tags = "质检明细") @RestController public class QlyIsptItemController extends BaseController { @@ -107,4 +113,18 @@ ExcelUtil.build(ExcelUtil.create(qlyIsptItemService.list(), QlyIsptItem.class), response); } @PreAuthorize("hasAuthority('manager:qlyIsptItem:update')") @ApiOperation("批量修改") @PostMapping("/qlyIsptItem/batch/update") public R batchUpdate(@RequestBody IsptItemsParams params) { if (Objects.isNull(params)) { throw new CoolException("参数不能为空!!"); } if (qlyIsptItemService.batchUpdate(params)) { return R.ok("修改成功!!"); } else { return R.error("修改失败!!"); } } } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/IsptItemsParams.java
New file @@ -0,0 +1,29 @@ package com.vincent.rsf.server.manager.controller.params; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.List; /** * @author Ryan * @version 1.0 * @title IsptItemsParams * @description * @create 2025/4/1 09:41 */ @Data @Accessors(chain = true) @ApiModel(value = "IsptItemsParams", description = "明细修改参数") public class IsptItemsParams implements Serializable { @ApiModelProperty("明细参数") private List<QlyIsptItem> isptItem; @ApiModelProperty("类型:1:合格, 2:不合格, 0: 其它(默认)") private String type; } rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/QlyInspect.java
@@ -54,6 +54,9 @@ @ApiModelProperty("质检状态") private String isptStatus; @ApiModelProperty("质检结果") private Short isptResult; /** * 业务类型 */ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java
@@ -1,8 +1,12 @@ package com.vincent.rsf.server.manager.service; import com.baomidou.mybatisplus.extension.service.IService; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; import com.vincent.rsf.server.manager.entity.QlyIsptItem; public interface QlyIsptItemService extends IService<QlyIsptItem> { boolean batchUpdate(IsptItemsParams params); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
@@ -1,12 +1,84 @@ package com.vincent.rsf.server.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; import com.vincent.rsf.server.manager.entity.QlyInspect; import com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.vincent.rsf.server.manager.service.QlyInspectService; import com.vincent.rsf.server.manager.service.QlyIsptItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @Service("qlyIsptItemService") public class QlyIsptItemServiceImpl extends ServiceImpl<QlyIsptItemMapper, QlyIsptItem> implements QlyIsptItemService { @Autowired private QlyInspectService qlyInspectService; /** * @author Ryan * @description 批量修改 * @param * @return * @time 2025/4/1 09:40 */ @Override @Transactional(rollbackFor = Exception.class) public boolean batchUpdate(IsptItemsParams params) { if (Objects.isNull(params.getIsptItem()) || params.getIsptItem().isEmpty()) { throw new CoolException("ID不能为空!!"); } List<QlyIsptItem> isptItem = params.getIsptItem(); List<Long> list = isptItem.stream().map(QlyIsptItem::getId).collect(Collectors.toList()); if (params.getType().equals("2") || params.getType().equals("1")) { if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>() .set(QlyIsptItem::getIsptResult, params.getType()) .in(QlyIsptItem::getId, list))) { throw new CoolException("修改失败!!"); } } else { if (!this.updateBatchById(isptItem)) { throw new CoolException("明细修改失败"); } } List<QlyIsptItem> isptItems = this.list(new LambdaQueryWrapper<QlyIsptItem>().in(QlyIsptItem::getId, list)); if (isptItems.isEmpty()) { throw new CoolException("数据错误:明细不存在!!"); } Map<Long, List<QlyIsptItem>> listMap = isptItems.stream().collect(Collectors.groupingBy(QlyIsptItem::getIspectId)); for (Long key : listMap.keySet()) { QlyInspect inspect = qlyInspectService.getById(key); List<QlyIsptItem> items = listMap.get(key); Double safeQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); Double rcptQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); Double disQty = items.stream().mapToDouble(QlyIsptItem::getDisQty).sum(); Double qlyQty = safeQty + disQty; //安全数量,质检数量 inspect.setSafeQty(safeQty) .setIsptQty(qlyQty); if (Double.compare(disQty, 0) > 0) { inspect.setIsptResult(Short.parseShort("4")); } if (Double.compare(safeQty, rcptQty) == 0) { inspect.setIsptResult(Short.parseShort("1")); } if (!qlyInspectService.updateById(inspect)) { throw new CoolException("质检数量修改失败!!"); } } return true; } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -56,7 +56,7 @@ throw new CoolException("组拖信息不存在!!"); } /**获取组拖明细**/ List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, ids)); List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, ids)); if (waitPakinItems.isEmpty()) { throw new CoolException("数据错误:组拖明细不存在"); } rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -25,7 +25,7 @@ //TODO 库位策略后续排期 LocService locService = SpringUtils.getBean(LocService.class); Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type), false); Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type), false); return Objects.isNull(loc) ? loc.getCode() : null; }