From 8ce4dcbd701b40165b0dbf365f667932cf2a8916 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 06 三月 2026 08:21:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java |  106 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 89 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 39b00a3..3aacea5 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,14 +1,25 @@
 package com.zy.asrs.task;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.api.controller.params.WorkTaskParams;
 import com.zy.api.service.WcsApiService;
+import com.zy.asrs.entity.LocAroundBind;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.Task;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.TaskMapper;
+import com.zy.asrs.service.LocAroundBindService;
 import com.zy.asrs.service.TaskService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +47,12 @@
     private TaskService taskService;
     @Autowired
     private WcsApiService wcsApiService;
+    @Autowired
+    private LocMastServiceImpl locMastService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private LocAroundBindService locAroundBindService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
     private void execute() {
@@ -63,29 +80,84 @@
      * @author Ryan
      * @date 2026/1/10 14:42
      */
-//    @Scheduled(cron = "0/15 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     private void autoPubTasks() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(1L, 11L)));
         if (wrkMasts.isEmpty()) {
             return;
         }
         Collections.shuffle(wrkMasts);
-        wrkMasts.forEach(wrkMast -> {
-            WorkTaskParams params = new WorkTaskParams();
-            if (wrkMast.getIoType().equals(1)) {
-                params.setType("in");
-                params.setTaskNo(wrkMast.getWrkCode())
-                        .setLocNo(wrkMast.getLocNo())
-                        .setBarcode(wrkMast.getBarcode())
-                        .setTaskPri(Integer.parseInt(wrkMast.getIoPri() + ""));
-            } else {
-                params.setType("out")
-                        .setTaskNo(wrkMast.getWrkCode())
-                        .setLocNo(wrkMast.getLocNo())
-                        .setStaNo(wrkMast.getStaNo())
-                        .setTaskPri(Integer.parseInt(wrkMast.getIoPri() + ""));
+        for (WrkMast wrkMast : wrkMasts) {
+            //鏌ョ湅涓嬪彂浠诲姟鏄惁涓哄喕缁撳簱浣嶏紝鏄喕缁撳簱浣嶅垯璺宠繃涓嬪彂浠诲姟
+            LocAroundBind locAroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+                    .eq("b_loc_no", wrkMast.getLocNo())
+                    .eq("freeze", 1));
+            if (Cools.isEmpty(locAroundBind)) {
+                locAroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+                        .eq("b_loc_no", wrkMast.getSourceLocNo())
+                        .eq("freeze", 1));
+                if (!Cools.isEmpty(locAroundBind)) {
+                    continue;
+                }
+            }else {
+                continue;
             }
-            wcsApiService.pubWrkToWcs(params);
-        });
+            Integer crnNo = wrkMast.getCrnNo();
+            //璇ュ爢鍨涙満宸茬粡涓嬪彂浠诲姟缁檞cs鍚庝笉鍐嶄笅鍙戞柊鐨勬惉杩愪换鍔�
+            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L)));
+            if (!wrkMasts1.isEmpty()) {
+                continue;
+            }
+            //婧愬簱浣嶄负鍐荤粨搴撲綅鏃剁姝笅鍙戞惉杩愪换鍔$粰鍫嗗灈鏈�
+            if (!Cools.isEmpty(wrkMast.getSourceLocNo())){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        .eq("loc_no", wrkMast.getSourceLocNo())
+                        .eq("frozen",0));
+                if (Cools.isEmpty(locMast)) {
+                    continue;
+                }
+            }
+
+            //鐩爣搴撲綅涓哄喕缁撳簱浣嶆椂绂佹涓嬪彂鎼繍浠诲姟缁欏爢鍨涙満
+            if (!Cools.isEmpty(wrkMast.getLocNo())){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        .eq("loc_no", wrkMast.getLocNo())
+                        .eq("frozen",0));
+                if (Cools.isEmpty(locMast)) {
+                    continue;
+                }
+            }
+
+            String wcsSourceLocNo = Cools.isEmpty(wrkMast.getSourceLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getSourceLocNo());
+            String wcsLocNo = Cools.isEmpty(wrkMast.getLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getLocNo());
+            WorkTaskParams params = new WorkTaskParams();
+            //鍑哄簱鍜岀Щ搴�
+            if(wrkMast.getIoType()==101&&!Cools.isEmpty(wrkMast.getStaNo())&& !wrkMast.getStaNo().equals("0")) {
+                params.setType("out")
+                        .setTaskNo(wrkMast.getWrkNo()+"")
+                        .setSourceLocNo(wcsSourceLocNo)
+                        .setLocNo(wcsLocNo)
+                        .setStaNo(wrkMast.getStaNo())
+                        .setTaskPri(wrkMast.getIoPri().intValue())
+                        .setBarcode(wrkMast.getBarcode());
+            }else if(wrkMast.getIoType()==2&& !Cools.isEmpty(wrkMast.getSourceStaNo())){
+                params.setType("in")
+                        .setTaskNo(wrkMast.getWrkNo()+"")
+                        .setSourceStaNo(wrkMast.getSourceStaNo())
+                        .setLocNo(wcsLocNo)
+                        .setTaskPri(wrkMast.getIoPri().intValue())
+                        .setBarcode(wrkMast.getBarcode());
+            } else {
+                params.setType("move")
+                        .setTaskNo(wrkMast.getWrkNo()+"")
+                        .setSourceLocNo(wcsSourceLocNo)
+                        .setLocNo(wcsLocNo)
+                        .setBarcode(wrkMast.getBarcode());
+            }
+            R r = wcsApiService.pubWrkToWcs(params);
+            if (r.get("code").equals(200)){
+                break;
+            }
+        };
     }
 }

--
Gitblit v1.9.1