From 2fd4e8060dae7473dfb1fd5f02596653cfad2013 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 三月 2026 08:47:04 +0800
Subject: [PATCH] 先关闭追加订单的判断
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java | 66 +++++++++++++++++++--------------
1 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
index b6526ed..2be0b04 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
@@ -96,45 +96,55 @@
// }
/**
- * @author Ryan
- * @date 2025/9/1
- * @description: 鑷姩瀹屾垚鐩樼偣鍔熻兘
- * @version 1.0
+ * 鑷姩瀹屾垚鐩樼偣/鎷f枡锛氱洏鐐瑰嚭搴撻�愭潯澶勭悊锛涙嫞鏂欏嚭搴撴寜绠辩爜鍒嗙粍锛屽悓涓�绠辩爜涓嬪叏閮ㄤ换鍔℃嫞瀹屾墠鎵e噺骞剁敓鎴愭嫞鏂欏叆搴擄紙涓嶱DA纭閫昏緫涓�鑷达級銆�
*/
// @Scheduled(cron = "0/25 * * * * ?")
@Transactional(rollbackFor = Exception.class)
public void autoCheckComplete() {
- //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
.in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type,
TaskType.TASK_TYPE_PICK_IN.type,
TaskType.TASK_TYPE_PICK_AGAIN_OUT.type,
TaskType.TASK_TYPE_CHECK_IN.type)));
- if (!tasks.isEmpty()) {
- tasks.forEach(task -> {
- if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) {
- if (task.getTaskStatus().equals(TaskStsType.COMPLETE_IN.id)) {
-
- }
- } else {
- if (task.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) {
- if (!stationService.update(new LambdaUpdateWrapper<BasStation>()
- .eq(BasStation::getStationName, task.getTargSite())
- .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) {
- log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus());
-// throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
- try {
- taskService.pickOrCheckTask(task.getId(), task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) ? Constants.TASK_TYPE_OUT_CHECK : "");
-
- } catch (Exception e) {
- log.error("error====>", e);
- }
- }
- }
- });
+ if (tasks.isEmpty()) {
+ return;
}
+ // 鎷f枡鍑哄簱锛氭寜绠辩爜鍒嗙粍锛屼粎褰撹绠辩爜涓嬫墍鏈変换鍔¢兘鎷e畬鎵嶅鐞嗭紙鎵e噺骞剁敓鎴愭嫞鏂欏叆搴撴垨搴撳瓨鎵e畬涓嶇敓鎴愶級
+ Map<String, List<Task>> pickOutByBarcode = tasks.stream()
+ .filter(t -> TaskType.TASK_TYPE_PICK_AGAIN_OUT.type.equals(t.getTaskType()) && TaskStsType.WAVE_SEED.id.equals(t.getTaskStatus()))
+ .collect(Collectors.groupingBy(t -> t.getBarcode() != null ? t.getBarcode() : ""));
+ for (Map.Entry<String, List<Task>> e : pickOutByBarcode.entrySet()) {
+ if (e.getKey().isEmpty()) continue;
+ List<Task> barcodeTasks = e.getValue();
+ List<Long> taskIds = barcodeTasks.stream().map(Task::getId).collect(Collectors.toList());
+ List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, taskIds));
+ boolean allPicked = items.stream().allMatch(ti ->
+ ti.getQty() != null && ti.getAnfme() != null && ti.getQty().compareTo(ti.getAnfme()) >= 0);
+ if (!allPicked) continue;
+ for (Task task : barcodeTasks) {
+ try {
+ taskService.pickOrCheckTask(task.getId(), "");
+ } catch (Exception ex) {
+ log.error("autoCheckComplete 鎷f枡鍑哄簱 taskId={} error", task.getId(), ex);
+ }
+ }
+ }
+ // 鐩樼偣鍑哄簱锛氶�愭潯澶勭悊锛堜笉鎸夌鐮佽仛鍚堬級
+ tasks.stream()
+ .filter(t -> TaskType.TASK_TYPE_CHECK_OUT.type.equals(t.getTaskType()) && TaskStsType.WAVE_SEED.id.equals(t.getTaskStatus()))
+ .forEach(task -> {
+ if (!stationService.update(new LambdaUpdateWrapper<BasStation>()
+ .eq(BasStation::getStationName, task.getTargSite())
+ .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) {
+ log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus());
+ }
+ try {
+ taskService.pickOrCheckTask(task.getId(), Constants.TASK_TYPE_OUT_CHECK);
+ } catch (Exception e) {
+ log.error("autoCheckComplete 鐩樼偣鍑哄簱 taskId={} error", task.getId(), e);
+ }
+ });
}
--
Gitblit v1.9.1