From ab3498e45244fa1dd912accc065fe83f7e68e2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 14 Jun 2026 21:11:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor(qms):=20=E4=BC=98=E5=8C=96=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E5=9B=9E=E8=B0=83=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 简化质检单存在性检查逻辑,使用exists方法替代查询列表 - 优化收货明细更新方式,改用实体对象更新替代lambdaUpdate - 修复二维码更新中的字段映射错误,将materialCode改为barcodeCode - 调整二维码状态更新条件,将或操作改为与操作 - 优化PDI检测回调的日志信息和事务注解位置 - 统一质检相关日志信息格式,增加业务标识区分 --- .../srm/receive/controller/QmsController.java | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java index b6ce7f15..a79732e9 100644 --- a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java +++ b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java @@ -70,14 +70,11 @@ public class QmsController extends BaseController { @Transactional @PostMapping("/iqc/incoming") public ApiResult iqcIncoming(@RequestBody @NotNull WmsIncomingInspectionTaskCallbackQO qo) { - log.info("质检单解析完成, 单号: {}, 物料: {}, 结果: {}", qo.getDeliveryOrderNo(), qo.getMaterialNo(), qo.getInspectionResult()); - List inspects = srmQualityInspectionService.lambdaQuery() + log.info("IQC检测回调, 单号: {}, 物料: {}, 结果: {}", qo.getDeliveryOrderNo(), qo.getMaterialNo(), qo.getInspectionResult()); + VUtil.trueThrowBusinessError(srmQualityInspectionService.lambdaQuery() .eq(WmsSrmQualityInspection::getInspectionNum, qo.getTaskNo()) - .list(); - if (CollectionUtil.isNotEmpty(inspects)) { - log.warn("质检单已存在, 跳过处理: {}", qo.getTaskNo()); - VUtil.trueThrowBusinessError(true).throwMessage("质检单已存在"); - } + .exists() + ).throwMessage("质检单已存在"); // 找到入库的明细 WmsQcReceiveItem receiveItem = qcReceiveItemService.lambdaQuery() @@ -174,12 +171,10 @@ public class QmsController extends BaseController { Pair returnDto = sapService.zwm3a18(zwm3A18DTO); log.info("SAP质检入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey(), returnDto.getValue()); // 更新收货明细的物料凭证和入库数量 - qcReceiveItemService.lambdaUpdate() - .eq(WmsQcReceiveItem::getId, receiveItem.getId()) - .set(WmsQcReceiveItem::getInQty, qo.getQualifiedQty()) - .set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey()) - .set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue()) - .update(); + receiveItem.setInQty(BigDecimal.valueOf(qo.getQualifiedQty())); + receiveItem.setMaterialDoc(returnDto.getKey()); + receiveItem.setMaterialDocYear(returnDto.getValue()); + qcReceiveItemService.updateById(receiveItem); // 检查并更新收货单完成状态 List allItems = qcReceiveItemService.lambdaQuery() @@ -210,34 +205,34 @@ public class QmsController extends BaseController { .eq(WmsQcReceive::getOrderNo, inspect.getNoteNum()) .set(WmsQcReceive::getIsCheck, isCheck) .update(); - qcReceiveItemService.updateCheckNum(inspect.getInspectionQty(), inspect.getNoteNum(), inspect.getLineNumber(), inspect.getItemCode(), inspect.getReceiveNum()); + qcReceiveItemService.updateCheckNum(inspect.getInspectionQty(), inspect.getNoteNum(), inspect.getLineNumber(), inspect.getItemCode(), receiveItem.getMaterialDoc()); //更新二维码数量 if (CollectionUtil.isNotEmpty(qo.getQrCodes())) { List qrCodeMasters = qrCodeMasterService.getByCodes(qo.getQrCodes().stream().map(MaterialQrCodeDTO::getQrCode).toList()); qrCodeMasters.forEach(qrCodeMaster -> { MaterialQrCodeDTO dto = qo.getQrCodes().stream() - .filter(qrCodeDTO -> StrUtil.equals(qrCodeDTO.getQrCode(), qrCodeMaster.getMaterialCode())) + .filter(qrCodeDTO -> StrUtil.equals(qrCodeDTO.getQrCode(), qrCodeMaster.getBarcodeCode())) .findFirst() .get(); qrCodeMaster.setQuantity(qrCodeMaster.getQuantity().subtract(BigDecimal.valueOf(dto.getUnqualifiedQty()))); VUtil.trueThrowBusinessError(qrCodeMaster.getQuantity().compareTo(BigDecimal.ZERO) < 0) .throwMessage(dto.getQrCode() + "数据异常"); - if (qrCodeMaster.getQuantity().compareTo(BigDecimal.ZERO) == 0 || qrCodeMaster.getParentBarcodeId() > 0) { + if (qrCodeMaster.getQuantity().compareTo(BigDecimal.ZERO) == 0 && qrCodeMaster.getParentBarcodeId() > 0) { qrCodeMaster.setParentBarcodeId(0L); } }); + qrCodeMasterService.updateBarCode(qrCodeMasters); } - log.info("质检单处理完成: {}, 结果: {}", qo.getTaskNo(), inspect.getInspectionResult()); + log.info("IQC检测回调处理完成: {}, 结果: {}", qo.getTaskNo(), inspect.getInspectionResult()); return ApiResult.success(); } /** * PDI检测回调 */ - @Transactional @PostMapping("/pdi") public ApiResult pdi(@RequestBody @NotNull PdiInspectionTaskCallbackQO qo) { - log.info("质检单解析完成, 单号: {}, 是否合格: {}", qo.getOrderNo(), qo.isPass()); + log.info("PDI检测回调, 单号: {}, 是否合格: {}", qo.getOrderNo(), qo.isPass()); WmsInProduceOrder order = produceOrderService.getByNo(qo.getOrderNo()); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); WmsInProduceOrderItem item = produceOrderItemService.lambdaQuery()