diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfTriConfirmServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfTriConfirmServiceImpl.java index 4352e25f..c9a18ea7 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfTriConfirmServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfTriConfirmServiceImpl.java @@ -368,7 +368,7 @@ public class ErfTriConfirmServiceImpl implements ErfTriConfirmService { @Override public void deleteTriConfirmProcess(String applyNo, String processStep) { - log.info("删除三方确认工序: applyNo={}, processStep={}", applyNo, processStep); + log.info("=== 删除三方确认工序 === applyNo={}, processStep={}", applyNo, processStep); // 使用联合主键删除 QueryWrapper query = new QueryWrapper<>(); @@ -386,7 +386,59 @@ public class ErfTriConfirmServiceImpl implements ErfTriConfirmService { .eq("process_step", processStep); erfExpTriConfirmDetailMapper.delete(detailQuery); - log.info("删除成功"); + log.info("工序删除成功"); + + // 重新排序剩余工序,确保顺序始终是连续的 1、2、3、4... + reorderProcessSequence(applyNo); + + log.info("=== 删除完成 ==="); + } + + /** + * 重新排序工序顺序,确保顺序始终是连续的 1、2、3、4... + * + * @param applyNo 申请单号 + */ + private void reorderProcessSequence(String applyNo) { + log.info("🔄 开始重新排序工序: applyNo={}", applyNo); + + // 查询当前所有工序,按照现有的 process_seq 排序 + QueryWrapper query = new QueryWrapper<>(); + query.eq("apply_no", applyNo) + .orderByAsc("process_seq"); + + List processes = erfExpTriConfirmMapper.selectList(query); + + if (processes == null || processes.isEmpty()) { + log.info("没有工序需要重新排序"); + return; + } + + log.info("查询到 {} 个工序,开始重新分配序号", processes.size()); + + // 重新分配连续的序号 1、2、3、4... + for (int i = 0; i < processes.size(); i++) { + ErfExpTriConfirm process = processes.get(i); + int newSeq = i + 1; // 从1开始 + + // 如果序号已经是正确的,跳过更新 + if (process.getProcessSeq() != null && process.getProcessSeq() == newSeq) { + log.info("工序 [{}] 序号已正确: {}", process.getProcessStep(), newSeq); + continue; + } + + log.info("更新工序 [{}] 序号: {} -> {}", process.getProcessStep(), process.getProcessSeq(), newSeq); + + // 使用联合主键更新序号 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("apply_no", applyNo) + .eq("process_step", process.getProcessStep()) + .set("process_seq", newSeq); + + erfExpTriConfirmMapper.update(null, updateWrapper); + } + + log.info("✅ 工序重新排序完成"); } /**