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); } }