From 8e01a40be0a7ba61ece12870332b35a1fa3bfcd5 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 02 一月 2026 10:26:41 +0800
Subject: [PATCH] 1.新增agv状态请求离开 2.修复无法自动生成移库任务

---
 src/main/java/com/zy/asrs/entity/MesReturn.java                   |   20 +
 src/main/java/com/zy/asrs/service/impl/AgvTaskServiceImpl.java    |   12 
 src/main/java/com/zy/asrs/entity/TransParent.java                 |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |  314 ++++++++----------
 src/main/java/com/zy/asrs/entity/WrkMast.java                     |    2 
 src/main/resources/mapper/WrkMastMapper.xml                       |    5 
 src/main/java/com/zy/asrs/entity/WrkMastLog.java                  |    3 
 src/main/java/com/zy/common/model/MatDto.java                     |   10 
 /dev/null                                                         |   23 -
 src/main/java/com/zy/core/thread/SiemensCrnThread.java            |    8 
 src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java             |    4 
 src/main/java/com/zy/asrs/service/AgvTaskService.java             |    2 
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java        |  489 ++++++++++++++++++++++--------
 src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java |   25 +
 src/main/java/com/zy/core/MainProcess.java                        |    4 
 src/main/resources/application.yml                                |    7 
 16 files changed, 588 insertions(+), 342 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/MesReturn.java b/src/main/java/com/zy/asrs/entity/MesReturn.java
new file mode 100644
index 0000000..cb7611d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/MesReturn.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+// MES鎺ュ彛杩斿洖缁撴灉
+@Data
+public class MesReturn {
+
+    // 1锛氭垚鍔燂紱2锛氬け璐�
+    @JsonProperty("Success")
+    @JSONField(name = "Success")
+    private String Success;
+    // 澶辫触娑堟伅
+    @JsonProperty("Message")
+    @JSONField(name = "Message")
+    private String Message;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/TransParent.java b/src/main/java/com/zy/asrs/entity/TransParent.java
index 58d5ca8..441f856 100644
--- a/src/main/java/com/zy/asrs/entity/TransParent.java
+++ b/src/main/java/com/zy/asrs/entity/TransParent.java
@@ -12,7 +12,7 @@
     private String taskno;
     // 浠诲姟鍚嶇О锛寃cs_task_header琛ㄤ腑鐨則ask_name
     private String taskname;
-    // AGV缂栫爜
+    // 涓嬪彂鐢宠鏄細1.婊戝潡搴� 2.杩炴帴鍣ㄥ簱
     @JsonProperty("AgvCode")
     @JSONField(name = "AgvCode")
     private String AgvCode;
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index ecce007..3822da9 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -26,7 +26,7 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value= "")
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index 1d37309..a58bb64 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -29,6 +29,9 @@
     @ApiModelProperty(value= "缂栧彿")
     private Long id;
 
+    @ApiModelProperty("鏃ュ織ID")
+    private Long logId;
+    
     /**
      * 宸ヤ綔鍙�
      */
diff --git a/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
index 6a0784a..cdeb12f 100644
--- a/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
+++ b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
@@ -6,7 +6,9 @@
     TASK_OUT_BIN("outbin", "璧板嚭鍌ㄤ綅"),
 
     APPLY_IN_STATION("applyInStation", "鍏ョ珯璇锋眰"),
-    APPLY_OFF_STATION("applyOutStation", "绂荤珯璇锋眰"),
+//    APPLY_OFF_STATION("applyOutStation", "绂荤珯璇锋眰"),
+    APPLY_IN_OFF_STATION("applyInOffStation", "鍙栬揣绂荤珯璇锋眰"),
+    APPLY_OFF_STATION("applyOutOffStation", "鏀捐揣绂荤珯璇锋眰"),
     ARRIVE_ON_STATION("arriveOnStation", "鍒扮珯瀹屾垚"),
     ARRIVE_OFF_STATION("arriveOffStation", "绂荤珯瀹屾垚"),
 
diff --git a/src/main/java/com/zy/asrs/service/TaskService.java b/src/main/java/com/zy/asrs/service/AgvTaskService.java
similarity index 74%
rename from src/main/java/com/zy/asrs/service/TaskService.java
rename to src/main/java/com/zy/asrs/service/AgvTaskService.java
index eaad23f..3ba2b1b 100644
--- a/src/main/java/com/zy/asrs/service/TaskService.java
+++ b/src/main/java/com/zy/asrs/service/AgvTaskService.java
@@ -5,5 +5,5 @@
 import org.springframework.stereotype.Service;
 
 @Service
-public interface TaskService extends IService<AgvTask> {
+public interface AgvTaskService extends IService<AgvTask> {
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvTaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvTaskServiceImpl.java
new file mode 100644
index 0000000..442ad12
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AgvTaskServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.AgvTask;
+import com.zy.asrs.mapper.TaskMapper;
+import com.zy.asrs.service.AgvTaskService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AgvTaskServiceImpl extends ServiceImpl<TaskMapper, AgvTask> implements AgvTaskService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 986bd05..473fa61 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -101,6 +101,8 @@
 
     @Autowired
     private HikUtils hikUtils;
+    @Autowired
+    private AgvTaskServiceImpl agvTaskService;
 
     /**
      * 缁勬墭
@@ -129,6 +131,38 @@
                 //LED
                 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
 
+                // 灏哄妫�娴嬪紓甯�
+                boolean back = false;
+                String errMsg = "";
+                if (staProtocol.isFrontError()) {
+                    errMsg = "鍓嶈秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isBackError()) {
+                    errMsg = "鍚庤秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isHighError()) {
+                    errMsg = "楂樿秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isLeftError()) {
+                    errMsg = "宸﹁秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isRightError()) {
+                    errMsg = "鍙宠秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isWeightError()) {
+                    errMsg = "瓒呴噸";
+                    back = true;
+                }
+                if (!back && staProtocol.isBarcodeError()) {
+                    errMsg = "鎵爜澶辫触";
+                    back = true;
+                }
+
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (!staProtocol.isLoading()) {
                     continue;
@@ -137,14 +171,39 @@
                 if (staProtocol.isAutoing()
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk()
-                        && staProtocol.getWorkNo() == 9999
+                        && staProtocol.getWorkNo() >9990
+                        && staProtocol.isEmptyOutType()
                         && staProtocol.isPakMk()) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+                    Short wrkNo = 9981;
+                    Short bark = 303;
+                    if(staProtocol.getSiteId()==304){
+                        wrkNo = 9982;
+                        bark = 306;
+                    }else if(staProtocol.getSiteId()==307){
+                        wrkNo = 9983;
+                        bark = 307;
+                    }
+
+                    if (back) {
+                        // led 寮傚父鏄剧ず
+                        if (ledThread != null) {
+                            String errorMsg = errMsg;
+                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+                        }
+                        log.error("杈撻�佺嚎寮傚父缁勬墭閫�鍥�={}",errMsg);
+                        staProtocol.setWorkNo( wrkNo);
+
+                        staProtocol.setStaNo(bark);
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        continue;
+                    }
 
                     String barcode = barcodeThread.getBarcode();
                     if (!Cools.isEmpty(barcode)) {
                         News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)|| "00000000".equals(barcode)) {
 //                            staProtocol.setWorkNo((short) 9992);
 //                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
 //                            devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -155,6 +214,12 @@
                                 String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                             }
+                            log.error("杈撻�佺嚎寮傚父缁勬墭閫�鍥�={}",errMsg);
+                            staProtocol.setWorkNo( wrkNo);
+
+                            staProtocol.setStaNo(bark);
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             continue;
                         }
                     } else {
@@ -169,6 +234,12 @@
                             String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
                             MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                         }
+                        log.error("杈撻�佺嚎寮傚父缁勬墭閫�鍥�={}",errMsg);
+                        staProtocol.setWorkNo( wrkNo);
+
+                        staProtocol.setStaNo(bark);
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         continue;
                     }
 
@@ -283,6 +354,12 @@
                                 String errorMsg = jsonObject.getString("msg");
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                             }
+                            log.error("杈撻�佺嚎寮傚父缁勬墭閫�鍥�={}",errMsg);
+                            staProtocol.setWorkNo( wrkNo);
+
+                            staProtocol.setStaNo(bark);
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         }
 
                     } catch (Exception e) {
@@ -540,7 +617,7 @@
                     if (staProtocol.isAutoing()
                             && staProtocol.isLoading()
                             && staProtocol.isInEnable()
-                            && staProtocol.getWorkNo() > 0
+                            && staProtocol.getWorkNo() == 9991
                             && staProtocol.isPakMk()) {
                         News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
 
@@ -549,7 +626,21 @@
                         if (barcodeThread == null) {
                             continue;
                         }
+
+                        String name="401";
+                        if (staProtocol.getSiteId()==402){
+                            name = "402";
+                        }
+                        String bar = "";
+                        Config name1 = configService.selectOne(new EntityWrapper<Config>().eq("name", name));
+                        if (!Cools.isEmpty(name1)) {
+                            bar = name1.getValue();
+                        }
+
                         String barcode = barcodeThread.getBarcode();
+                        if (barcode.equals("00000000")){
+                            barcode = bar;
+                        }
                         if (!Cools.isEmpty(barcode)) {
                             News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
                             if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -606,7 +697,8 @@
                                 throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
                             }
                             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-                            if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+
+                            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                                 throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
                             }
 
@@ -704,7 +796,7 @@
                 staProtocol = staProtocol.clone();
             }
 
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+            if (staProtocol.isAutoing() && staProtocol.isLoading()) {
                 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
                 CrnProtocol crnProtocol = crnThread.getCrnProtocol();
 
@@ -718,9 +810,6 @@
                             .eq("loc_no", wrkMast.getSourceLocNo()));
 
                     short staNo = wrkMast.getStaNo().shortValue();
-                    if (wrkMast.getStaNo() == 1004) {
-                        staNo = 2003;
-                    }
 
                     // 涓嬪彂绔欑偣淇℃伅
                     staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
@@ -1168,14 +1257,14 @@
                 }
                 //鏌ヨ鍦ㄥ簱淇℃伅
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                        .eq("loc_sts", "R")
+                        .in("loc_sts", "R","P")
                         .eq("loc_no", wrkMast.getSourceLocNo()));
                 if (Cools.isEmpty(locMast)) {
                     News.error("鍑哄簱 ===>> 搴撲綅涓病鏈夎繖绗旇祫鏂�", wrkMast.getSourceLocNo());
                     continue;
                 }
                 //鍫嗗灈鏈烘帴椹崇珯鐐规病鏈夌┖鏂欐灦
-                if(staProtocol.getSiteId()==307&&!staProtocol.isEmptyOutType()&&(Cools.isEmpty(wrkMast.getCtnType())||wrkMast.getCtnType()==0)){
+                if(!staProtocol.isEmptyOutType()&&(Cools.isEmpty(wrkMast.getCtnType())||wrkMast.getCtnType()==0)){
                     //璇锋眰wms涓嬪彂agv鎼繍绌烘枡鏋跺埌鍫嗗灈鏈烘帴椹崇珯鐐逛换鍔�
                     try {
                         HashMap<String,Object> hashMap=new HashMap<>();
@@ -1198,17 +1287,17 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     }
                 }
-                Boolean config = true;
 
-                if (staProtocol.getSiteId()==307 && !staProtocol.isEmptyOutType()){
-                    config = false;
-                }
-
-                // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+                // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��&& staProtocol.isOutEnable()
                 if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable() && config) {
+                        && staProtocol.isEmptyOutType()) {
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
+                    //鍒ゆ柇鏄惁鏈夋鍦ㄦ墽琛屼腑鐨凙GV浠诲姟
+                    List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", staProtocol.getSiteId()));
+                    if (agvTasks != null && agvTasks.size() > 0) {
+                        continue;
+                    }
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
@@ -1288,16 +1377,6 @@
                         }
                         break;
                     }
-                }else if ((staProtocol.getSiteId()==304 || staProtocol.getSiteId()==301) && staProtocol.isAutoing()
-                        && (staProtocol.isLoading() || staProtocol.getWorkNo() != 0)) {
-                    if (staProtocol.getSiteId() == 304){
-                        wrkMast.setSourceStaNo(301);
-
-                    }else {
-                        wrkMast.setSourceStaNo(304);
-                    }
-                    wrkMast.setModiTime(new  Date());
-                    wrkMastMapper.updateById(wrkMast);
                 }
 
             }
@@ -1805,10 +1884,7 @@
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing()
                         && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk()
-                        && (staProtocol.getWorkNo() ==0)
                         && staProtocol.isPakMk()
-//                        && staProtocol.getEmptyInType() == 1
                 ) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
 
@@ -1841,7 +1917,6 @@
 
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
                         SearchLocParam param = new SearchLocParam();
                         param.setIoType(10);
                         param.setSourceStaNo(emptyInSta.getStaNo());
@@ -2021,9 +2096,8 @@
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
             // 鍛戒护闆嗗悎
             List<LedCommand> commands = new ArrayList<>();
-//            // 宸ヤ綔妗i泦鍚�
-//            List<WrkMast> wrkMasts = new ArrayList<>();
-            List<Integer> workNoList = new ArrayList<>();
+            // 宸ヤ綔妗i泦鍚�
+            List<WrkMast> wrkMasts = new ArrayList<>();
             for (Integer staNo : led.getStaArr()) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2032,48 +2106,20 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
-                Integer wrkNo = null;
-                Integer ioType = null;
-                Integer targetStaNo = null;
-                String sourceLocNo = null;
-                String locNo = null;
-                String barcode = null;
-
                 // 鑾峰彇宸ヤ綔妗f暟鎹�
                 WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
 //                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
                 if (null == wrkMast) {
-                    List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>()
-                            .eq("wrk_no", staProtocol.getWorkNo())
-                            .orderBy("modi_time", false)
-                    );
-                    if (wrkMastLogs.isEmpty()) {
-                        continue;
-                    }
-
-                    WrkMastLog wrkMastLog = wrkMastLogs.get(0);
-                    wrkNo = wrkMastLog.getWrkNo();
-                    ioType = wrkMastLog.getIoType();
-                    sourceLocNo = wrkMastLog.getSourceLocNo();
-                    locNo = wrkMastLog.getLocNo();
-                    targetStaNo = wrkMastLog.getStaNo();
-                    barcode = wrkMastLog.getBarcode();
-                }else {
-                    wrkNo = wrkMast.getWrkNo();
-                    ioType = wrkMast.getIoType();
-                    sourceLocNo = wrkMast.getSourceLocNo();
-                    locNo = wrkMast.getLocNo();
-                    targetStaNo = wrkMast.getStaNo();
-                    barcode = wrkMast.getBarcode();
+                    continue;
                 }
-                News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
-                workNoList.add(wrkNo);
+                News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
+                wrkMasts.add(wrkMast);
                 // 缁勮鍛戒护
                 LedCommand ledCommand = new LedCommand();
-                ledCommand.setWorkNo(wrkNo);
-                ledCommand.setIoType(ioType);
+                ledCommand.setWorkNo(wrkMast.getWrkNo());
+                ledCommand.setIoType(wrkMast.getIoType());
                 // 鍑哄簱妯″紡
-                switch (ioType) {
+                switch (wrkMast.getIoType()) {
                     case 1:
                         ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
                         break;
@@ -2106,104 +2152,34 @@
                         ledCommand.setTitle("骞舵澘鍏ュ簱");
                         break;
                     default:
-                        News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
+                        News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                         break;
                 }
-                ledCommand.setSourceLocNo(sourceLocNo);
-                ledCommand.setLocNo(locNo);
-                ledCommand.setStaNo(targetStaNo);
-                ledCommand.setBarcode(barcode);
+                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+                ledCommand.setLocNo(wrkMast.getLocNo());
+                ledCommand.setStaNo(wrkMast.getStaNo());
 //                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
-                if (ioType != 110 && ioType != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
-
-                    if (!wrkDetls.isEmpty()) {
-                        WrkDetl wrkDetl = wrkDetls.get(0);
-                        double anfme = 0D;
-                        double weight = 0D;
-                        for (WrkDetl detl : wrkDetls) {
-                            anfme += detl.getAnfme();
-                            weight += detl.getWeight();
-                            wrkDetl.setAnfme(anfme);
-                            wrkDetl.setWeight(weight);
-                        }
-
-                        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-                                .eq("loc_no", wrkMast.getSourceLocNo()));
-                        double totalAnfme = 0D;
-                        double totalWeight = 0D;
-                        for (LocDetl locDetl : locDetls) {
-                            totalAnfme += locDetl.getAnfme();
-                            totalWeight += locDetl.getWeight();
-                        }
-                        wrkDetl.setStockNum(totalAnfme);
-                        wrkDetl.setStockNum2(totalWeight);
-
-                        ledCommand.getMatDtos().add(new MatDto(
-                                wrkDetl.getMatnr()
-                                , wrkDetl.getMaktx()
-                                , wrkDetl.getAnfme()
-                                , wrkDetl.getWeight()
-                                , wrkDetl.getStockNum()
-                                , wrkDetl.getStockNum2()
-                                , wrkDetl.getSpecs()
-                                , wrkDetl.getSku()
-                                , wrkDetl.getZpallet()
-                                , wrkDetl.getModel()
-                                , wrkDetl.getSupp()
-                                , wrkDetl.getKpCstmrName()
-                                , wrkDetl.getOrderNo()
-                                , wrkDetl.getCstateid$()
-                        ));
-
-                    }else {
-                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkNo);
-                        if(!wrkDetlLogs.isEmpty()) {
-                            WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
-
-                            double anfme = 0D;
-                            double weight = 0D;
-                            for (WrkDetlLog detl : wrkDetlLogs) {
-                                anfme += detl.getAnfme();
-                                weight += detl.getWeight();
-                                wrkDetlLog.setAnfme(anfme);
-                                wrkDetlLog.setWeight(weight);
+                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+                    try{
+                        if (wrkMast.getIoType()>100){
+                            for (WrkDetl wrkDetl : wrkDetls){
+                                LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
+                                wrkDetl.setWeight(locDetl.getAnfme());
                             }
-
-                            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-                                    .eq("loc_no", sourceLocNo));
-                            double totalAnfme = 0D;
-                            double totalWeight = 0D;
-                            for (LocDetl locDetl : locDetls) {
-                                totalAnfme += locDetl.getAnfme();
-                                totalWeight += locDetl.getWeight();
+                        }else {
+                            for (WrkDetl wrkDetl : wrkDetls){
+                                wrkDetl.setWeight(wrkDetl.getAnfme());
                             }
-                            wrkDetlLog.setStockNum(totalAnfme);
-                            wrkDetlLog.setStockNum2(totalWeight);
-
-                            ledCommand.getMatDtos().add(new MatDto(
-                                    wrkDetlLog.getMatnr()
-                                    , wrkDetlLog.getMaktx()
-                                    , wrkDetlLog.getAnfme()
-                                    , wrkDetlLog.getWeight()
-                                    , wrkDetlLog.getStockNum()
-                                    , wrkDetlLog.getStockNum2()
-                                    , wrkDetlLog.getSpecs()
-                                    , wrkDetlLog.getSku()
-                                    , wrkDetlLog.getZpallet()
-                                    , wrkDetlLog.getModel()
-                                    , wrkDetlLog.getSupp()
-                                    , wrkDetlLog.getKpCstmrName()
-                                    , wrkDetlLog.getOrderNo()
-                                    , wrkDetlLog.getCstateid$()
-                            ));
                         }
+                    }catch (Exception e){
+                        log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
                     }
-
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
                 }
                 commands.add(ledCommand);
             }
-            Set<Integer> workNos = new HashSet<>(workNoList);
+            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
             // 鑾峰彇LED绾跨▼
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
             // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2234,22 +2210,19 @@
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
                     News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                     continue;
-                } else {
+                }else {
                     ledThread.setLedMk(false);
                 }
             }
 
             try {
                 // 淇敼涓绘。led鏍囪
-                for (Integer wrkNo : workNoList) {
-                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
-                    if (wrkMast != null) {
-                        wrkMast.setOveMk("Y");
-                        wrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
-                            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
-                        }
+                for (WrkMast wrkMast : wrkMasts) {
+                    wrkMast.setOveMk("Y");
+                    wrkMast.setModiTime(new Date());
+                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+                        News.errorNoLog(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�");
+                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
                     }
                 }
 
@@ -2262,7 +2235,7 @@
             }
 
         }
-        News.infoNoLog("" + mark + " - 0" + " - 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
+        News.infoNoLog(""+mark+" - 0"+" - 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
     }
 
     /**
@@ -2270,7 +2243,7 @@
      */
     public synchronized void ledReset(Integer mark) {
 
-        News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+        News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
         for (LedSlave led : slaveProperties.getLed()) {
 
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
@@ -2294,13 +2267,13 @@
             if (reset && !ledThread.isLedMk()) {
                 ledThread.setLedMk(true);
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
-                    News.error("" + mark + " - 1" + " - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    News.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 } else {
 
                 }
             }
         }
-        News.infoNoLog("" + mark + " - 0" + " - 鎵ц瀹屾垚锛氬叾浠�  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+        News.infoNoLog(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠�  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
     }
 
     /**
@@ -2436,7 +2409,6 @@
             int workNo = commonService.getWorkNo(0);
             // 淇濆瓨宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
-            wrkMast.setId();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(new Date());
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
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 2347bfc..83f63c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,15 +4,13 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.R;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.service.AgvTaskService;
 import com.zy.asrs.service.RcsService;
-import com.zy.asrs.service.TaskService;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.Task;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.thread.SiemensDevpThread;
 import lombok.extern.slf4j.Slf4j;
@@ -29,12 +27,8 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 @Slf4j
 @Service
@@ -43,8 +37,11 @@
     @Value("${hik.url}")
     private String HIK_URL;
 
+    @Value("${mes.url}")
+    public String MES_URL;
+
     @Autowired
-    private TaskService taskService;
+    private AgvTaskService agvTaskService;
 
 
     /**
@@ -56,6 +53,7 @@
      */
     @Override
     public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) {
+        log.info("娴峰悍AGV绔欑偣浠诲姟璇锋眰={}", JSONObject.toJSONString(rcsReporterTask));
 
         RcsReturn rcsReturn = new RcsReturn();
 
@@ -71,70 +69,29 @@
         String slotCode = values.getString("slotCode");
         EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
         wrapper.eq("task_no", robotTaskCode);
-        AgvTask task = taskService.selectOne(wrapper);
-        if(!Cools.isEmpty(task)){
+        AgvTask task = agvTaskService.selectOne(wrapper);
+        if (!Cools.isEmpty(task)) {
             try {
-                // q3,q8=1
-                if ("1".equals(carrierType)) {    //AGV
-
-                    switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
-                        //鏀捐揣鐢宠
-                        case APPLY_PUT: {
+                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+                    //鏀捐揣鐢宠
+                    case APPLY_PUT: {
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
                             Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                             SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                             StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                             //wcs鍙嶉rcs缁х画鎵ц
                             if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
-                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
-                                rcsTaskContinue.setTriggerType("TASK");
-                                rcsTaskContinue.setTriggerCode(task.getTaskNo());
+                                if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+                                    RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                    rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                                    rcsTaskContinue.setTriggerType("TASK");
+                                    rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
 
-                                String url =HIK_URL + "api/robot/controller/task/extend/continue";
-                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
-                                if (!StringUtils.isEmpty(response) && response.contains("code")){
-                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
-                                    if("200".equals(rcsReturn1.getCode())) {
-                                        //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
-                                        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
-                                        log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                        if (result) {
-                                            // 杩斿洖RCS
-                                            rcsReturn.setCode("SUCCESS");
-                                            rcsReturn.setMessage("");
-                                            JSONObject data = new JSONObject();
-                                            data.put("robotTaskCode", robotTaskCode);
-                                            rcsReturn.setData(data);
-                                        }else {
-                                            // 杩斿洖RCS
-                                            rcsReturn.setCode("Err_Internal");
-                                            rcsReturn.setMessage("");
-                                            JSONObject data = new JSONObject();
-                                            data.put("robotTaskCode", robotTaskCode);
-                                            rcsReturn.setData(data);
-                                        }
+                                    String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                    String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                    if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                        log.info("鍏佽AGV鏀捐揣鎴愬姛");
                                     }
-                                }
-                            }
-                        }
-                        break;
-
-                        //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
-                        case TASK_END: {
-                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
-                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
-                            //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
-                            if (staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() ==0) {
-                                staProtocol.setWorkNo((short) 9991);
-                                staProtocol.setStaNo(Short.valueOf(task.getStaNo()));
-                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
-                                log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                if(result){
-                                    // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                                    task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-                                    task.setModiTime(new Date());
-                                    taskService.updateById(task);
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("SUCCESS");
                                     rcsReturn.setMessage("");
@@ -142,42 +99,27 @@
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
                                 }else {
-                                    // 杩斿洖RCS
-                                    rcsReturn.setCode("Err_Internal");
-                                    rcsReturn.setMessage("");
-                                    JSONObject data = new JSONObject();
-                                    data.put("robotTaskCode", robotTaskCode);
-                                    rcsReturn.setData(data);
-                                }
-                            }
-                        }
-                        break;
-                        //rcs璇锋眰wms鍙栬揣鐢宠
-                        case APPLY_PICK: {
-                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
-                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
-                            //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
-                            if (staProtocol != null && staProtocol.isLoading()
-                                    && staProtocol.isEmptyOutType()
-                                    && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
-                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
-                                rcsTaskContinue.setTriggerType("TASK");
-                                rcsTaskContinue.setTriggerCode(task.getTaskNo());
-
-                                String url =HIK_URL + "api/robot/controller/task/extend/continue";
-                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
-                                if (!StringUtils.isEmpty(response) && response.contains("code")){
-                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
-                                    if("200".equals(rcsReturn1.getCode())) {
+                                    //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
+                                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
+                                    if (result) {
+                                        log.info("鍏ュ簱绔欑偣={}瑙﹀彂鎵爜鎴愬姛", staProtocol.getSiteId());
                                         // 杩斿洖RCS
                                         rcsReturn.setCode("SUCCESS");
                                         rcsReturn.setMessage("");
                                         JSONObject data = new JSONObject();
                                         data.put("robotTaskCode", robotTaskCode);
                                         rcsReturn.setData(data);
-                                    }else {
+                                        RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                        rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                                        rcsTaskContinue.setTriggerType("TASK");
+                                        rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+
+                                        String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                        String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                        if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                            log.info("鍏佽AGV鏀捐揣鎴愬姛");
+                                        }
+                                    } else {
                                         // 杩斿洖RCS
                                         rcsReturn.setCode("Err_Internal");
                                         rcsReturn.setMessage("");
@@ -187,27 +129,65 @@
                                     }
                                 }
                             }
+                        }else {
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyInStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
                         }
-                        break;
-                        //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
-                        case PICK_COMPLETE: {
-                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+
+                    }
+                    break;
+
+                    //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
+                    case TASK_END: {
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                             SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                             StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                            Boolean boo = false;
+                            Short wrkNo = 9991;
                             //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
-                            if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType() && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
-                                staProtocol.setWorkNo((short) 0);
-                                staProtocol.setStaNo((short) 0);
+                            //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
+                            if (task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+                                boo = true;
+                                wrkNo = 9995;
+                            } else if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+                                boo = true;
+                            }
+                            if (boo) {
+                                staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
+                                staProtocol.setStaNo(Short.valueOf("0"));
                                 boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
-                                log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                if(result){
+                                log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+                                if (result) {
+                                    // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+                                    task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                                    task.setModiTime(new Date());
+                                    agvTaskService.updateById(task);
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("SUCCESS");
                                     rcsReturn.setMessage("");
                                     JSONObject data = new JSONObject();
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
-                                }else {
+                                } else {
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("Err_Internal");
                                     rcsReturn.setMessage("");
@@ -215,16 +195,232 @@
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
                                 }
+                            } else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }else {
+                            // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+                            task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                            task.setModiTime(new Date());
+                            agvTaskService.updateById(task);
+                            // 杩斿洖RCS
+                            rcsReturn.setCode("SUCCESS");
+                            rcsReturn.setMessage("");
+                            JSONObject data = new JSONObject();
+                            data.put("robotTaskCode", robotTaskCode);
+                            rcsReturn.setData(data);
+                        }
+                    }
+                    break;
+                    //rcs璇锋眰wms鍙栬揣鐢宠
+                    case APPLY_PICK: {
+                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                            //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
+                            if (staProtocol != null && (staProtocol.isLoading() || task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
+                                    && staProtocol.isEmptyOutType()) {
+                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                                rcsTaskContinue.setTriggerType("TASK");
+                                rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
 
+                                String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                    if ("200".equals(rcsReturn1.getCode())) {
+                                        // 杩斿洖RCS
+                                        rcsReturn.setCode("SUCCESS");
+                                        rcsReturn.setMessage("");
+                                        JSONObject data = new JSONObject();
+                                        data.put("robotTaskCode", robotTaskCode);
+                                        rcsReturn.setData(data);
+                                    } else {
+                                        // 杩斿洖RCS
+                                        rcsReturn.setCode("Err_Internal");
+                                        rcsReturn.setMessage("");
+                                        JSONObject data = new JSONObject();
+                                        data.put("robotTaskCode", robotTaskCode);
+                                        rcsReturn.setData(data);
+                                    }
+                                }
+                            }
+                        }else {
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyInStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
                             }
                         }
-                        break;
+                    }
+                    break;
+                    //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
+                    case PICK_COMPLETE: {
+                        Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+                        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                        //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+                        if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+                            staProtocol.setWorkNo((short) 0);
+                            staProtocol.setStaNo((short) 0);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+                            log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+                            if (result) {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            } else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
 
-                        default: {
                         }
+                    }
+                    break;
+                    //AGV鍙栬揣绂荤珯璇锋眰
+                    case APPLY_IN_OFF_STATION:{
+                        //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+                            String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                if ("200".equals(rcsReturn1.getCode())) {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("SUCCESS");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                } else {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("Err_Internal");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                }
+                            }
+                        }else{
+                            //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyOutStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }
+                            break;
+                    }
+                    //AGV鏀捐揣绂荤珯璇锋眰
+                    case APPLY_OFF_STATION:{
+                        //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+                            String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                if ("200".equals(rcsReturn1.getCode())) {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("SUCCESS");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                } else {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("Err_Internal");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                }
+                            }
+                        }else{
+                            //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyOutStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }
+
                         break;
                     }
+
+                    default: {
+                    }
+                    break;
                 }
+
 
             } catch (Exception e) {
                 log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
@@ -241,7 +437,7 @@
     /**
      * 鍚戞寚瀹� URL 鍙戦�丳OST鏂规硶鐨勮姹�
      *
-     * @param url 鍙戦�佽姹傜殑 URL
+     * @param url   鍙戦�佽姹傜殑 URL
      * @param param 璇锋眰鍙傛暟锛岃姹傚弬鏁板簲璇ユ槸 name1=value1&name2=value2 鐨勫舰寮忋��
      * @return 鎵�浠h〃杩滅▼璧勬簮鐨勫搷搴旂粨鏋�
      */
@@ -249,8 +445,7 @@
         PrintWriter out = null;
         BufferedReader in = null;
         StringBuilder result = new StringBuilder();
-        try
-        {
+        try {
             log.info("sendPost - {} - {}", url, param);
             URL realUrl = new URL(url);
             URLConnection conn = realUrl.openConnection();
@@ -273,46 +468,70 @@
             out.flush();
             in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
             String line;
-            while ((line = in.readLine()) != null)
-            {
+            while ((line = in.readLine()) != null) {
                 result.append(line);
             }
             log.info("recv - {}", result);
-        }
-        catch (ConnectException e)
-        {
+        } catch (ConnectException e) {
             log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
-        }
-        catch (SocketTimeoutException e)
-        {
+        } catch (SocketTimeoutException e) {
             log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
-        }
-        finally
-        {
-            try
-            {
-                if (out != null)
-                {
+        } finally {
+            try {
+                if (out != null) {
                     out.close();
                 }
-                if (in != null)
-                {
+                if (in != null) {
                     in.close();
                 }
-            }
-            catch (IOException ex)
-            {
+            } catch (IOException ex) {
                 log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
             }
         }
         return result.toString();
     }
+
+    /**
+     * 鍏ョ珯璇锋眰锛氳浆鍙慉GV->鍏ョ珯璇锋眰->缁橫ES
+     *
+     * @param apply
+     * @return
+     */
+    public int applyInStation(TransParent apply) {
+        String path = "AGVTransportPalletNotice";
+        String url = MES_URL + path;
+        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+            if ("1".equals(mesReturn.getSuccess())) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
+
+    /**
+     * 绂荤珯璇锋眰锛氳浆鍙慉GV->绂荤珯璇锋眰->缁橫ES
+     *
+     * @param apply
+     * @return
+     */
+    public int applyOutStation(TransParent apply) {
+
+        String url = MES_URL + "AGVDepartureRequest";
+        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+            if ("1".equals(mesReturn.getSuccess())) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
deleted file mode 100644
index 1191a64..0000000
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zy.asrs.service.impl;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.AgvTask;
-import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.mapper.TaskMapper;
-import com.zy.asrs.service.TaskService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-@Service
-public class TaskServiceImpl extends ServiceImpl<TaskMapper, AgvTask> implements TaskService {
-
-}
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
index 5d9b9c3..c45c107 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -1,17 +1,40 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.WrkMastLogMapper;
 import com.zy.asrs.entity.WrkMastLog;
 import com.zy.asrs.service.WrkMastLogService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.service.WrkMastService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.Objects;
 
 @Service("wrkMastLogService")
 public class WrkMastLogServiceImpl extends ServiceImpl<WrkMastLogMapper, WrkMastLog> implements WrkMastLogService {
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
 
     @Override
     public boolean save(Integer workNo) {
-        return this.baseMapper.save(workNo) > 0;
+        WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
+        if (Objects.isNull(mast)) {
+            throw new CoolException("鏁版嵁閿欒锛氫换鍔′笉瀛樺湪锛侊紒");
+        }
+        WrkMastLog mastLog = new WrkMastLog();
+        BeanUtils.copyProperties(mast, mastLog);
+        mastLog.setLogId(mast.getId());
+
+        if (!wrkMastLogService.insert(mastLog)) {
+            throw new CoolException("浠诲姟鏃ュ織淇濆瓨澶辫触锛侊紒");
+        }
+        return true;
     }
 
 }
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index 02eb13c..b35f62a 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -71,4 +71,14 @@
         this.orderNo = orderNo;
         this.cstateid = cstateid;
     }
+
+    public MatDto(String matNo, String maktx, Double count,Double total,String specs,String sku) {
+        this.specs = specs;
+        this.matnr = matNo;
+        this.maktx = maktx;
+        this.maknx = maktx;
+        this.count = count;
+        this.total = total;
+        this.sku = sku;
+    }
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 94e7286..65307b6 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -42,12 +42,12 @@
                     }
 
                     // 婕旂ず
-                    mainService.crnDemoOfLocMove1();
+//                    mainService.crnDemoOfLocMove1();
                     // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
 //                    mainService.ioConvert();
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile(1); // 缁勬墭
-                    mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
+//                    mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
                     Thread.sleep(500);
                     // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
                     mainService.stnToCrnStnPick(3);
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 7dcfcd4..cc31d77 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -181,10 +181,10 @@
                 crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
                 crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
                 crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
-                crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
-                crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
-                crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
-                crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+                crnProtocol.setxDistance((short) siemensNet.getByteTransform().TransSingle(result.Content, 40));
+                crnProtocol.setyDistance((short) siemensNet.getByteTransform().TransSingle(result.Content, 44));
+                crnProtocol.setxDuration((short) siemensNet.getByteTransform().TransSingle(result.Content, 48));
+                crnProtocol.setyDuration((short) siemensNet.getByteTransform().TransSingle(result.Content, 52));
 
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 917f1c4..7e9fa0b 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -36,6 +36,13 @@
 wms:
   url: 127.0.0.1:8083/ljqwms
 
+#mes瀵规帴
+mes:
+
+  url: http://192.9.100.173:8088/prod-api/basicmodel/WmsFit/Api/
+  #榛樿鎺ュ彛鎿嶄綔浜哄憳id
+  defaultUserId: 30
+
 #娴峰悍瀵规帴
 hik:
   switch: false
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 6cb9a59..2744ade 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -4,7 +4,8 @@
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMast">
-        <id column="wrk_no" property="wrkNo" />
+        <id column="id" property="id" />
+        <result column="wrk_no" property="wrkNo" />
         <result column="inv_wh" property="invWh" />
         <result column="ymd" property="ymd" />
         <result column="mk" property="mk" />
@@ -104,7 +105,7 @@
     </select>
 
     <select id="selectPickStep" resultMap="BaseResultMap">
-        select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)
+        select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=20 and (io_type=103 or io_type=107 or io_type=104)
     </select>
 
     <select id="selectPakOutStep1" resultMap="BaseResultMap">

--
Gitblit v1.9.1