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 e513b21f..35309896 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 @@ -3177,10 +3177,21 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { // 删除操作记录 deletePendingActionForRollback(originalCoil.getCoilId()); - } - // 更新二维码记录 - updateQrcodeForMergeRollback(qrcodeRecord, currentCoil, parentCoilIds); + // 恢复原始钢卷的二维码为生效状态并更新二维码记录 + if (originalCoil.getQrcodeRecordId() != null) { + WmsGenerateRecordBo originalQrBo = new WmsGenerateRecordBo(); + originalQrBo.setRecordId(originalCoil.getQrcodeRecordId()); + originalQrBo.setStatus(1); // 1=生效 + generateRecordService.updateByBo(originalQrBo); + + // 更新原始钢卷的二维码记录(添加回滚步骤) + WmsGenerateRecordVo originalQrRecord = generateRecordService.queryById(originalCoil.getQrcodeRecordId()); + if (originalQrRecord != null) { + updateQrcodeForMergeRollback(originalQrRecord, currentCoil, originalCoil.getCoilId()); + } + } + } result.put("success", true); result.put("message", "合卷回滚成功,已恢复 " + parentCoilIds.size() + " 个原始钢卷,删除了合卷钢卷"); @@ -3285,8 +3296,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { // 删除母卷的操作记录 deletePendingActionForRollback(motherCoilId); - // 更新二维码记录 - updateQrcodeForSplitRollback(qrcodeRecord, currentCoil, motherCoilId); + // 恢复母卷的二维码为生效状态 + WmsMaterialCoil motherCoil = baseMapper.selectById(motherCoilId); + if (motherCoil != null && motherCoil.getQrcodeRecordId() != null) { + WmsGenerateRecordBo motherQrBo = new WmsGenerateRecordBo(); + motherQrBo.setRecordId(motherCoil.getQrcodeRecordId()); + motherQrBo.setStatus(1); // 1=生效 + generateRecordService.updateByBo(motherQrBo); + + // 更新母卷的二维码记录(添加回滚步骤) + WmsGenerateRecordVo motherQrRecord = generateRecordService.queryById(motherCoil.getQrcodeRecordId()); + if (motherQrRecord != null) { + updateQrcodeForSplitRollback(motherQrRecord, currentCoil, motherCoilId); + } + } } result.put("success", true); @@ -3408,7 +3431,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { /** * 更新合卷回滚后的二维码记录 */ - private void updateQrcodeForMergeRollback(WmsGenerateRecordVo qrcodeRecord, WmsMaterialCoil currentCoil, List parentCoilIds) { + private void updateQrcodeForMergeRollback(WmsGenerateRecordVo qrcodeRecord, WmsMaterialCoil currentCoil, Long restoredCoilId) { try { ObjectMapper objectMapper = new ObjectMapper(); Map contentMap = objectMapper.readValue(qrcodeRecord.getContent(), Map.class); @@ -3426,17 +3449,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { rollbackStep.put("operation", "合卷回滚"); rollbackStep.put("deleted_coil_id", String.valueOf(currentCoil.getCoilId())); rollbackStep.put("deleted_current_coil_no", currentCoil.getCurrentCoilNo()); - rollbackStep.put("restored_parent_coil_ids", parentCoilIds.stream().map(String::valueOf).collect(Collectors.joining(","))); + rollbackStep.put("restored_coil_id", String.valueOf(restoredCoilId)); rollbackStep.put("operator", LoginHelper.getUsername()); rollbackStep.put("rollback_time", new java.util.Date()); steps.add(rollbackStep); contentMap.put("steps", steps); - // 更新current_coil_id为第一个恢复的原始钢卷ID - if (!parentCoilIds.isEmpty()) { - contentMap.put("current_coil_id", String.valueOf(parentCoilIds.get(0))); - } + // 更新current_coil_id为恢复的原始钢卷ID + contentMap.put("current_coil_id", String.valueOf(restoredCoilId)); String newContentJson = objectMapper.writeValueAsString(contentMap); WmsGenerateRecordBo updateBo = new WmsGenerateRecordBo(); @@ -3977,6 +3998,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { .set(WmsMaterialCoil::getParentCoilNos, String.join(",", childCoilNos)); // 记录子卷号 baseMapper.update(null, parentUpdateWrapper); + // 4.1 将母卷的二维码标记为失效 + if (parentCoil.getQrcodeRecordId() != null) { + WmsGenerateRecordBo parentQrBo = new WmsGenerateRecordBo(); + parentQrBo.setRecordId(parentCoil.getQrcodeRecordId()); + parentQrBo.setStatus(0); // 0=失效 + generateRecordService.updateByBo(parentQrBo); + } + + // 5. 批量更新所有子钢卷的二维码中的child_coil_ids String allChildCoilIdsStr = childCoilIds.stream() .map(String::valueOf)