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()