From 2c0e3414d8032b5cd5e673dd587afc7d1a9bab7c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 15 五月 2025 15:56:10 +0800
Subject: [PATCH] 外置输送线流动到位上报wms

---
 src/main/java/com/zy/asrs/task/TaskReportScheduler.java |  103 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 96 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
index 7fc824e..e6f44f2 100644
--- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -13,15 +13,19 @@
 import com.zy.asrs.entity.TaskWrk;
 import com.zy.asrs.entity.TaskWrkReport;
 import com.zy.asrs.entity.TaskWrkReportLog;
+import com.zy.asrs.entity.param.TaskCreateParam;
 import com.zy.asrs.entity.wms.WmsFeedback;
 import com.zy.asrs.mapper.TaskWrkMapper;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.TaskWrkReportLogService;
-import com.zy.asrs.service.TaskWrkReportService;
+import com.zy.asrs.service.*;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.Synchro;
+import com.zy.core.DevpThread;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaProtocol;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -30,6 +34,7 @@
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Date;
 
 /**
@@ -55,6 +60,9 @@
     @Value("${wms.taskExecCallback}")
     private String TaskExecCallback;
 
+    @Value("${wms.completeDevpTask}")
+    private String completeDevpTask;
+
     @Resource
     private TaskWrkMapper taskWrkMapper;
 
@@ -64,6 +72,13 @@
     @Resource
     private CommonService commonService;
 
+    @Resource
+    private OpenService openService;
+
+    // 鐩戝惉澶栫疆杈撻�佺嚎
+    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
+        add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308);
+    }};
 
     @Scheduled(cron = "0/5 * * * * ? ")
     public synchronized void execute() throws IOException {
@@ -116,6 +131,7 @@
 
     }
 
+    // 绔嬩綋搴撹窇搴撶▼搴忥紝鐢熶骇鍕跨敤
 //    @Scheduled(cron = "0/5 * * * * ? ")
     public synchronized void autoMoveLoc() {
         int flag = 1; // 1.璺�23鍙峰爢鍨涙満鍓�7鍒楋紝1鍙峰爢鍨涙満1锛�9灞� 2.璺�23鍙峰爢鍨涙満鍚�8-12鍒楋紝1鍙峰爢鍨涙満2-8灞�
@@ -126,15 +142,31 @@
                 // 鑾峰彇鍫嗗灈鏈哄贩閬撳湪搴撳簱浣�
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i));
                 if (locMast != null) {
+                    // 50娆″嚭涓�娆″簱
+                    int count1 = locMastService.selectCount(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", 1));
+                    if (count1 % 25 == 0) {
+                        TaskCreateParam taskCreateParam = new TaskCreateParam();
+                        taskCreateParam.setTaskNo(locMast.getLocNo()+"0");
+                        taskCreateParam.setStartPoint(locMast.getLocNo());
+                        taskCreateParam.setIoType(2);
+                        taskCreateParam.setTaskPriority(11);
+                        taskCreateParam.setBarcode(locMast.getBarcode());
+                        taskCreateParam.setTargetPoint(i == 1 ? "114" : i == 2 ? "111" : "105");
+                        openService.taskCreate(taskCreateParam);
+                        return;
+                    }
                     // 鑾峰彇涓�涓Щ鍔ㄧ殑鐩爣搴撲綅
                     LocMast locMast1;
                     if (flag == 1) {
                         if (i == 1) {
                             locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0")
-                                    .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").in("lev1",1,9));
-                        } else {
+                                    .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1"));
+                        } else if(i==2) {
                             locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0")
-                                    .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").le("bay1",7));
+                                    .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7));
+                        }else {
+                            locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0")
+                                    .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7));
                         }
 
                     } else {
@@ -156,6 +188,7 @@
                         taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));
                         taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
                         taskWrk.setCreateTime(now);
+                        taskWrk.setAssignTime(now);
                         taskWrk.setIoType(3);//浠诲姟绫诲瀷
                         taskWrk.setIoPri(11);//浼樺厛绾�
                         taskWrk.setBarcode(locMast.getBarcode());//鏉$爜
@@ -172,6 +205,62 @@
         }
     }
 
+    // 鐩戝惉澶栫疆杈撻�佺嚎锛屾湁浠诲姟鍙峰拰鍙嚭淇″彿锛屼笂鎶ユ垚鍔熸竻闄や换鍔″彿鐩爣绔�
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public synchronized void completeDevpTask() {
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+        if (devpThread != null) {
+            for(Integer site : staNos) {
+                StaProtocol staProtocol = devpThread.getStation().get(site);
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.isOutEnable() && staProtocol.getWorkNo() != 0 && staProtocol.isAutoing() && staProtocol.isLoading()) {
+                    String response = "";
+                    boolean bool = false;
+                    JSONObject request = new JSONObject();
+                    request.put("site",site);
+                    try {
+                        log.info("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms={}", site);
+                        response = new HttpHandler.Builder()
+                                .setUri(wmsUrl)
+                                .setPath(completeDevpTask)
+                                .setJson(request.toJSONString())
+                                .build()
+                                .doPost();
+                        if (!Cools.isEmpty(response)) {
+                            JSONObject jsonObject = JSON.parseObject(response);
+                            if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) {
+                                bool = true;
+                                staProtocol.setWorkNo((short) 0);
+                                staProtocol.setStaNo((short) 0);
+                                boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol));
+                                if (result) {
+                                    log.info("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms,娓呴櫎杈撻�佺嚎绔欑偣{}鍛戒护涓嬪彂鎴愬姛锛�",site);
+                                } else {
+                                    log.error("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms,娓呴櫎杈撻�佺嚎绔欑偣{}鍛戒护涓嬪彂澶辫触锛�" ,site);
+                                }
+                            }
+                        }
+                    } catch (Exception e) {
+                        log.error("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms寮傚父{},杩斿洖鍊�={}", request, response);
+                    } finally {
+                        apiLogService.save("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms"
+                                , wmsUrl + completeDevpTask
+                                , null
+                                , "127.0.0.1"
+                                , request.toJSONString()
+                                , response
+                                , bool
+                        );
+                    }
+                }
+            }
+        }
+    }
+
     private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) {
         WmsFeedback feedback = new WmsFeedback();
         feedback.setBarcode(taskWrk.getBarcode());

--
Gitblit v1.9.1