From 385a7a63f86903b74c4a878ab22b69a63a8f5e54 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 15 五月 2025 15:54:23 +0800
Subject: [PATCH] 外置输送线wms通知输送线流动

---
 src/main/java/com/zy/asrs/task/TaskReportScheduler.java |  136 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 111 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
index 60e64f4..7fc824e 100644
--- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -2,14 +2,24 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.TaskWrk;
 import com.zy.asrs.entity.TaskWrkReport;
 import com.zy.asrs.entity.TaskWrkReportLog;
+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.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.Synchro;
 import lombok.extern.slf4j.Slf4j;
@@ -18,8 +28,9 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.HashMap;
+import java.util.Date;
 
 /**
  * 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織
@@ -41,51 +52,61 @@
     @Value("${wms.url}")
     private String wmsUrl;
 
-    @Value("${wms.TaskExecCallback}")
+    @Value("${wms.taskExecCallback}")
     private String TaskExecCallback;
 
+    @Resource
+    private TaskWrkMapper taskWrkMapper;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
-    public void execute() throws IOException {
-        Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 10));
+    @Resource
+    private LocMastService locMastService;
+
+    @Resource
+    private CommonService commonService;
+
+
+    @Scheduled(cron = "0/5 * * * * ? ")
+    public synchronized void execute() throws IOException {
+        Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("create_time", true));
         if (taskWrkReportPage.getRecords() != null) {
+            //鏂板涓�涓繃婊ゆ満鍒�
             for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) {
-                HashMap<String, Object> headParam = new HashMap<>();
-                if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//瀹屾垚
-                    headParam.put("Result", 1);
-                } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) {
-                    headParam.put("Result", 2);
-                }
+                WmsFeedback wmsFeedback = getWmsFeedback(taskWrk);
                 String response = "";
-                Boolean bool = false;
+                boolean bool = false;
                 try {
-                    headParam.put("TaskNo", taskWrk.getTaskNo());
                     log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
                     response = new HttpHandler.Builder()
                             // .setHeaders(headParam)
                             .setUri(wmsUrl)
                             .setPath(TaskExecCallback)
-                            .setJson(JSON.toJSONString(headParam))
+                            .setJson(JSON.toJSONString(wmsFeedback))
                             .build()
                             .doPost();
-                    JSONObject jsonObject = JSON.parseObject(response);
-                    TaskWrkReportLog taskWrkLog = new TaskWrkReportLog();
-                    Synchro.Copy(taskWrk, taskWrkLog);
-                    if (!taskWrkReportLogService.insert(taskWrkLog)) {
-                        throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog);
+                    if (!Cools.isEmpty(response)) {
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) {
+                            TaskWrkReportLog taskWrkLog = new TaskWrkReportLog();
+                            Synchro.Copy(taskWrk, taskWrkLog);
+                            taskWrkLog.setId(null);
+                            if (!taskWrkReportLogService.insert(taskWrkLog)) {
+                                throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog);
+                            }
+                            if (!taskWrkReportService.deleteById(taskWrk)) {
+                                throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog);
+                            }
+                            bool = true;
+                        }
                     }
-                    if (!taskWrkReportService.deleteById(taskWrk)) {
-                        throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog);
-                    }
-                    bool = true;
+
                 } catch (Exception e) {
                     log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response);
                 } finally {
-                    apiLogService.save("wcs瀹屾垚鎴栬�呭彇娑堜换鍔′笂鎶ms"
+                    apiLogService.save("浠诲姟鐘舵�佷笂鎶�"
                             , wmsUrl + TaskExecCallback
                             , null
                             , "127.0.0.1"
-                            , JSON.toJSONString(headParam)
+                            , JSON.toJSONString(wmsFeedback)
                             , response
                             , bool
                     );
@@ -95,4 +116,69 @@
 
     }
 
+//    @Scheduled(cron = "0/5 * * * * ? ")
+    public synchronized void autoMoveLoc() {
+        int flag = 1; // 1.璺�23鍙峰爢鍨涙満鍓�7鍒楋紝1鍙峰爢鍨涙満1锛�9灞� 2.璺�23鍙峰爢鍨涙満鍚�8-12鍒楋紝1鍙峰爢鍨涙満2-8灞�
+        for(int i = 1; i <= 3; i++ ){
+            // 鑾峰彇鍫嗗灈鏈哄搴斾换鍔�
+            Integer count = taskWrkMapper.selectCount(new EntityWrapper<TaskWrk>().eq("crn_no", i));
+            if (count == 0) {
+                // 鑾峰彇鍫嗗灈鏈哄贩閬撳湪搴撳簱浣�
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i));
+                if (locMast != null) {
+                    // 鑾峰彇涓�涓Щ鍔ㄧ殑鐩爣搴撲綅
+                    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 {
+                            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));
+                        }
+
+                    } else {
+                        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",2,3,4,5,6,7,8));
+                        } 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));
+                        }
+
+                    }
+
+                    if (locMast1 != null) {
+                        // 鍒涘缓绉诲簱浠诲姟
+                        TaskWrk taskWrk = new TaskWrk();
+                        Date now = new Date();
+                        taskWrk.setTaskNo(locMast1.getLocNo());//浠诲姟鍙�
+                        taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));
+                        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+                        taskWrk.setCreateTime(now);
+                        taskWrk.setIoType(3);//浠诲姟绫诲瀷
+                        taskWrk.setIoPri(11);//浼樺厛绾�
+                        taskWrk.setBarcode(locMast.getBarcode());//鏉$爜
+                        taskWrk.setCrnNo(locMast.getCrnNo());
+                        taskWrk.setWrkSts(11);
+                        taskWrk.setStartPoint(locMast.getLocNo());//璧风偣
+                        taskWrk.setTargetPoint(locMast1.getLocNo());
+                        taskWrkMapper.insert(taskWrk);
+                        locMast1.setStatus("1");
+                        locMastService.updateById(locMast1);
+                    }
+                }
+            }
+        }
+    }
+
+    private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) {
+        WmsFeedback feedback = new WmsFeedback();
+        feedback.setBarcode(taskWrk.getBarcode());
+        feedback.setReportTime(DateUtils.convert(new Date()));
+        feedback.setIoType(taskWrk.getIoType());
+        feedback.setTaskNo(taskWrk.getTaskNo());
+        feedback.setStatus(taskWrk.getStatus());
+        return feedback;
+    }
 }

--
Gitblit v1.9.1