From 6efef82561e2cf14f09871d63e1581c6174cfe10 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 25 六月 2025 15:01:53 +0800
Subject: [PATCH] 第二版本

---
 src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java       |    1 
 src/main/java/com/zy/asrs/controller/OpenController.java                   |   29 +--------
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java                |    4 
 src/main/java/com/zy/asrs/entity/WrkMast.java                              |    2 
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java                      |   10 +++
 src/main/java/com/zy/asrs/controller/MobileController.java                 |   57 +++++++++----------
 src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java |   63 +++++++++++----------
 src/main/resources/application.yml                                         |    6 +-
 8 files changed, 78 insertions(+), 94 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 75264dd..2955095 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -32,6 +32,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import javax.xml.crypto.Data;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -350,11 +351,12 @@
     public R AGVSite(@RequestParam(required = false) String locNo){
         HashMap<Integer,String> map=new HashMap<>();
         map.put(100,"100-鍏ュ簱鍙�");
-        map.put(1000,"1000-琛ョ┖鏉垮彛");
+        map.put(1001,"1000-琛ョ┖鏉垮彛");
         map.put(2001,"2001-鍑哄簱鍙�1");
         map.put(2002,"2002-鍑哄簱鍙�2");
         map.put(3001,"3001-浣滀笟鍙�1");
         map.put(3002,"3002-浣滀笟鍙�2");
+        map.put(4001,"4001-涓嶅悎鏍�");
         map.remove(Integer.parseInt(locNo));
         return R.ok(map);
     }
@@ -368,37 +370,28 @@
     @RequestMapping("/AGVMove")
     public R AGVMove(@RequestParam(required = false) String sourceStaNo
     ,@RequestParam(required = false) String staNo){
-        RCSParam rcsParam = new RCSParam();
         LocalDateTime now = LocalDateTime.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss");
+        String noww=new Date().getTime()+"";
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂�
-        //缃戠粶娴佹按鍙�
-        rcsParam.setReqId(now.toString());
-        //搴旂敤鏍囪瘑
-        rcsParam.setClientId("WMS");
-        //閫氱煡鏃堕棿
-        rcsParam.setReqTime(formattedDate);
-        RCSParam.DataBody dataBody=new RCSParam.DataBody();
-        //浠诲姟鍙�
-        dataBody.setId(formattedDate);
 
-        List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
-        RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
-        //鍙栬揣绫诲瀷
-        taskBody.setType("load");
-        taskBody.setStation(sourceStaNo);
-        taskBodyList.add(taskBody);
+        LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
+        rcsParam.put("task_id",noww);
+        rcsParam.put("start_location",sourceStaNo);
+        rcsParam.put("start_site_level",1);
+        rcsParam.put("start_command",1);
+        rcsParam.put("target_location",staNo);
+        rcsParam.put("target_site_level",1);
+        rcsParam.put("target_command",2);
+        rcsParam.put("priority",1);
+        rcsParam.put("robot_type",3);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L
+        rcsParam.put("MoverID","XS1");
 
-        RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
-        //鏀捐揣绫诲瀷
-        taskBody1.setType("unload");
-        taskBody1.setStation(staNo);
-        taskBodyList.add(taskBody1);
-
-        dataBody.setTasks(taskBodyList);
-        rcsParam.setData(dataBody);
+        LinkedHashMap<String,Object> map=new LinkedHashMap<>();
+        map.put("data",rcsParam);
         String response ="";
         Boolean bool =false;
+        String msg = "";
 
         try {
             log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
@@ -406,12 +399,16 @@
                     // .setHeaders(headParam)
                     .setUri(url)
                     .setPath(attrcs)
-                    .setJson(JSON.toJSONString(rcsParam))
+                    .setJson(JSON.toJSONString(map))
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
-            if(jsonObject.getBoolean("IsSuccess")){
+            JSONObject data = jsonObject.getJSONObject("data");
+            JSONObject errInfo = jsonObject.getJSONObject("err_info");
+            if(data.getInteger("result")==0){
                 bool = true;
+            }else{
+                msg=errInfo.getString("err_msg");
             }
         } catch (Exception e) {
             log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
@@ -420,7 +417,7 @@
                     , url + attrcs
                     , null
                     , "127.0.0.1"
-                    , JSON.toJSONString(rcsParam)
+                    , JSON.toJSONString(map)
                     , response
                     , bool
             );
@@ -428,7 +425,7 @@
         if(bool){
             return R.ok();
         }else {
-            return R.error("涓嬪彂浠诲姟澶辫触");
+            return R.error(msg);
         }
 
     }
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index b0b802a..79ff227 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -213,33 +213,10 @@
     /*********************************RCS浠诲姟缁撴潫鎺ュ彛****************************************************/
 
     /**
-     * 搴撳瓨缁熻
+     * RCS 浠诲姟鍙嶉
      */
     @RequestMapping("/taskOver")
-    public HashMap taskOver(@RequestBody HashMap<String,Object> param) {
-        HashMap map = new HashMap();
-        Map<String ,Object > map1 = (Map<String, Object>)param.get("Data");
-
-        String id = (String) map1.get("Id");
-        String status = (String) map1.get("Status");
-        if (!status.equals("finished_manual")){
-            map.put("IsSuccess", true);
-            return map;
-        }
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(id)));
-        if (wrkMast == null) {
-            map.put("IsSuccess", false);
-            map.put("ErrorCode","1");
-            map.put("Message","娌℃湁鎵惧埌璇ヤ换鍔″彿:"+id);
-            return map;
-        }
-        if(wrkMast.getIoType()==101||wrkMast.getIoType()==110){
-            wrkMast.setWrkSts(15L);//鎼繍瀹屾垚锛屼换鍔¤浆鍘嗗彶妗�
-        }else if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){
-            wrkMast.setWrkSts(14L);//鎼繍瀹屾垚,浠诲姟鐘舵�佸洖鍒�14
-        }
-        wrkMastService.updateById(wrkMast);
-        map.put("IsSuccess", true);
-        return map;
+    public void taskOver(@RequestBody HashMap<String,Object> param) {
+        log.info("RCS浠诲姟鍙嶉={}",param);
     }
 }
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index e73d01a..50b268b 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -243,7 +243,7 @@
     @TableField("appe_time")
     private Date appeTime;
 
-    @ApiModelProperty(value= "")
+    @ApiModelProperty(value= "RCS浠诲姟鍙�")
     @TableField("pause_mk")
     private String pauseMk;
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index f1814fa..6e140cc 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -247,8 +247,8 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
             wrkMast.setModiTime(now);
-            if(outSta==2000){
-                wrkMast.setMemo("2000");
+            if(outSta>199){
+                wrkMast.setMemo(outSta+"");
             }
             if (!wrkMastService.insert(wrkMast)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 2615993..0a92339 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -35,8 +35,16 @@
 
     @Scheduled(cron = "0/3 * * * * ? ")
     private void execute() {
+        //鎷f枡鐩樼偣浠诲姟涓嬪彂
+        WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().in("io_type",107,103).eq("wrk_sts",14).isNull("error_memo"));
+        if (!Cools.isEmpty(wrkMast1)) {
+            wrkMast1.setWrkSts(30L);
+            wrkMastService.updateById(wrkMast1);
+        }
         List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
-
+        if (wrkMasts.isEmpty()) {
+            return;
+        }
         for (WrkMast wrkMast : wrkMasts) {
             ReturnT<String> returnT = workMastHandler.start(wrkMast);
             if (!returnT.isSuccess()) {
diff --git a/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
index e5a8645..5f076eb 100644
--- a/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
+++ b/src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
@@ -42,7 +42,6 @@
             ReturnT<String> returnT = assignTasksToRCSHandler.start(wrkMast);
             if (!returnT.isSuccess()) {
                 wrkMast.setUpdMk("X");
-                wrkMast.setErrorMemo(returnT.getMsg());
                 wrkMast.setErrorTime(new Date());
                 if (!wrkMastService.updateById(wrkMast)) {
                     log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java b/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
index c5df7f8..645bdfc 100644
--- a/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
+++ b/src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
@@ -19,6 +19,7 @@
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedHashMap;
 import java.util.List;
 
 @Slf4j
@@ -35,61 +36,63 @@
     private String attrcs;
 
     public ReturnT<String> start(WrkMast wrkMast) {
-        RCSParam rcsParam = new RCSParam();
         LocalDateTime now = LocalDateTime.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss");
+        String noww="bb" + new Date().getTime();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂�
-        //缃戠粶娴佹按鍙�
-        rcsParam.setReqId(now.toString());
-        //搴旂敤鏍囪瘑
-        rcsParam.setClientId("WMS");
-        //閫氱煡鏃堕棿
-        rcsParam.setReqTime(formattedDate);
-        RCSParam.DataBody dataBody=new RCSParam.DataBody();
-        //浠诲姟鍙�
-        dataBody.setId(wrkMast.getWrkNo()+"");
 
-        List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
-        RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
-        //鍙栬揣绫诲瀷
-        taskBody.setType("load");
-        taskBody.setStation(wrkMast.getStaNo()+"");
-        taskBodyList.add(taskBody);
+        LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
+        rcsParam.put("task_id",noww);
+        rcsParam.put("start_location","102");
+        rcsParam.put("start_site_level",1);
+        rcsParam.put("start_command",1);
+        rcsParam.put("target_location",wrkMast.getMemo());
+        rcsParam.put("target_site_level",1);
+        rcsParam.put("target_command",2);
+        rcsParam.put("priority",1);
+        rcsParam.put("robot_type",3);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L
+        rcsParam.put("MoverID","XS1");
 
-        RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
-        //鏀捐揣绫诲瀷
-        taskBody1.setType("unload");
-        taskBody1.setStation(wrkMast.getMemo());
-        taskBodyList.add(taskBody1);
-
-        dataBody.setTasks(taskBodyList);
-        rcsParam.setData(dataBody);
+        LinkedHashMap<String,Object> map=new LinkedHashMap<>();
+        map.put("data",rcsParam);
         String response ="";
         Boolean bool =false;
+        String msg = "";
 
+        wrkMast.setPauseMk(noww);
         try {
             log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
             response = new HttpHandler.Builder()
                     // .setHeaders(headParam)
                     .setUri(url)
                     .setPath(attrcs)
-                    .setJson(JSON.toJSONString(rcsParam))
+                    .setJson(JSON.toJSONString(map))
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
-            if(jsonObject.getBoolean("IsSuccess")){
-                wrkMast.setWrkSts(15L);//WMS涓嬪彂鎼繍浠诲姟缁橰CS鎴愬姛,杞巻鍙叉。
+            JSONObject data = jsonObject.getJSONObject("data");
+            JSONObject errInfo = jsonObject.getJSONObject("err_info");
+            if(data.getInteger("result")==0){
+                if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){
+                    wrkMast.setWrkSts(16L);//寰呭洖搴�
+                }else{
+                    wrkMast.setWrkSts(15L);//涓嬪彂RCS-鎴愬姛
+                }
+
+                wrkMast.setErrorMemo(noww);
                 wrkMastService.updateById(wrkMast);
                 bool = true;
+            }else{
+                msg=errInfo.getString("err_msg");
             }
         } catch (Exception e) {
-            log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触{},杩斿洖鍊�={}", wrkMast, response);
+            log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
         } finally {
             apiLogService.save("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍"
                     , url + attrcs
                     , null
                     , "127.0.0.1"
-                    , JSON.toJSONString(rcsParam)
+                    , JSON.toJSONString(map)
                     , response
                     , bool
             );
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 86c927e..f740d25 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs
+    url: jdbc:sqlserver://178.18.1.200:1433;databasename=jxtlfasrs-yclk
     username: sa
     password: sa@123
   mvc:
@@ -71,6 +71,6 @@
 #RCS
 rcs:
   address:
-    url: http://192.168.3.102:16001
+    url: http://178.18.1.220:50001
     #浠诲姟涓嬪彂鍦板潃
-    attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub.
\ No newline at end of file
+    attrcs: rbrainrobot/create_task
\ No newline at end of file

--
Gitblit v1.9.1