diff --git a/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java index 27f6341..b9318ff 100644 --- a/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java +++ b/src/main/java/com/wms/utils/excel/listener/UploadDbsListener.java @@ -31,10 +31,13 @@ public class UploadDbsListener implements ReadListener { private final String uploadUser;// 用户 private final Map oldKateDBSMap;// 旧的DBS数据 private final Map newKateDBSMap = new HashMap<>();// 新的DBS数据 + private final int maxSequence; public UploadDbsListener(KateDBSService kateDBSService, Map oldKateDBSMap, String uploadUser) { this.kateDBSService = kateDBSService; this.oldKateDBSMap = oldKateDBSMap; this.uploadUser = uploadUser; + // 获取最大序列号 + maxSequence = oldKateDBSMap.values().stream().mapToInt(KateDBS::getWorkSequence).max().orElse(0); } @Override @@ -93,18 +96,20 @@ public class UploadDbsListener implements ReadListener { if (oldKateDBSMap.containsKey(kateDbsExcelVo.getWorkOrder())) { // 之前有 KateDBS oldKateDbs = oldKateDBSMap.get(kateDbsExcelVo.getWorkOrder()); - oldKateDbs.setWorkSequence(kateDbsExcelVo.getWorkSequence()); - oldKateDbs.setMachineNo(kateDbsExcelVo.getMachineNo()); - oldKateDbs.setPlanStartDate(kateDbsExcelVo.getPlanStartDate()); - oldKateDbs.setLastUpdateTime(LocalDateTime.now()); - oldKateDbs.setLastUpdateUser(uploadUser); - // 替换 - newKateDBSMap.put(kateDbsExcelVo.getWorkOrder(), oldKateDbs); + if (oldKateDbs.getDbsStatus() == 0) { + oldKateDbs.setWorkSequence(maxSequence + kateDbsExcelVo.getWorkSequence()); + oldKateDbs.setMachineNo(kateDbsExcelVo.getMachineNo()); + oldKateDbs.setPlanStartDate(kateDbsExcelVo.getPlanStartDate()); + oldKateDbs.setLastUpdateTime(LocalDateTime.now()); + oldKateDbs.setLastUpdateUser(uploadUser); + // 替换 + newKateDBSMap.put(kateDbsExcelVo.getWorkOrder(), oldKateDbs); + } } else { // 之前没有 KateDBS newKateDbs = new KateDBS(); newKateDbs.setDbsId(generateId("DBS_")); - newKateDbs.setWorkSequence(kateDbsExcelVo.getWorkSequence()); + newKateDbs.setWorkSequence(maxSequence + kateDbsExcelVo.getWorkSequence()); newKateDbs.setMachineNo(kateDbsExcelVo.getMachineNo()); newKateDbs.setWorkOrder(kateDbsExcelVo.getWorkOrder()); newKateDbs.setPlanStartDate(kateDbsExcelVo.getPlanStartDate());