demand: TMS-运输管理-移除漏组批次订单原界面逻辑

This commit is contained in:
aike 2025-12-05 13:04:05 +08:00
parent c25bf2c567
commit 2dfad7c2eb
2 changed files with 7 additions and 55 deletions

View File

@ -966,46 +966,11 @@ public class EmisCommonController extends EmisBaseController
// 这样即使异步任务没有正确清除状态,也会在30分钟后自动过期 // 这样即使异步任务没有正确清除状态,也会在30分钟后自动过期
redissonService.setStr(statusKey, "RUNNING", 1800); redissonService.setStr(statusKey, "RUNNING", 1800);
// 如果lineCode为空,查询所有线路的lineCode,去重后循环调用 // 异步执行任务
if (StringUtils.isEmpty(lineCode)) { emisTmsSiteBatchMissService.autoScanSiteBatch(lineCode);
log.info("lineCode is empty, querying all line codes"); log.info("autoScanSiteBatch async task started");
emisTmsSiteBatchMissMapper.deleteReally(lineCode);
EmisTransLine queryLine = new EmisTransLine();
// queryLine.setStatus(1); // 只查询启用的线路
List<EmisTransLine> lineList = emisTransLineService.selectEmisTransLineList(queryLine);
// 提取lineCode并去重 return AjaxResult.success("异步任务已启动,请稍后查看执行结果");
Set<String> lineCodeSet = new LinkedHashSet<>();
if (!CollectionUtils.isEmpty(lineList)) {
for (EmisTransLine line : lineList) {
if (StringUtils.isNotEmpty(line.getLineCode())) {
lineCodeSet.add(line.getLineCode());
}
}
}
log.info("Found {} unique line codes, starting batch processing", lineCodeSet.size());
// 循环调用
for (String code : lineCodeSet) {
try {
emisTmsSiteBatchMissService.autoScanSiteBatch(code);
log.info("autoScanSiteBatch processed for lineCode: {}", code);
} catch (Exception e) {
log.error("autoScanSiteBatch failed for lineCode: {}, error: {}", code, e.getMessage());
// 继续处理下一个,不中断整个流程
}
}
log.info("autoScanSiteBatch async task started for all line codes");
return AjaxResult.success("异步任务已启动,共处理 " + lineCodeSet.size() + " 个线路,请稍后查看执行结果");
} else {
emisTmsSiteBatchMissMapper.deleteReally(lineCode);
// 异步执行任务
emisTmsSiteBatchMissService.autoScanSiteBatch(lineCode);
log.info("autoScanSiteBatch async task started for lineCode: {}", lineCode);
return AjaxResult.success("异步任务已启动,请稍后查看执行结果");
}
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();

View File

@ -233,7 +233,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements
} }
// 1) 逻辑删除漏组批次数据 // 1) 逻辑删除漏组批次数据
emisTmsSiteBatchMissMapper.deleteByBillCodes(billCodes); // emisTmsSiteBatchMissMapper.deleteByBillCodes(billCodes);
emisTmsSiteBatchMissMapper.deleteByBillCodesV2(billCodes); emisTmsSiteBatchMissMapper.deleteByBillCodesV2(billCodes);
// 2) 新增运单组批次状态 site_batch_status=1(幂等:insert ignore) // 2) 新增运单组批次状态 site_batch_status=1(幂等:insert ignore)
@ -275,7 +275,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements
// 3) 调用scanSiteBatchByWaybills重新扫描 // 3) 调用scanSiteBatchByWaybills重新扫描
if (!waybills.isEmpty()) { if (!waybills.isEmpty()) {
this.scanSiteBatchByWaybills(waybills); // this.scanSiteBatchByWaybills(waybills);
this.scanSiteBatchByWaybillsV2(waybills); this.scanSiteBatchByWaybillsV2(waybills);
} }
} }
@ -307,6 +307,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements
public void autoScanSiteBatch(String lineCode) { public void autoScanSiteBatch(String lineCode) {
ExecutorService executorService = null; ExecutorService executorService = null;
try { try {
emisTmsSiteBatchMissMapper.deleteReally(lineCode);
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
int pageSize = 1000; int pageSize = 1000;
int offset = 0; int offset = 0;
@ -321,20 +322,6 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements
List<EmisTransPlanRule> treeRules = this.selectEmisTransPlanRuleTree(lineCode); List<EmisTransPlanRule> treeRules = this.selectEmisTransPlanRuleTree(lineCode);
if (treeRules.isEmpty()) { if (treeRules.isEmpty()) {
log.info("No trans plan rules found, skip auto scan"); log.info("No trans plan rules found, skip auto scan");
List<EmisWaybill> waybills = emisWaybillMapper.selectWaybillListBySiteBatchStatus(0, 100000,
lineCode);
if (waybills.isEmpty()) {
return;
}
List<EmisTmsSiteBatchMiss> missRecords = waybills.stream().map(waybill -> {
EmisTmsSiteBatchMiss miss = createMissRecord(waybill);
miss.setMissReason("当前线路没有创建对应的线路规划");
miss.setMissType("1");
miss.setLineCode(waybill.getTransLineType());
miss.setProductType(waybill.getProductType());
return miss;
}).collect(Collectors.toList());
emisTmsSiteBatchMissMapper.batchInsertEmisTmsSiteBatchMiss(missRecords);
return; return;
} }