| | |
| | | return errorMsg; |
| | | } |
| | | |
| | | // 获取没有出库任务的站点 |
| | | List<Integer> canInSites = basDevpMapper.getCanInSites(sites); |
| | | // 先检查站点配置(canining="Y"可入),排除dev_no=0的无效站点 |
| | | List<BasDevp> devListWithConfig = basDevpMapper.selectList(new EntityWrapper<BasDevp>() |
| | | .in("dev_no", sites) |
| | | .eq("in_enable", "Y") |
| | | .eq("canining", "Y") |
| | | .ne("dev_no", 0) // 排除dev_no=0的无效站点 |
| | | ).stream() |
| | | .filter(dev -> dev.getDevNo() != null && dev.getDevNo() != 0) // 再次过滤,确保不为null或0 |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (devListWithConfig.isEmpty()) { |
| | | // 站点配置不允许入库(canining != "Y"),暂不分配,等待配置开通(只在定时任务中记录日志) |
| | | log.warn("任务ID:{}没有可入站点(站点未开通可入允许:canining='Y'),暂不分配站点,等待配置开通", task.getId()); |
| | | return null; // 返回null,表示暂不分配,等待配置开通 |
| | | } |
| | | |
| | | // 获取没有出库任务的站点(从已配置可入的站点中筛选) |
| | | List<Integer> configuredSites = devListWithConfig.stream() |
| | | .map(BasDevp::getDevNo) |
| | | .collect(Collectors.toList()); |
| | | List<Integer> canInSites = basDevpMapper.getCanInSites(configuredSites); |
| | | if (canInSites.isEmpty()) { |
| | | String errorMsg = "请等待出库完成"; |
| | | log.warn("任务ID:{}没有可入站点({})", task.getId(), errorMsg); |
| | | return errorMsg; |
| | | // 所有已配置可入的站点都有出库任务,暂不分配,等待下次定时任务再尝试(只在定时任务中记录日志) |
| | | log.warn("任务ID:{}没有可入站点(请等待出库完成),暂不分配站点,等待下次定时任务再尝试", task.getId()); |
| | | return null; // 返回null,表示暂不分配,等待下次定时任务再尝试 |
| | | } |
| | | |
| | | // 寻找入库任务最少的站点(且必须in_enable="Y"能入 和 canining="Y"可入),排除dev_no=0的无效站点 |
| | |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (devList.isEmpty()) { |
| | | // 理论上不应该到这里,因为前面已经检查过了,但为了安全起见还是保留 |
| | | String errorMsg = "没有可入站点(in_enable='Y'且canining='Y')"; |
| | | log.warn("任务ID:{}", errorMsg, task.getId()); |
| | | return errorMsg; |