From 10e6a9a8adad2226f13a4e4704ca5b2ad5b9ef9a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 21 十二月 2025 18:49:59 +0800
Subject: [PATCH] 刀具库WMS功能完善

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |   80 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 70 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 66ed864..12af9a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,9 +4,9 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.mes.TransArrivalStation;
-import com.zy.asrs.entity.mes.TransParent;
+import com.zy.asrs.entity.mes.*;
 import com.zy.asrs.entity.rcs.*;
 import com.zy.asrs.enums.RcsRetMethodEnum;
 import com.zy.asrs.mapper.BlockStationMapper;
@@ -23,6 +23,8 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -40,6 +42,9 @@
     @Value("${mes.defaultUserId}")
     public long defaultUserId;
 
+    @Value("${dj.url}")
+    public String DJ_URL;
+
     @Resource
     private BasStationService basStationService;
 
@@ -55,6 +60,12 @@
     private TaskDetlServiceImpl taskDetlService;
     @Resource
     private WrkMastService wrkMastService;
+
+    @Resource
+    private WrkDetlService wrkDetlService;
+
+    @Resource
+    private OrderPakoutService orderPakoutService;
 
 
     // region 灏侀攣鍖洪�昏緫锛岀洰鍓嶅彧鏈変竴涓ぇ灏侀攣鍖猴紝浠诲姟鍏ㄩ儴杞埌婊戝潡搴撳鐞嗭紝鎴栫洿鎺ュ啓鍒版粦鍧楀簱
@@ -175,21 +186,23 @@
         String url = rcsFactory == 2 ? HX_URL : HIK_URL + "api/robot/controller/task/submit";
         String response = "";
         try {
+            // 妯℃嫙杩斿洖
+//            rcsReturn.setCode("SUCCESS");
+//            success = true;
+
             response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
             if (!StringUtils.isEmpty(response) && response.contains("code")) {
                 rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
                 if ("SUCCESS".equals(rcsReturn.getCode())) {
-                    // 妯℃嫙杩斿洖
-//            rcsReturn.setCode("SUCCESS");
-//            JSONObject jsonObject = new JSONObject();
-//            jsonObject.put("robotTaskCode","2025121301");
-//            rcsReturn.setData(jsonObject);
                     success = true;
 
                     log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
                 } else {
                     log.error("鍛煎彨agv鎼繍澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
                 }
+            } else {
+                log.error("鍛煎彨agv鎼繍澶辫触锛宺esponse锛歿}",response);
+                rcsReturn.setCode("ERROR");
             }
         } catch (Exception e) {
             log.error("鍛煎彨agv鎼繍寮傚父", e);
@@ -314,11 +327,11 @@
                     switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
                         case TASK_START: {
                             if (ioType == 1 || ioType == 10 || ioType == 53) {
-                                wrkMast.setCrnStrTime(now);
                                 wrkMast.setModiTime(now);
                                 wrkMastService.updateById(wrkMast);
                             } else if (ioType == 101 || ioType == 110 || ioType == 103) {
-
+                                wrkMast.setModiTime(now);
+                                wrkMastService.updateById(wrkMast);
                             } else {
                                 log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
                             }
@@ -331,6 +344,44 @@
                                 wrkMast.setModiTime(now);
                                 wrkMastService.updateById(wrkMast);
                             } else if (ioType == 101 || ioType == 110 || ioType == 103) {
+                                wrkMast.setWrkSts(14L);
+                                wrkMast.setCrnEndTime(now);
+                                wrkMast.setModiTime(now);
+                                wrkMastService.updateById(wrkMast);
+                                // 缁橳MS鍙嶉鍑哄簱璐х墿淇℃伅
+                                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+                                if(!wrkDetls.isEmpty()) {
+                                    WrkDetl wrkDetl = wrkDetls.get(0);
+                                    String orderNo = wrkDetl.getOrderNo();
+                                    if(!Cools.isEmpty(orderNo)) {
+                                        OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo);
+                                        if (orderPakout != null) {
+                                            MesInApply mesOutFeedback = new MesInApply();
+                                            mesOutFeedback.setBillType(String.valueOf(orderPakout.getDocType()));
+                                            mesOutFeedback.setOrderNo(orderNo);
+                                            mesOutFeedback.setCreateTime( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now));
+                                            List<MesItemDetails> details = new ArrayList<>();
+                                            for(WrkDetl detl:wrkDetls) {
+                                                MesItemDetails detail = new MesItemDetails();
+                                                detail.setItemNo(detl.getMatnr());
+                                                detail.setAnfme(detl.getAnfme());
+                                                details.add(detail);
+                                            }
+                                            mesOutFeedback.setDetails(details);
+                                            String url = DJ_URL + "api/OutboundOrder/WmsOutFinish";
+                                            String request = JSONObject.toJSONString(mesOutFeedback);
+                                            String response = RcsServiceImpl.sendPost(url, request);
+                                            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                                                MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+                                                if("1".equals(mesReturn.getSuccess())) {
+                                                    log.info("CTU鍑哄簱鍙嶉end,涓婃姤TMS鎴愬姛,宸ヤ綔鍙凤細{}锛屾槑缁嗭細{}",wrkMast.getWrkNo(),request);
+                                                } else {
+                                                    log.error("CTU鍑哄簱鍙嶉end,涓婃姤TMS澶辫触锛�,宸ヤ綔鍙凤細{}锛屾槑缁嗭細{}",wrkMast.getWrkNo(),request);
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
 
                             } else {
                                 log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
@@ -393,7 +444,7 @@
                         task.setModiUser(defaultUserId);
                         taskService.updateById(task);
                         // 浠诲姟瀹屾垚
-                        mesService.reporterTask(rcsReporterTask);
+//                        mesService.reporterTask(rcsReporterTask);
 
                         // 鏇存柊鎺ラ┏浣嶇疆鐘舵��
 
@@ -433,6 +484,15 @@
                             mesService.applyOutStation(apply);
                         } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
                             mesService.outStation(apply);
+                            // agv缁х画鎵ц
+                            // 婧愮珯鐐规槸浜х嚎锛岀绔欏畬鎴愬悗缁檙cs鍙嶉缁х画鎵ц
+                            if(task.getSourceStaNo().contains("TOOL")) {
+                                TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+                                inOutStationAllow.setTaskno(robotTaskCode);
+                                inOutStationAllow.setStatus("Y");
+                                inOutStationAllow.setAgvCode(singleRobotCode);
+                                mesService.allowOutStation(inOutStationAllow);
+                            }
                         }
                     } break;
                     case ARRIVE_ON_STATION: {

--
Gitblit v1.9.1