From 56b1b873191d6e7022ed225cf81c3eda774f210e Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 11 四月 2026 18:02:42 +0800
Subject: [PATCH] WMS2.0与WCS3.0对接完整版

---
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 42f11d2..d3677c0 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,8 +1,13 @@
 package com.zy.asrs.task;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.service.WcsApiService;
 import com.zy.asrs.entity.Task;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.CompleteParam;
 import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WorkService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WorkMastHandler;
@@ -12,8 +17,8 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/7/7
@@ -29,6 +34,10 @@
     private WorkMastHandler workMastHandler;
     @Autowired
     private TaskService taskService;
+    @Autowired
+    private WcsApiService wcsApiService;
+    @Autowired
+    private WorkService workService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
     private void execute() {
@@ -68,4 +77,47 @@
         }
     }
 
+    /**
+     * 浠诲姟鑷姩涓嬪彂鍑哄簱浠诲姟
+     *
+     * @author Ryan
+     * @date 2026/1/10 14:42
+     */
+    @Scheduled(cron = "0/5 * * * * ? ")
+    private void autoPubTasks() {
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                .in("wrk_sts", Arrays.asList(11L, 1L))
+                .orderDesc(Arrays.asList("io_pri")));
+        if (wrkMasts.isEmpty()) {
+            return;
+        }
+        Map<Integer, List<WrkMast>> listMap = wrkMasts.stream().collect(Collectors.groupingBy(WrkMast::getCrnNo));
+        listMap.keySet().forEach(key -> {
+            List<WrkMast> wrkMasts1 = listMap.get(key);
+            Collections.shuffle(wrkMasts1);
+            try {
+                wrkMasts1.forEach(wrkMast -> {
+                    WorkTaskParams params = new WorkTaskParams();
+                    if (wrkMast.getIoType().equals(11)) {
+                        CompleteParam param = new CompleteParam();
+                        param.setTaskNo(wrkMast.getWrkNo() + "");
+                        param.setSourceLocNo(wrkMast.getSourceLocNo());
+                        param.setLocNo(wrkMast.getLocNo());
+                        workService.taskMove(param, 9527L);
+                    } else if (wrkMast.getIoType() > 100) {
+                        params.setType("in")
+                                .setTaskNo(wrkMast.getWrkNo() + "")
+                                .setLocNo(wrkMast.getSourceLocNo())
+                                .setBarcode(wrkMast.getBarcode())
+                                .setStaNo(wrkMast.getStaNo())
+                                .setTaskPri(wrkMast.getIoPri().intValue());
+                        wcsApiService.pubWrkToWcs(params);
+                    }
+                });
+            } catch (Exception e) {
+                log.error(e.getMessage());
+            }
+        });
+    }
+
 }

--
Gitblit v1.9.1