diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java index 83808b29..6f679aac 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java @@ -130,8 +130,8 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer validEntityBeforeSave(add); if (add.getCoilId() != null){ WmsMaterialCoil materialCoil = materialCoilMapper.selectById(add.getCoilId()); - if (materialCoil.getExclusiveStatus() !=0) { - throw new RuntimeException("该钢卷正在单步分条,请勿重复操作!"); + if (materialCoil.getDataType() == 0) { + throw new RuntimeException("该钢卷为历史钢卷不能被操作"); } } // 设置默认值 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 0dd98245..725ebcbc 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 @@ -3261,17 +3261,41 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { throw new RuntimeException("当前钢卷是历史卷"); } - // 3. 检查是否已被锁定 + // 3. 检查是否已被锁定或已有相同类型的待处理操作 if (coil.getExclusiveStatus() != null && coil.getExclusiveStatus() != 0) { throw new RuntimeException("钢卷正在进行其他操作,无法开始单步分卷"); } +// // 3.1 检查是否已经有相同类型的待处理操作(防止重复领料) +// LambdaQueryWrapper pendingActionQuery = new LambdaQueryWrapper<>(); +// pendingActionQuery.eq(WmsCoilPendingAction::getCoilId, coilId) +// .eq(WmsCoilPendingAction::getActionType, 501) // 领料操作类型 +// .ne(WmsCoilPendingAction::getActionStatus, 2); // 不是已完成的状态 +// List existingActions = coilPendingActionMapper.selectList(pendingActionQuery); +// if (!existingActions.isEmpty()) { +// throw new RuntimeException("该钢卷已有待处理的领料操作,无法重复领料"); +// } + // 4. 设置独占状态(锁定钢卷) LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WmsMaterialCoil::getCoilId, coilId) .set(WmsMaterialCoil::getExclusiveStatus, 1); // 1表示单步分卷中 baseMapper.update(null, updateWrapper); + // 5. 创建待操作记录(领料操作) + WmsCoilPendingActionBo pendingActionBo = new WmsCoilPendingActionBo(); + pendingActionBo.setCoilId(coilId); + pendingActionBo.setCurrentCoilNo(coil.getCurrentCoilNo()); + pendingActionBo.setActionType(501); // 领料操作类型 + pendingActionBo.setActionStatus(0); // 待处理 + pendingActionBo.setSourceType("manual"); // 手动创建 + pendingActionBo.setPriority(0); // 默认普通优先级 + + Boolean insertResult = coilPendingActionService.insertByBo(pendingActionBo); + if (!insertResult) { + throw new RuntimeException("创建待操作记录失败"); + } + return true; }