fix(wms): 修复钢卷分卷功能中的子钢卷ID更新逻辑
- 修改updateChildCoilIdsQrcodeCoilId方法参数,添加旧钢卷ID参数 - 在分卷步骤查找逻辑中增加parentCoilId验证条件 - 将coilPendingActionService更新方式改为直接使用mapper更新 - 修复分卷过程中子钢卷ID传递的参数顺序问题 - 优化钢卷分卷步骤中child_coil_ids字段的更新逻辑
This commit is contained in:
@@ -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<String, Object> 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.<WmsCoilPendingAction>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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user