Browse Source

删除工序后重新排序剩余工序

master
han\hanst 3 weeks ago
parent
commit
86c7c6924c
  1. 56
      src/main/java/com/xujie/sys/modules/erf/service/impl/ErfTriConfirmServiceImpl.java

56
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<ErfExpTriConfirm> query = new QueryWrapper<>();
@ -386,7 +386,59 @@ public class ErfTriConfirmServiceImpl implements ErfTriConfirmService {
.eq("process_step", processStep);
erfExpTriConfirmDetailMapper.delete(detailQuery);
log.info("删除成功");
log.info("工序删除成功");
// 重新排序剩余工序确保顺序始终是连续的 1234...
reorderProcessSequence(applyNo);
log.info("=== 删除完成 ===");
}
/**
* 重新排序工序顺序确保顺序始终是连续的 1234...
*
* @param applyNo 申请单号
*/
private void reorderProcessSequence(String applyNo) {
log.info("🔄 开始重新排序工序: applyNo={}", applyNo);
// 查询当前所有工序按照现有的 process_seq 排序
QueryWrapper<ErfExpTriConfirm> query = new QueryWrapper<>();
query.eq("apply_no", applyNo)
.orderByAsc("process_seq");
List<ErfExpTriConfirm> processes = erfExpTriConfirmMapper.selectList(query);
if (processes == null || processes.isEmpty()) {
log.info("没有工序需要重新排序");
return;
}
log.info("查询到 {} 个工序,开始重新分配序号", processes.size());
// 重新分配连续的序号 1234...
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<ErfExpTriConfirm> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("apply_no", applyNo)
.eq("process_step", process.getProcessStep())
.set("process_seq", newSeq);
erfExpTriConfirmMapper.update(null, updateWrapper);
}
log.info("✅ 工序重新排序完成");
}
/**

Loading…
Cancel
Save