workSequence规则替换,增加最大值以保证升序。

This commit is contained in:
梁州 2025-06-26 08:19:23 +08:00
parent 9d9519513d
commit c54ee29613

View File

@ -31,10 +31,13 @@ public class UploadDbsListener implements ReadListener<KateDbsExcelVo> {
private final String uploadUser;// 用户
private final Map<String, KateDBS> oldKateDBSMap;// 旧的DBS数据
private final Map<String, KateDBS> newKateDBSMap = new HashMap<>();// 新的DBS数据
private final int maxSequence;
public UploadDbsListener(KateDBSService kateDBSService, Map<String, KateDBS> 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<KateDbsExcelVo> {
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());