diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java index efb5c3784..dac675eb0 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java @@ -137,6 +137,9 @@ public class EmisCommonController extends EmisBaseController @Autowired private IEmisWaybillExternalService emisWaybillExternalService; + @Autowired + private IEmisTransLineService emisTransLineService; + /** * 在线支付回调 * @param method @@ -959,11 +962,44 @@ public class EmisCommonController extends EmisBaseController // 这样即使异步任务没有正确清除状态,也会在30分钟后自动过期 redissonService.setStr(statusKey, "RUNNING", 1800); - // 异步执行任务 - emisTmsSiteBatchMissService.autoScanSiteBatch(lineCode); - log.info("autoScanSiteBatch async task started"); + // 如果lineCode为空,查询所有线路的lineCode,去重后循环调用 + if (StringUtils.isEmpty(lineCode)) { + log.info("lineCode is empty, querying all line codes"); + EmisTransLine queryLine = new EmisTransLine(); +// queryLine.setStatus(1); // 只查询启用的线路 + List lineList = emisTransLineService.selectEmisTransLineList(queryLine); - return AjaxResult.success("异步任务已启动,请稍后查看执行结果"); + // 提取lineCode并去重 + Set 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 { + // 异步执行任务 + emisTmsSiteBatchMissService.autoScanSiteBatch(lineCode); + log.info("autoScanSiteBatch async task started for lineCode: {}", lineCode); + return AjaxResult.success("异步任务已启动,请稍后查看执行结果"); + } } catch (Exception ex) { ex.printStackTrace();