From 990b97bf3e6e9362faa1830fd0c600d54370efd5 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 19 十月 2024 15:07:49 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/controller/OpenController.java                |   16 +++++
 src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java            |   33 +++++++++++
 src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java             |   20 ++++++
 src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java |   19 ++++++
 src/main/java/com/zy/core/model/protocol/RgvProtocol.java               |    5 +
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java             |   63 +++++++++++++++++++--
 src/main/java/com/zy/asrs/service/OpenService.java                      |    2 
 7 files changed, 151 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 025bc5b..f3f6a82 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -56,6 +56,22 @@
         return openService.wcsTaskDistribution(param);
     }
 
+    /**
+     * 鏁版嵁鍚屾
+     */
+    @PostMapping("/status/cs/default/v1")
+    @AppAuth(memo = "WCS鏁版嵁鍚屾")
+    public synchronized R wcsTaskStatus(@RequestHeader(required = false) String appkey,
+                                              @RequestBody Long timestamp,
+                                              HttpServletRequest request) {
+        auth(appkey, timestamp, request);
+        if (Cools.isEmpty(timestamp)) {
+            return R.parse(BaseRes.PARAM);
+        }
+
+        return openService.wcsTaskStatus(timestamp);
+    }
+
 
     private void auth(String appkey, Object obj, HttpServletRequest request) {
         log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
diff --git a/src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java b/src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java
new file mode 100644
index 0000000..48d2632
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java
@@ -0,0 +1,19 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.utils.TimeCalculatorUtils;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ *  Created by Monkey D. Luffy on 2023.07.19
+ * */
+@Data
+public class WcsDataSynchronizationParam {
+    private List<WcsTaskListParam> taskList;      //  鏄�	瀛楃涓� 宸ヤ綔鍙�
+    private List<WcsRgvListParam> rgvList;      //  鏄�	瀛楃涓� 浣滀笟鏃堕暱
+    private Long timestamp;       //  鏄�	瀛楃涓� 浣滀笟灏忚溅缂栧彿
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java b/src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java
new file mode 100644
index 0000000..4edf992
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ *  Created by Monkey D. Luffy on 2023.07.19
+ * */
+@Data
+public class WcsRgvListParam {
+    private String taskNo;       //  鏄�	瀛楃涓� 浣滀笟灏忚溅缂栧彿
+    private String rgvNo;       //  鏄�	瀛楃涓� 浣滀笟灏忚溅缂栧彿
+    private String status;     //  鏄�	瀛楃涓� 浠诲姟鐘舵��  1锛氬垵濮�  2锛氫綔涓氫腑  3锛氬畬鎴�
+    private String currSta = "";    //  鏄�	瀛楃涓� 缁撴潫鏃堕棿锛堟牸寮忥細yyyy--MM-dd HH:mm:ss)
+    private List<String> error = new ArrayList<>();       //  鏄�	瀛楃涓� 寮傚父淇℃伅锛堝鏃犲紓甯稿垯涓虹┖鏁扮粍锛�
+
+    public WcsRgvListParam(){}
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java b/src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java
new file mode 100644
index 0000000..285a9be
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java
@@ -0,0 +1,33 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.WrkMast;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ *  Created by Monkey D. Luffy on 2023.07.19
+ * */
+@Data
+public class WcsTaskListParam {
+
+    private String taskNo;      //  鏄�	瀛楃涓� 宸ヤ綔鍙�
+    private String rgvNo;       //  鏄�	瀛楃涓� 浣滀笟灏忚溅缂栧彿
+    private String startSta;    //  鏄�	瀛楃涓� 璧峰浣滀笟绔欙紙鐜┛锛�
+    private String endSta;      //  鏄�	瀛楃涓� 鐩爣浣滀笟绔欙紙鐜┛锛�
+    private Integer status;     //  鏄�	瀛楃涓� 浠诲姟鐘舵��  1锛氬垵濮�  2锛氫綔涓氫腑  3锛氬畬鎴�
+    private List<String> error = new ArrayList<>();       //  鏄�	瀛楃涓� 寮傚父淇℃伅锛堝鏃犲紓甯稿垯涓虹┖鏁扮粍锛�
+
+
+    public WcsTaskListParam(){}
+
+    public WcsTaskListParam(WrkMast wrkMast){
+        this.taskNo = wrkMast.getWrkNo().toString();
+        this.rgvNo = wrkMast.getRgvNo().toString();
+        this.startSta = wrkMast.getSourceStaNo().toString();
+        this.endSta = wrkMast.getStaNo().toString();
+        this.status = wrkMast.getWrkSts().intValue();
+        this.error.add(wrkMast.getErrorMemo());
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 1d360aa..d545a1e 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -10,7 +10,7 @@
     /**
      *
      */
-    List<String> queryStock();
+    R wcsTaskStatus(Long timestamp) ;
 
     R wcsTaskDistribution(WcsTaskDistributionParam param);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 356576c..8185b8a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,15 +3,27 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.zy.asrs.domain.param.RingThroughParam;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.WcsDataSynchronizationParam;
+import com.zy.asrs.entity.param.WcsRgvListParam;
 import com.zy.asrs.entity.param.WcsTaskDistributionParam;
+import com.zy.asrs.entity.param.WcsTaskListParam;
 import com.zy.asrs.service.OpenService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.RgvThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -22,14 +34,11 @@
 @Service
 public class OpenServiceImpl implements OpenService {
 
+
+    @Autowired
+    private SlaveProperties slaveProperties;
     @Autowired
     private WrkMastService wrkMastService;
-
-    @Override
-    @Transactional
-    public List<String> queryStock() {
-        return null;
-    }
 
     @Override
     @Transactional
@@ -51,4 +60,46 @@
         return R.ok();
     }
 
+    @Override
+    @Transactional
+    public R wcsTaskStatus(Long timestamp) {
+        try{
+            WcsDataSynchronizationParam wcsDataSynchronizationParam = new WcsDataSynchronizationParam();
+            List<WcsTaskListParam> wcsTaskListParamList = new ArrayList<>();
+            List<WcsRgvListParam> wcsRgvListParamList = new ArrayList<>();
+            List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<>());
+            for (WrkMast wrkMast : wrkMastList){
+                WcsTaskListParam wcsTaskListParam = new WcsTaskListParam(wrkMast);
+                wcsTaskListParamList.add(wcsTaskListParam);
+            }
+            for (RgvSlave rgv : slaveProperties.getRgv()) {
+                // 鑾峰彇RGV淇℃伅
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+                if (rgvThread == null) {
+                    continue;
+                }
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                WcsRgvListParam wcsRgvListParam = new WcsRgvListParam();
+                wcsRgvListParam.setRgvNo(rgv.getId().toString());
+                wcsRgvListParam.setTaskNo(Cools.isEmpty(rgvProtocol.getTaskNo1()) ? null:rgvProtocol.getTaskNo1().toString());
+                wcsRgvListParam.setStatus(rgvProtocol.statusType.desc);
+                List<String> arrayList = new ArrayList<>();
+                if (rgvProtocol.getAlarm()!=0){
+                    arrayList.add(rgvProtocol.getAlarm$());
+                }
+                wcsRgvListParam.setError(arrayList);
+                wcsRgvListParamList.add(wcsRgvListParam);
+            }
+            wcsDataSynchronizationParam.setTaskList(wcsTaskListParamList);
+            wcsDataSynchronizationParam.setRgvList(wcsRgvListParamList);
+            wcsDataSynchronizationParam.setTimestamp(timestamp);
+            return R.ok().add(wcsDataSynchronizationParam);
+        } catch (Exception e){
+            return R.error("寮傚父").add("寮傚父淇℃伅锛�"+e);
+        }
+    }
+
 }
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index d3aee88..4f7df3b 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -207,4 +207,9 @@
         return RgvPos.intValue();
     }
 
+    public String getAlarm$(){
+        //闇�瑕佹牴鎹幇鍦烘敼閫�  鏍规嵁璇诲埌鐨勫�艰幏鍙栧搴旂珯鐐逛綅缃�
+        return null;
+    }
+
 }

--
Gitblit v1.9.1