From c010071eaa6e5112e65bef2f790a7acf98333d59 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 22 Jan 2026 14:14:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E4=BF=AE=E5=A4=8D=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=86=E5=8D=B7=E5=8A=9F=E8=83=BD=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AD=90=E9=92=A2=E5=8D=B7ID=E6=9B=B4=E6=96=B0=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改updateChildCoilIdsQrcodeCoilId方法参数,添加旧钢卷ID参数 - 在分卷步骤查找逻辑中增加parentCoilId验证条件 - 将coilPendingActionService更新方式改为直接使用mapper更新 - 修复分卷过程中子钢卷ID传递的参数顺序问题 - 优化钢卷分卷步骤中child_coil_ids字段的更新逻辑 --- .../impl/WmsMaterialCoilServiceImpl.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index ec8f78f4..69ff4f72 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -21,7 +21,7 @@ import com.klp.domain.bo.*; import com.klp.domain.vo.*; import com.klp.domain.WmsCoilPendingAction; import com.klp.domain.bo.WmsCoilPendingActionBo; -import com.klp.mapper.WmsDeliveryPlanMapper; +import com.klp.mapper.*; import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -29,11 +29,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.klp.mapper.WmsMaterialCoilMapper; -import com.klp.mapper.WmsStockMapper; -import com.klp.mapper.WmsProductMapper; -import com.klp.mapper.WmsRawMaterialMapper; -import com.klp.mapper.WmsGenerateRecordMapper; import com.klp.service.IWmsMaterialCoilService; import com.klp.service.IWmsStockService; import com.klp.service.IWmsGenerateRecordService; @@ -69,6 +64,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { private final IWmsRawMaterialService rawMaterialService; private final IWmsBomItemService bomItemService; private final IWmsCoilPendingActionService coilPendingActionService; + private final WmsCoilPendingActionMapper coilPendingActionMapper; private final IWmsProductService productService; private final ISysUserService userService; private final WmsDeliveryPlanMapper deliveryPlanMapper; @@ -1393,7 +1389,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { for (WmsMaterialCoil newChildCoil : newCoils) { if (newChildCoil.getQrcodeRecordId() != null) { // 更新该子钢卷的分卷步骤中的child_coil_ids字段 - updateChildCoilIdsQrcodeCoilId(newChildCoil.getQrcodeRecordId(), newChildCoil.getCoilId(), childCoilIdsStr); + updateChildCoilIdsQrcodeCoilId(oldCoil.getCoilId(), newChildCoil.getQrcodeRecordId(), newChildCoil.getCoilId(), childCoilIdsStr); } else { log.warn("子钢卷缺少二维码记录ID,跳过分卷步骤child_coil_ids更新,coilId: {}", newChildCoil.getCoilId()); } @@ -3123,7 +3119,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { * @param currentCoilId 当前子钢卷ID * @param childCoilIdsStr 本次分卷产生的所有子钢卷ID的逗号分隔字符串 */ - private void updateChildCoilIdsQrcodeCoilId(Long qrcodeRecordId, Long currentCoilId, String childCoilIdsStr) { + private void updateChildCoilIdsQrcodeCoilId(Long oldCoilId, Long qrcodeRecordId, Long currentCoilId, String childCoilIdsStr) { log.info("开始更新子钢卷二维码的分卷步骤child_coil_ids,qrcodeRecordId: {}, currentCoilId: {}, childCoilIdsStr: {}", qrcodeRecordId, currentCoilId, childCoilIdsStr); @@ -3163,7 +3159,12 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { for (int i = steps.size() - 1; i >= 0; i--) { Map step = steps.get(i); String operation = (String) step.get("operation"); - if ("分卷".equals(operation)) { + Long parentCoilId = null; + Object oldCoilIdObj = step.get("old_coil_id"); + if (oldCoilIdObj != null) { + parentCoilId = Long.valueOf(oldCoilIdObj.toString()); + } + if ("分卷".equals(operation) && oldCoilId.equals(parentCoilId)) { lastSplitStep = step; break; // 找到最新的分卷步骤就停止 } @@ -3362,10 +3363,12 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { String.valueOf(childCoil.getCoilId()) : existingChildCoilIds + "," + childCoil.getCoilId(); - WmsCoilPendingActionBo updatePendingBo = new WmsCoilPendingActionBo(); - updatePendingBo.setActionId(pendingActionId); - updatePendingBo.setRemark(updatedChildCoilIds); - coilPendingActionService.updateByBo(updatePendingBo); + coilPendingActionMapper.update( + null, + Wrappers.lambdaUpdate() + .eq(WmsCoilPendingAction::getActionId, pendingActionId) + .set(WmsCoilPendingAction::getRemark, updatedChildCoilIds) + ); // 10. 返回创建的子钢卷信息 WmsMaterialCoilVo result = queryById(childCoil.getCoilId()); @@ -3431,7 +3434,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { for (WmsMaterialCoil childCoil : childCoils) { if (childCoil.getQrcodeRecordId() != null) { - updateChildCoilIdsQrcodeCoilId(childCoil.getQrcodeRecordId(), childCoil.getCoilId(), allChildCoilIdsStr); + updateChildCoilIdsQrcodeCoilId(parentCoilId,childCoil.getQrcodeRecordId(), childCoil.getCoilId(), allChildCoilIdsStr); } }