From d61d4384e19580a32becb54e8e7f2287bed5469a Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 26 五月 2025 09:08:18 +0800
Subject: [PATCH] 1.出库口补空板 2.组托时调用agv 3.新增agv调用程序

---
 src/main/java/com/zy/asrs/entity/param/RCSParam.java                                |   51 ++++++++++++
 src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java |   61 +++++++++++++++
 src/main/java/com/zy/asrs/entity/WaitPakin.java                                     |    4 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java                       |   16 +---
 src/main/java/com/zy/asrs/controller/MobileController.java                          |   88 +++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/WorkController.java                            |    2 
 src/main/resources/application.yml                                                  |   11 ++
 7 files changed, 216 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 7fcf3f4..bab271d 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -14,10 +14,12 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.RCSParam;
 import com.zy.asrs.entity.param.Review;
 import com.zy.asrs.entity.result.MobileAdjustResult;
 import com.zy.asrs.service.*;
 import com.zy.asrs.service.impl.MobileServiceImpl;
+import com.zy.asrs.task.WorkMastScheduler;
 import com.zy.asrs.task.handler.WorkLogHandler;
 import com.zy.common.constant.MesConstant;
 import com.zy.common.model.LocDto;
@@ -26,13 +28,18 @@
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.web.BaseController;
 import com.zy.common.web.param.SearchLocParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -42,7 +49,7 @@
 @RestController
 @RequestMapping("mobile")
 public class MobileController extends BaseController  {
-
+    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
     @Autowired
     private MobileService mobileService;
     @Autowired
@@ -63,6 +70,12 @@
     private BasDevpService basDevpService;
     @Autowired
     private PackService packService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Value("${rcs.address.url}")
+    private String url;
+    @Value("${rcs.address.attrcs}")
+    private String attrcs;
 
 
     // 鍟嗗搧涓婃灦
@@ -443,5 +456,78 @@
 
     /*...........................璧e窞鏂板..............浠ヤ笂.............璧e窞鏂板...........................*/
 
+    /**
+     * 鎵ц绉诲簱浠诲姟
+     * @param sourceStaNo
+     * @param staNo
+     * @return
+     */
+    @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 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);
+
+        RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
+        //鏀捐揣绫诲瀷
+        taskBody1.setType("unload");
+        taskBody1.setStation(staNo);
+        taskBodyList.add(taskBody1);
+
+        dataBody.setTasks(taskBodyList);
+        rcsParam.setData(dataBody);
+        String response ="";
+        Boolean bool =false;
+
+        try {
+            log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(url)
+                    .setPath(attrcs)
+                    .setJson(JSON.toJSONString(rcsParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            if(jsonObject.getBoolean("IsSuccess")){
+                bool = true;
+            }
+        } catch (Exception e) {
+            log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
+        } finally {
+            apiLogService.save("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍"
+                    , url + attrcs
+                    , null
+                    , "127.0.0.1"
+                    , JSON.toJSONString(rcsParam)
+                    , response
+                    , bool
+            );
+        }
+        if(bool){
+            return R.ok();
+        }else {
+            return R.error("涓嬪彂浠诲姟澶辫触");
+        }
+
+    }
 
 }
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index eae764b..3ba64de 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -158,4 +158,6 @@
         return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo);
     }
 
+
+
 }
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index 21a45ed..a786586 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -70,7 +70,7 @@
     @ApiModelProperty(value= "浜у湴")
     private String origin;
 
-    @ApiModelProperty(value= "鍘傚")
+    @ApiModelProperty(value= "鍞竴鐮�")
     private String manu;
 
     @ApiModelProperty(value= "鐢熶骇鏃ユ湡")
@@ -105,7 +105,7 @@
     @TableField("supp_code")
     private String suppCode;
 
-    @ApiModelProperty(value= "鏄惁鎵规 1: 鏄�  0: 鍚�  ")
+    @ApiModelProperty(value= "agv浠诲姟涓嬪彂 锛� 0锛氬緟涓嬪彂 1锛氫笅鍙戞垚鍔� 2锛氫换鍔″畬鎴�")
     @TableField("be_batch")
     private Integer beBatch;
 
diff --git a/src/main/java/com/zy/asrs/entity/param/RCSParam.java b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
new file mode 100644
index 0000000..0bf6f65
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
@@ -0,0 +1,51 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RCSParam {
+    /**
+     * 缃戠粶娴佹按鍙�
+     */
+    private String ReqId;
+
+    /**
+     * 搴旂敤琛ㄧず wms
+     */
+    private String ClientId;
+
+    /**
+     * 閫氱煡鏃堕棿
+     */
+    private String ReqTime;
+
+    /**
+     * 鏁版嵁
+     */
+    private DataBody Data;
+
+    @Data
+    public static class DataBody {
+        /**
+         * 浠诲姟鍙�
+         */
+        private String Id;
+
+        private List<TaskBody> tasks;
+    }
+    @Data
+    public static class TaskBody {
+        /**
+         * 浠诲姟绫诲瀷 锛�
+         * load 鍙栬揣 锛� unload 鏀捐揣 锛�
+         */
+        private String Type;
+
+        /**
+         * 鐩爣搴撲綅
+         */
+        private String Station;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 0723b34..314f1f1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -125,17 +125,6 @@
         if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
             throw new CoolException(BaseRes.PARAM);
         }
-        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
-        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
-                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
-            throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
-        }
-
-        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
-        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
-        if (countLoc > 0 || countWrk > 0) {
-            throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
-        }
 
         Date now = new Date();
 
@@ -164,7 +153,7 @@
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
                 waitPakin.setBatch(detlDto.getBatch());
-                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+                waitPakin.setZpallet("");   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
                 waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
                 waitPakin.setStatus("Y");    // 鐘舵��
@@ -172,6 +161,9 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setMemo(param.getBarcode());//AGV婧愮珯
+                waitPakin.setBeBatch(0);//AGV 浠诲姟绛夊緟涓嬪彂
+                waitPakin.setManu(now.getTime()+"");//鍞竴鐮�
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
new file mode 100644
index 0000000..f99e1e7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
@@ -0,0 +1,61 @@
+package com.zy.asrs.task.NewWay;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.R;
+import com.zy.asrs.controller.MobileController;
+import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.WaitPakinServiceImpl;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.WorkMastHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Component
+public class AutomaticallyAssignInTasksToRCSScheduler {
+
+    private static final Logger log = LoggerFactory.getLogger(AutomaticallyAssignInTasksToRCSScheduler.class);
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WorkMastHandler workMastHandler;
+    @Autowired
+    private WaitPakinServiceImpl waitPakinService;
+    @Autowired
+    private MobileController mobileController;
+
+    /**
+     * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute(){
+        //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
+        WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1));
+        if(waitPakin1!=null){
+            return;
+        }
+        //鎵惧埌姝e湪绛夊緟鐨勭粍鎵樻暟鎹�
+        //璇ユ暟鎹繘琛�0杞�1
+        WaitPakin waitPakin=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",0));
+        if(waitPakin!=null){
+            R r=mobileController.AGVMove(waitPakin.getMemo(),100+"");
+            if (r.get("code").equals(200)){
+                waitPakin.setBeBatch(1);//0杞�1
+                waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu()));
+            }
+        }
+
+    }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 9486b42..bec9086 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs
+    url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs
 #    url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
     username: sa
     password: sa@123
@@ -100,4 +100,11 @@
   # 鍚姩娴嬭瘯璇锋眰
   startUpTestPACK: TestStart
   #鏆傚仠娴嬭瘯
-  suspendTestPACK: TestStop
\ No newline at end of file
+  suspendTestPACK: TestStop
+
+#RCS
+rcs:
+  address:
+    url: http://192.168.3.102:16001
+    #浠诲姟涓嬪彂鍦板潃
+    attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub.
\ No newline at end of file

--
Gitblit v1.9.1