From bfc2fee36897a0e6ca4d77701cf4d8f6a7281aec Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期三, 04 九月 2024 08:07:30 +0800
Subject: [PATCH] 对程序进行优化

---
 src/main/java/com/zy/asrs/task/TaskLogScheduler.java               |   37 
 src/main/webapp/static/wcs/js/common.js                            |    2 
 src/main/java/com/zy/asrs/entity/TaskWrk.java                      |    4 
 src/main/webapp/views/commandManage/commandManage.html             |    5 
 src/main/webapp/views/realtimeWatch/console.html                   |    2 
 src/main/webapp/views/taskWrkLog/taskWrkLog.html                   |    9 
 src/main/resources/application-prod.yml                            |  652 +++--------
 pom.xml                                                            |    4 
 src/main/java/com/zy/asrs/service/OpenService.java                 |    3 
 src/main/java/com/zy/asrs/entity/param/CarryParam.java             |   31 
 src/main/webapp/static/wms/js/common.js                            |    2 
 src/main/java/com/zy/asrs/entity/GetWmsDto.java                    |    8 
 src/main/java/com/zy/core/model/protocol/StaProtocol.java          |    4 
 src/main/java/com/zy/asrs/utils/Utils.java                         |   16 
 src/main/java/com/zy/asrs/entity/param/CarrysParam.java            |   10 
 src/main/webapp/static/wcs/js/console.map.js                       |  453 +++++---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java        |  310 +++--
 src/main/java/com/zy/asrs/entity/param/CrnStatusParam.java         |   11 
 src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java        |    8 
 src/main/java/com/zy/asrs/entity/ToWmsDTO.java                     |    4 
 src/main/java/com/zy/core/MainProcess.java                         |    4 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java            |  154 +-
 src/main/webapp/views/locMast/locMast.html                         |    5 
 src/main/java/com/zy/asrs/controller/OpenController.java           |  156 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java        |  819 +++++++++-----
 src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java |   13 
 src/main/resources/mapper/TaskWrkMapper.xml                        |    3 
 src/main/java/com/zy/core/thread/SiemensCrnThread.java             |  226 +--
 src/main/java/com/zy/asrs/entity/param/Result.java                 |   16 
 src/main/java/com/zy/asrs/controller/TaskWrkController.java        |   24 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java        |  181 +-
 src/main/resources/license.lic                                     |    0 
 src/main/resources/application.yml                                 |   16 
 33 files changed, 1,687 insertions(+), 1,505 deletions(-)

diff --git a/pom.xml b/pom.xml
index 5b3e5d3..7a47d8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
         <relativePath/> <!-- lookup parent from repository -->
     </parent>
     <groupId>com.zy</groupId>
-    <artifactId>wxwcs</artifactId>
+    <artifactId>jdzwcs</artifactId>
     <version>1.0.0</version>
     <packaging>war</packaging>
 
@@ -200,7 +200,7 @@
     </dependencies>
 
     <build>
-        <finalName>wxwcs</finalName>
+        <finalName>jdzwcs</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 0e360c4..9a16f6c 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,17 +1,16 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.AppAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.CarryParam;
-import com.zy.asrs.entity.param.TaskOverParam;
-import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
-import com.zy.asrs.entity.param.TaskCreateParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.web.BaseController;
@@ -23,7 +22,10 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.util.*;
+
+import static org.apache.ibatis.ognl.OgnlRuntime.setFieldValue;
 
 @Slf4j
 @RestController
@@ -48,6 +50,8 @@
     private StaDescService staDescService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private BasCrnErrorService basCrnErrorService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -315,69 +319,72 @@
     //浠诲姟涓嬪彂鎺ュ彛
     @PostMapping("/outboundTaskSend")
     @Transactional
-    public R outboundTaskSend(@RequestHeader String appkey,
-                              @RequestBody List<CarryParam> params,
-                              HttpServletRequest request) {
-        //auth(appkey, params, request);
+    public HashMap<String, Object> outboundTaskSend(@RequestBody HashMap<String,Object> hashMap) {
+        String jsonString = JSON.toJSONString(hashMap.get("TaskList"));
+        List<CarryParam> params= JSONObject.parseArray(jsonString,CarryParam.class);
+        HashMap<String, Object> map = new HashMap<>();
         List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>();
         for (CarryParam param:params){
-
             if (Cools.isEmpty(param)){
-                return R.error("鍙傛暟涓虹┖锛�");
+                map.put("Code","0");
+                map.put("Msg","鍙傛暟涓虹┖锛�");
+                return map;
             } else if (Cools.isEmpty(param.getTaskNo())){
-                return R.error("浠诲姟鍙蜂负绌猴紒");
-            } else if (Cools.isEmpty(param.getIoType())){
-                return R.error("浠诲姟绫诲瀷涓虹┖锛�");
+                map.put("Code","0");
+                map.put("Msg","浠诲姟鍙蜂负绌猴紒");
+                return map;
+            } else if (Cools.isEmpty(param.getStereoscopicTaskType())){
+                map.put("Code","0");
+                map.put("Msg","浠诲姟绫诲瀷涓虹┖锛�");
+                return map;
             }
-            if (Cools.isEmpty(param.getStartPoint()) || Cools.isEmpty(param.getTargetPoint())){
-                return R.error("鍒濆鐩爣鎴栬�呯洰鏍囦綅涓虹┖");
-            }
-//            if (Cools.isEmpty(param.getContainerCode())){
-//                return R.error("瀹瑰櫒缂栫爜(鎵樼洏鐮�)涓虹┖锛�");
-//            }
-//            if (Cools.isEmpty(param.getEmptyContainer())){
-//                return R.error("鏄惁绌烘墭鐩樹俊鍙蜂负绌猴紒");
-//            }
-//            if (!param.getTaskType().equals("YK")){
-//                if (Cools.isEmpty(param.getTargetWharf())){
-//                    return R.error("鐩爣鐮佸ご鍖哄煙涓虹┖锛�");//G寮�澶�=7杞﹂棿锛孒寮�澶�=8灞傦紝J寮�澶�=9杞﹂棿
-//                }
-//            }
-
+            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
+            param.setStartPoint(fusion);
             LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
             if(Cools.isEmpty(locMast)){
-                return R.error("鍒濆搴撲綅鏃犳硶鎵惧埌");
+                map.put("Code","0");
+                map.put("Msg","鍒濆搴撲綅鏃犳硶鎵惧埌锛�");
+                return map;
             }
 
-            R r = null;
+            HashMap<String,Object> r = new HashMap<>();
 
-            if(param.getIoType() == 2){
+            if(param.getStereoscopicTaskType() == 2){
                 //鍑哄簱浠诲姟鍒涘缓
                 StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                         .eq("type_no",2)
                         .eq("crn_no",locMast.getCrnNo())
-                        .eq("stn_no",param.getTargetPoint()));
+                        .eq("stn_no",param.getTerminalNo()));
                 if(Cools.isEmpty(staDesc)){
-                    return R.error("鍑哄簱璺姴涓嶅瓨鍦�");
+                    map.put("Code","0");
+                    map.put("Msg","鍑哄簱璺姴涓嶅瓨鍦紒");
+                    return map;
                 }
                 r = openService.taskCreate(new TaskCreateParam(param,staDesc.getCrnNo()));
-            }else if (param.getIoType() == 3){
+                if(r.get("Code").equals("0")){
+                    return r;
+                }
+            }else if (param.getStereoscopicTaskType() == 3){
+                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
+                param.setTerminalNo(fusion1);
                 //绉诲簱浠诲姟鍒涘缓
                 r = openService.taskCreate(new TaskCreateParam(param,locMast.getCrnNo()));
+                if(r.get("Code").equals("0")){
+                    return r;
+                }
             }
-
             apiLogService.save("Wms浠诲姟涓嬪彂鎺ュ彛"
                     ,request.getRemoteAddr()+request.getRequestURI()
-                    ,appkey
+                    ,""
                     ,request.getRemoteAddr()
                     ,JSON.toJSONString(param)
                     ,r.toString()
                     ,true
             );
-
         }
-
-        return R.ok();
+        map.put("Code","1");
+        map.put("Msg","ok");
+        return map;
     }
 
     //浠诲姟鍙栨秷鎺ュ彛
@@ -436,22 +443,71 @@
     }
 
     //璁惧鐘舵�佹煡璇㈡帴鍙�
-    @PostMapping("/deviceStatus")
+    @GetMapping("/deviceStatus")
     @Transactional
-    public R deviceStatus(@RequestHeader String appkey,
-                              HttpServletRequest request) {
-        auth(appkey, "璁惧鐘舵�佹煡璇㈡帴鍙�", request);
-        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
-        List<Object> list = new ArrayList<>();
-        for (BasDevp basDevp:basDevps){
-            list.add(basDevp);
-        }
+    public R deviceStatus() {
+        List<CrnStatusParam> crnStatusParams=new ArrayList<>();
         List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
         for (BasCrnp basCrnp:basCrnps){
-            list.add(basCrnp);
+            CrnStatusParam crnStatusParam=new CrnStatusParam();
+            crnStatusParam.setCrnNo(basCrnp.getCrnNo());
+            crnStatusParam.setCrnSts(basCrnp.getCrnSts());
+            crnStatusParam.setErrorCode(basCrnp.getCrnErr());
+            BasCrnError error=basCrnErrorService.selectOne(new EntityWrapper<BasCrnError>().eq("error_code",basCrnp.getCrnErr()));
+            if(Cools.isEmpty(error)){
+                crnStatusParam.setErrorMsg("");
+            }else {
+                crnStatusParam.setErrorMsg(error.getErrName());
+            }
+            crnStatusParams.add(crnStatusParam);
         }
-        return R.ok(list);
+        return R.ok(crnStatusParams);
     }
 
+    public static <T> List<T> convertListMapToListObject(List<HashMap<String, Object>> listMap, Class<T> clazz) throws Exception {
+        List<T> list = new ArrayList<>();
+
+        for (Map<String, Object> map : listMap) {
+            T obj = clazz.getDeclaredConstructor().newInstance();
+
+            for (Map.Entry<String, Object> entry : map.entrySet()) {
+                String key = entry.getKey();
+                Object value = entry.getValue();
+
+                try {
+                    Field field = clazz.getDeclaredField(key);
+                    field.setAccessible(true);
+                    setFieldValue(obj, field, value);
+                } catch (NoSuchFieldException e) {
+                    System.out.println("No such field: " + key + " in class " + clazz.getName());
+                }
+            }
+
+            list.add(obj);
+        }
+
+        return list;
+    }
+    private static void setFieldValue(Object obj, Field field, Object value) throws IllegalAccessException {
+        Class<?> fieldType = field.getType();
+
+        if (fieldType.isAssignableFrom(value.getClass())) {
+            field.set(obj, value);
+        } else if (fieldType == int.class || fieldType == Integer.class) {
+            field.set(obj, ((Number) value).intValue());
+        } else if (fieldType == long.class || fieldType == Long.class) {
+            field.set(obj, ((Number) value).longValue());
+        } else if (fieldType == double.class || fieldType == Double.class) {
+            field.set(obj, ((Number) value).doubleValue());
+        } else if (fieldType == float.class || fieldType == Float.class) {
+            field.set(obj, ((Number) value).floatValue());
+        } else if (fieldType == boolean.class || fieldType == Boolean.class) {
+            field.set(obj, (Boolean) value);
+        } else if (fieldType == String.class) {
+            field.set(obj, String.valueOf(value));
+        } else {
+            System.out.println("Unsupported field type: " + fieldType.getName());
+        }
+    }
 
 }
diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
index cacb0a1..df10756 100644
--- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -45,8 +45,8 @@
     @Autowired
     private LocMastService locMastService;
 
-    @Value("${wms.taskStatusFeedbackPath}")
-    private String taskStatusFeedbackPath;
+    @Value("${wms.TaskExecCallback}")
+    private String TaskExecCallback;
 
     @Autowired
     private ApiLogService apiLogService;
@@ -215,23 +215,21 @@
         String response="";
         try{
             HashMap<String, Object> headParam = new HashMap<>();
-            headParam.put("taskNo",taskWrk.getTaskNo());
-            headParam.put("status",taskWrk.getStatus());
-            headParam.put("ioType",taskWrk.getIoType());
-            headParam.put("barcode",taskWrk.getBarcode());
+            headParam.put("TaskNo",taskWrk.getTaskNo());
+            headParam.put("Result",1);
 //            headParam.put("reportTime",new Date());
             log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
             response = new HttpHandler.Builder()
                     // .setHeaders(headParam)
                     .setUri(wmsUrl)
-                    .setPath(taskStatusFeedbackPath)
+                    .setPath(TaskExecCallback)
                     .setJson(JSON.toJSONString(headParam))
                     .build()
                     .doPost();
 
             JSONObject jsonObject = JSON.parseObject(response);
             apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
-                    ,wmsUrl+taskStatusFeedbackPath
+                    ,wmsUrl+TaskExecCallback
                     ,null
                     ,"127.0.0.1"
                     ,JSON.toJSONString(headParam)
@@ -270,23 +268,21 @@
         String response="";
         try{
             HashMap<String, Object> headParam = new HashMap<>();
-            headParam.put("taskNo",taskWrk.getTaskNo());
-            headParam.put("status",taskWrk.getStatus());
-            headParam.put("ioType",taskWrk.getIoType());
-            headParam.put("barcode",taskWrk.getBarcode());
+            headParam.put("TaskNo",taskWrk.getTaskNo());
+            headParam.put("Result",0);
 //            headParam.put("reportTime",new Date());
 
             log.info("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wm={}", taskWrk);
             response = new HttpHandler.Builder()
                     // .setHeaders(headParam)
                     .setUri(wmsUrl)
-                    .setPath(taskStatusFeedbackPath)
+                    .setPath(TaskExecCallback)
                     .setJson(JSON.toJSONString(headParam))
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
             apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
-                    ,wmsUrl+taskStatusFeedbackPath
+                    ,wmsUrl+TaskExecCallback
                     ,null
                     ,"127.0.0.1"
                     ,JSON.toJSONString(headParam)
diff --git a/src/main/java/com/zy/asrs/entity/GetWmsDto.java b/src/main/java/com/zy/asrs/entity/GetWmsDto.java
index f73c71d..fc0ab81 100644
--- a/src/main/java/com/zy/asrs/entity/GetWmsDto.java
+++ b/src/main/java/com/zy/asrs/entity/GetWmsDto.java
@@ -17,6 +17,14 @@
     private Integer taskTunnel;             //浠诲姟宸烽亾
     private String createTime;          //鍒涘缓鏃堕棿             YYYY-MM-DD HH24:MI:SS
     private String targetLocationCode;  //鐩爣璐т綅
+    private long ShelfUnitId;           //鍒嗛厤鐨勮揣浣岻D
+    private String Alley;           //鍒嗛厤鐨勮揣浣嶆墍灞炲贩閬�
+    private long TaskId;           //鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔D
+    private String TaskNo;           //鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔$紪鍙�
+    private Integer Row;           //鍒嗛厤鐨勮揣浣嶆墍灞炴帓
+    private Integer Floor;           //鍒嗛厤鐨勮揣浣嶆墍灞炲眰
+    private Integer Column;           //鍒嗛厤鐨勮揣浣嶆墍灞炲垪
+
 
     //浠诲姟鍙�
     private String wrkNo;
diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java
index 379fd46..b2f7261 100644
--- a/src/main/java/com/zy/asrs/entity/TaskWrk.java
+++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -188,6 +188,10 @@
     @TableField("origin_target_point")
     private String originTargetPoint;
 
+    @ApiModelProperty(value = "寮�濮嬩换鍔℃爣璁�")
+    @TableField("mark_start")
+    private Integer markStart;
+
     public TaskWrk() {}
 
     public TaskWrk(String taskNo,Integer status,Integer wrkNo,Date createTime,Integer ioType,Integer ioPri,String startPoint,String targetPoint,Long modiUser,Date modiTime,String memo,String barcode,Date assignTime,Date executeTime,Date completeTime,Date cancelTime,Integer wrkSts) {
diff --git a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
index ae15179..1252ec8 100644
--- a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
+++ b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
@@ -16,7 +16,7 @@
     private List<Integer> canInboundTunnels;
 
     // 瀹瑰櫒缂栫爜
-    private String barcode;
+    private String BoxNo;
     //瀹瑰櫒绫诲瀷
     private String ioType;
     //鍏ュ簱绔欑紪鍙�
@@ -25,7 +25,7 @@
     private Integer locType;
 
     public ToWmsDTO(String barcode, Integer stationCode, Integer locType){
-        this.barcode = barcode;
+        this.BoxNo = barcode;
         this.stationCode = stationCode;
         this.locType = locType;
     }
diff --git a/src/main/java/com/zy/asrs/entity/param/CarryParam.java b/src/main/java/com/zy/asrs/entity/param/CarryParam.java
index 4676313..63dc5ce 100644
--- a/src/main/java/com/zy/asrs/entity/param/CarryParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CarryParam.java
@@ -5,19 +5,40 @@
 @Data
 public class CarryParam {
     //宸ヤ綔鍙�
-    private String taskNo;
+    private String TaskNo;
 
     //鍏ュ嚭搴撶被鍨�
-    private Integer ioType;
+    private Integer StereoscopicTaskType;
+
+    //浼樺厛绾�
+    private Integer Priority;
 
     //瀹瑰櫒缂栫爜
-    private String barcode;
+    private String BoxNo;
+
+    //婧愯揣浣嶆帓缂栧彿
+    private Integer OriginalRowNo;
+
+    //婧愯揣浣嶅眰缂栧彿
+    private Integer OriginalFloorNo;
+
+    //婧愯揣浣嶅垪缂栧彿
+    private Integer OriginalColumnNo;
+
+    //鐩爣搴撲綅鎺掔紪鍙�
+    private Integer GoalRowNo;
+
+    //鐩爣搴撲綅灞傜紪鍙�
+    private Integer GoalFloorNo;
+
+    //鐩爣搴撲綅鍒楃紪鍙�
+    private Integer GoalColumnNo;
 
     //璧风偣
     private String startPoint;
 
-    //鐩爣鐐�
-    private String targetPoint;
+    //缁堢缂栧彿锛堣緭閫佺嚎涓婃煇涓�鐐逛綅锛�
+    private String TerminalNo;
 
     //澶囨敞
     private String meno;
diff --git a/src/main/java/com/zy/asrs/entity/param/CarrysParam.java b/src/main/java/com/zy/asrs/entity/param/CarrysParam.java
new file mode 100644
index 0000000..cdeb206
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/CarrysParam.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CarrysParam {
+    private List<CarryParam> TaskList;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/CrnStatusParam.java b/src/main/java/com/zy/asrs/entity/param/CrnStatusParam.java
new file mode 100644
index 0000000..00cebf2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/CrnStatusParam.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class CrnStatusParam {
+    private Integer crnNo;
+    private Integer crnSts;
+    private Long errorCode;
+    private String errorMsg;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/Result.java b/src/main/java/com/zy/asrs/entity/param/Result.java
new file mode 100644
index 0000000..d80d41f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/Result.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class Result {
+    private Long ShelfUnitId;   //鍒嗛厤鐨勮揣浣岻D
+    private String Alley;       //鍒嗛厤鐨勮揣浣嶆墍灞炲贩閬�
+    private Long TaskId;        //鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔D
+    private String TaskNo;      //鍒嗛厤鐨勮揣浣嶆墍灞炰换鍔$紪鍙�
+    private int Row;            //鍒嗛厤鐨勮揣浣嶆墍灞炴帓
+    private int Floor;          //鍒嗛厤鐨勮揣浣嶆墍灞炲眰
+    private int Column;         //鍒嗛厤鐨勮揣浣嶆墍灞炲垪
+    //绔欎綅缂栧彿   鐢ㄦ埛鏄粠鍝釜鍙e叆鐨�
+    private Integer TerminalNo;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java b/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
new file mode 100644
index 0000000..a0505a5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class StorageEscalationParam {
+    //鎵樼洏鐮�
+    private String BoxNo;
+    //鎵ц鐘舵��   0锛氭垚鍔� 1锛氬け璐�
+    private Integer WCSStatus=0;
+    //閿欒淇℃伅   鍏蜂綋鐨勯敊璇俊鎭紙瓒呴珮锛岃秴閲嶇瓑锛�
+    private String WCSErrorMessage="";
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
index d87cda4..0d5534d 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -47,11 +47,11 @@
 
     public TaskCreateParam(CarryParam param, Integer crn){
         this.taskNo = param.getTaskNo();
-        this.ioType = param.getIoType();
-        this.barcode = param.getBarcode();
-        this.taskPriority = 300;
+        this.ioType = param.getStereoscopicTaskType();
+        this.barcode = param.getBoxNo();
+        this.taskPriority = 12;
         this.startPoint = param.getStartPoint();
-        this.targetPoint = param.getTargetPoint();
+        this.targetPoint = param.getTerminalNo();
         this.emptyContainer = "N";
         this.crn = crn;
     };
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index d763764..7175c40 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -6,11 +6,12 @@
 import com.zy.asrs.entity.param.TaskCreateParam;
 
 import java.io.IOException;
+import java.util.HashMap;
 
 public interface OpenService {
 
     //鍒涘缓浠诲姟
-    R taskCreate(TaskCreateParam param);
+    HashMap<String,Object> taskCreate(TaskCreateParam param);
 
     R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException;
 
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 1622eb7..45bf0dc 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -13,6 +13,8 @@
 import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.Result;
+import com.zy.asrs.entity.param.StorageEscalationParam;
 import com.zy.asrs.entity.param.TaskOverToWms;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
@@ -97,8 +99,8 @@
     private String wmsUrl;
     @Value("${wms.inboundTaskApplyPath}")
     private String inboundTaskApplyPath;
-    @Value("${wms.movePath}")
-    private String movePath;
+    @Value("${wms.TaskExecCallback}")
+    private String TaskExecCallback;
     @Value("${wms.taskStatusFeedbackPath}")
     private String taskStatusFeedbackPath;
     @Autowired
@@ -107,10 +109,196 @@
     private SiteController siteController;
 
 
+    public void generateStoreWrkFile1() throws IOException, InterruptedException {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                // 閬嶅巻鍏ュ簱鍙�
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    Short workNo = staProtocol.getWorkNo();
+                    Short stano = staProtocol.getStaNo();
+
+                    // 灏哄妫�娴嬪紓甯�
+                    boolean back = false;
+                    String errMsg = "";
+                    if (staProtocol.isFrontErr()) {
+                        errMsg = "鍓嶈秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBackErr()) {
+                        errMsg = "鍚庤秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isHighErr()) {
+                        errMsg = "楂樿秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isLeftErr()) {
+                        errMsg = "宸﹁秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "鍙宠秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isWeightErr()) {
+                        errMsg = "瓒呴噸";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBarcodeErr()) {
+                        errMsg = "鎵爜澶辫触";
+                        back = true;
+                    }
+                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                    if (staProtocol.isAutoing() && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && !staProtocol.isEmptyMk() && workNo >= 9790
+                            && staProtocol.isPakMk()) {
+                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+                        if (barcodeThread == null) {
+                            continue;
+                        }
+                        String BoxNo = barcodeThread.getBarcode();
+                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
+                        if (!Cools.isEmpty(taskWrk1)) {
+                            log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
+                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
+                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                if (Cools.isEmpty(staDesc)) {
+                                    return;
+                                } else {
+                                    continue;
+                                }
+                            }
+                        }
+                        if (back) {
+                            storageEscalationParam.setWCSStatus(1);
+                            storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
+                        }
+                        log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
+                        storageEscalationParam.setBoxNo(BoxNo);
+                        String response = "";
+                        Boolean success = false;
+                        try {
+                            response = new HttpHandler.Builder()
+                                    .setUri(wmsUrl)
+                                    .setPath(inboundTaskApplyPath)
+                                    .setJson(JSON.toJSONString(storageEscalationParam))
+                                    .build()
+                                    .doPost();
+                            JSONObject jsonObject = JSON.parseObject(response);
+                            if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
+                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+                                // 鍒涙柊涓�涓叆搴撳伐浣滄。
+                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
+                                if (Cools.isEmpty(taskWrk)) {
+                                    taskWrk = createTask1(result, BoxNo);
+                                    if (Cools.isEmpty(taskWrk)) {
+                                        log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
+                                    } else {
+                                        taskWrkService.insert(taskWrk);
+                                        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                        staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                        HashMap<String, Object> hashMap = new HashMap<>();
+                                        hashMap.put("TaskNo",taskWrk.getTaskNo());
+                                        try {
+                                            //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                            response = new HttpHandler.Builder()
+                                                    .setUri(wmsUrl)
+                                                    .setPath(taskStatusFeedbackPath)
+                                                    .setJson(JSON.toJSONString(hashMap))
+                                                    .build()
+                                                    .doPost();
+                                            JSONObject jsonObject1 = JSON.parseObject(response);
+                                            Boolean bool = false;
+                                            if(jsonObject1.get("ReturnStatus").equals(0)){
+                                                bool = true;
+                                            }
+                                            apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+                                                    , wmsUrl + TaskExecCallback
+                                                    , null
+                                                    , "127.0.0.1"
+                                                    , JSON.toJSONString(hashMap)
+                                                    , response
+                                                    , bool
+                                            );
+                                        } catch (Exception e) {
+
+                                        }
+                                    }
+                                } else {
+//                                    staProtocol.setWorkNo((short) 9991);
+                                    if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
+                                        staProtocol.setStaNo((short)105);
+                                    } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
+                                        staProtocol.setStaNo((short)107);
+                                    }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
+                                        staProtocol.setStaNo((short)109);
+                                    }else{
+                                        staProtocol.setStaNo((short)110);
+                                    }
+                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                }
+
+                            } else {
+//                                staProtocol.setWorkNo((short) 9991);
+                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            }
+                        } catch (Exception e) {
+                            log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
+                            log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
+                            try {
+                                BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
+                                if (Cools.isEmpty(basDevp)) {
+                                    log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo());
+                                } else if (basDevp.getStaErr() != 0) {
+                                    basDevp.setStaErr(2);
+                                    basDevpService.updateById(basDevp);
+                                }
+                            } catch (Exception e1) {
+                                // 閫�鍥�
+                                log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1);
+                            }
+                        } finally {
+                            apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+                                    , wmsUrl + inboundTaskApplyPath
+                                    , null
+                                    , "127.0.0.1"
+                                    , JSON.toJSONString(storageEscalationParam)
+                                    , response
+                                    , success
+                            );
+                        }
+                        log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
+                        log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("generateStoreWrkFile e", e);
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+    }
+
     public void generateStoreWrkFile() throws IOException, InterruptedException {
         try {
-
-
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鍏ュ簱鍙�
@@ -159,13 +347,13 @@
                     }
                     // 閫�鍥�
                     if (back) {
-                        if (stano == inSta.getBackSta().shortValue()){
+                        if (stano == inSta.getBackSta().shortValue()) {
                             continue;
                         }
-                        if (workNo == 0 && stano == 0){
+                        if (workNo == 0 && stano == 0) {
                             continue;
                         }
-                        if (!staProtocol.isPakMk()){
+                        if (!staProtocol.isPakMk()) {
                             continue;
                         }
 //                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
@@ -183,7 +371,7 @@
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
                             && staProtocol.isInEnable()
-                            && !staProtocol.isEmptyMk() && (workNo == 9991 )
+                            && !staProtocol.isEmptyMk() && (workNo >= 9899)
                             && staProtocol.isPakMk()) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -191,19 +379,19 @@
                             continue;
                         }
                         String barcode = barcodeThread.getBarcode();
-                        if(!Cools.isEmpty(barcode) && !barcode.equals("99999999")) {
+                        if (!Cools.isEmpty(barcode) && !barcode.equals("99999999")) {
                             // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣�
-                            ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1);
-                            TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode));
-                            if(!Cools.isEmpty(taskWrk1)){
-                                log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
-                                if (taskWrk1.getIoType()==1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())){
+                            ToWmsDTO toWmsDTO = new ToWmsDTO(barcode, staProtocol.getSiteId(), staProtocol.isHigh() ? 2 : 1);
+                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
+                            if (!Cools.isEmpty(taskWrk1)) {
+                                log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
+                                if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
                                     StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                            .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId()));
-                                    if (Cools.isEmpty(staDesc)){
-                                        log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
+                                            .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                    if (Cools.isEmpty(staDesc)) {
+                                        log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
                                         return;
-                                    }else {
+                                    } else {
                                         staProtocol.setWorkNo(taskWrk1.getWrkNo().shortValue());
                                         staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -212,9 +400,10 @@
                                 return;
                             }
                             HashMap<String, Object> headParam = new HashMap<>();
-                            headParam.put("Content-Type","application/json");
+                            headParam.put("Content-Type", "application/json");
+                            System.out.println(JSON.toJSONString(toWmsDTO));
                             String response;
-                            try{
+                            try {
                                 response = new HttpHandler.Builder()
                                         // .setHeaders(headParam)
                                         .setUri(wmsUrl)
@@ -222,22 +411,22 @@
                                         .setJson(JSON.toJSONString(toWmsDTO))
                                         .build()
                                         .doPost();
-                            }catch (Exception e){
+                            } catch (Exception e) {
                                 log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
-                                log.error("寮傚父淇℃伅鎵撳嵃锛�"+e);
-                                try{
+                                log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
+                                try {
                                     BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
-                                    if (Cools.isEmpty(basDevp)){
-                                        log.error("绔欑偣鍙峰紓甯�"+inSta.getStaNo());
-                                    } else if (basDevp.getStaErr()!=0){
+                                    if (Cools.isEmpty(basDevp)) {
+                                        log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo());
+                                    } else if (basDevp.getStaErr() != 0) {
                                         basDevp.setStaErr(2);
                                         basDevpService.updateById(basDevp);
                                     }
-                                }catch (Exception e1){
+                                } catch (Exception e1) {
                                     // 閫�鍥�
-                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e1);
+                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1);
                                 }
-                                staProtocol.setWorkNo((short)9999);
+                                staProtocol.setWorkNo((short) 9999);
                                 staProtocol.setStaNo(inSta.getStaNo().shortValue());
                                 devpThread.setPakMk(staProtocol.getSiteId(), false);
                                 MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -250,48 +439,40 @@
                             }
 
                             JSONObject jsonObject = JSON.parseObject(response);
-                            apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
-                                    ,wmsUrl+inboundTaskApplyPath
-                                    ,null
-                                    ,"127.0.0.1"
-                                    ,JSON.toJSONString(toWmsDTO)
-                                    ,response
-                                    ,true
-                            );
                             log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO));
                             log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟{}" + JSON.toJSONString(response));
                             if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) {
                                 GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
-                                try{
+                                try {
                                     BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
-                                    if (Cools.isEmpty(basDevp)){
-                                        log.error("绔欑偣鍙峰紓甯�1"+inSta.getStaNo());
-                                        throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅"+inSta.getStaNo());
+                                    if (Cools.isEmpty(basDevp)) {
+                                        log.error("绔欑偣鍙峰紓甯�1" + inSta.getStaNo());
+                                        throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅" + inSta.getStaNo());
                                     }
                                     Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo());
-                                    if (staNoCrnNo==0){
+                                    if (staNoCrnNo == 0) {
                                         basDevp.setStaErr(1);
                                         basDevpService.updateById(basDevp);
-                                        log.error("绔欑偣鍙峰紓甯�2"+inSta.getStaNo());
-                                        throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪"+inSta.getStaNo());
-                                    }else {
+                                        log.error("绔欑偣鍙峰紓甯�2" + inSta.getStaNo());
+                                        throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪" + inSta.getStaNo());
+                                    } else {
                                         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                                                 .eq("crn_no", staNoCrnNo.longValue())
                                                 .eq("loc_no", getWmsDto.getLocNo()));
-                                        if (Cools.isEmpty(locMast)){
+                                        if (Cools.isEmpty(locMast)) {
                                             basDevp.setStaErr(1);
                                             basDevpService.updateById(basDevp);
-                                            log.error("绔欑偣鍙峰紓甯�3"+inSta.getStaNo());
-                                            throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�"+inSta.getStaNo());
+                                            log.error("绔欑偣鍙峰紓甯�3" + inSta.getStaNo());
+                                            throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�" + inSta.getStaNo());
                                         }
                                     }
-                                } catch (Exception e){
+                                } catch (Exception e) {
 //                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e);
                                     // 閫�鍥�
-                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+errMsg);
-                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅"+e);
+                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg);
+                                    log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e);
 
-                                    staProtocol.setWorkNo((short)9999);
+                                    staProtocol.setWorkNo((short) 9999);
                                     staProtocol.setStaNo(inSta.getStaNo().shortValue());
                                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -303,16 +484,16 @@
                                     continue;
                                 }
                                 //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
-                                LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
-                                        .eq("loc_sts","O")
-                                        .eq("loc_no",getWmsDto.getLocNo()));
-                                if(Cools.isEmpty(locMast)){
-                                    try{
+                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                        .eq("loc_sts", "O")
+                                        .eq("loc_no", getWmsDto.getLocNo()));
+                                if (Cools.isEmpty(locMast)) {
+                                    try {
                                         HashMap<String, Object> headParam1 = new HashMap<>();
-                                        headParam1.put("taskNo",getWmsDto.getTaskNo());
-                                        headParam1.put("status",6);
-                                        headParam1.put("ioType",1);
-                                        headParam1.put("barcode",barcode);
+                                        headParam1.put("taskNo", getWmsDto.getTaskNo());
+                                        headParam1.put("status", 6);
+                                        headParam1.put("ioType", 1);
+                                        headParam1.put("barcode", barcode);
                                         String response2;
                                         response2 = new HttpHandler.Builder()
                                                 // .setHeaders(headParam)
@@ -323,44 +504,52 @@
                                                 .doPost();
                                         JSONObject jsonObject1 = JSON.parseObject(response2);
                                         apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms"
-                                                ,wmsUrl+taskStatusFeedbackPath
-                                                ,null
-                                                ,"127.0.0.1"
-                                                ,JSON.toJSONString(headParam1)
-                                                ,response
-                                                ,true
+                                                , wmsUrl + taskStatusFeedbackPath
+                                                , null
+                                                , "127.0.0.1"
+                                                , JSON.toJSONString(headParam1)
+                                                , response
+                                                , true
                                         );
-                                    }catch (Exception e){
+                                    } catch (Exception e) {
                                         log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", getWmsDto.getWrkNo());
-                                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細"+e);
+                                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細" + e);
                                     }
                                 }
 
                                 // 鍒涙柊涓�涓叆搴撳伐浣滄。
                                 TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo());
-                                if(Cools.isEmpty(taskWrk)) {
-                                    taskWrk = createTask(getWmsDto,barcode);
-                                    if (Cools.isEmpty(taskWrk)){
+                                if (Cools.isEmpty(taskWrk)) {
+                                    taskWrk = createTask(getWmsDto, barcode);
+                                    if (Cools.isEmpty(taskWrk)) {
                                         log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛歿}", getWmsDto.getTargetLocationCode());
-                                    }else {
+                                    } else {
                                         taskWrkService.insert(taskWrk);
                                         StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId()));
+                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                         staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                         staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                     }
                                 }
 
-                            }else {
+                            } else {
                                 continue;
                             }
+                            apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+                                    , wmsUrl + inboundTaskApplyPath
+                                    , null
+                                    , "127.0.0.1"
+                                    , JSON.toJSONString(toWmsDTO)
+                                    , response
+                                    , true
+                            );
 
                         } else {
                             // 閫�鍥�
                             log.error("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
 
-                            staProtocol.setWorkNo((short)9999);
+                            staProtocol.setWorkNo((short) 9999);
                             staProtocol.setStaNo(inSta.getStaNo().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -390,8 +579,8 @@
             // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
             for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
                 List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
-                for (StaDesc staDesc : staDescs){
-                    try{
+                for (StaDesc staDesc : staDescs) {
+                    try {
                         // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
                         DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                         StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
@@ -406,30 +595,31 @@
                             if (taskWrk == null) {
                                 continue;
                             }
-                            log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:"+JSON.toJSONString(taskWrk));
+                            log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
 //                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
                             staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                            staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+                            staProtocol.setStaNo(staDesc.getStnNo().shortValue());
                             boolean offer = false;
-                            try{
+                            try {
                                 offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            }catch (Exception e){
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:"+e);
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:"+offer);
+                            } catch (Exception e) {
+                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
                             }
 //                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
-                            if (offer){
-                                log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:"+JSON.toJSONString(taskWrk));
+                            if (offer) {
+                                log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
                                 taskWrk.setStatus(5);
                                 taskWrk.setWrkSts(14);
                                 taskWrkService.updateById(taskWrk);
-                            }else {
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:"+JSON.toJSONString(taskWrk));
+
+                            } else {
+                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
 //                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
                             }
                         }
-                    }catch (Exception e){
-                        log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�"+e);
+                    } catch (Exception e) {
+                        log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
                     }
                 }
 
@@ -445,15 +635,15 @@
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) { continue; }
+            if (crnProtocol == null) {
+                continue;
+            }
             BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
             if (basCrnp == null) {
                 log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
                 continue;
             }
 
-            // 搴撲綅绉昏浆
-            this.locToLoc(crn, crnProtocol);
 
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
@@ -478,6 +668,9 @@
                         crnProtocol.setLastIo("O");
                     }
                 }
+
+                // 搴撲綅绉昏浆
+                this.locToLoc(crn, crnProtocol);
             }
 
         }
@@ -506,7 +699,7 @@
                     continue;
                 }
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
-                        && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) {
+                        && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
                     flag = true;
                 }
                 if (!flag) {
@@ -515,7 +708,7 @@
 
                 // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
                 TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
-                if(null == taskWrk) {
+                if (null == taskWrk) {
                     continue;
                 }
 
@@ -538,37 +731,6 @@
                 taskWrk.setModiTime(new Date());
                 taskWrk.setModiUser(9988L);
 
-//                //鍙栧嚭鍛戒护
-//                List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
-//                Integer commandStep = taskWrk.getCommandStep();
-//                if (commandInfos.isEmpty()) {
-//                    continue;//鍛戒护绌�
-//                }
-//                CommandInfo commandInfo = commandInfos.get(commandStep);
-//                CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
-//                CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
-//
-//                if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
-//                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
-//                } else {
-//                    // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-//                    Date now = new Date();
-//                    taskWrk.setWrkSts(3);
-//                    taskWrk.setModiTime(now);
-//                    if (taskWrkMapper.updateById(taskWrk) == 0) {
-//                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-//                    }
-//                    //寮�濮嬭繍琛�
-//                    String response = CrnStartRunning(taskWrk);
-//                    JSONObject jsonObject = JSON.parseObject(response);
-//                    if (jsonObject.getInteger("code").equals(200)) {
-//
-//                    }else {
-//                        log.error("鍏ュ簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg"));
-//
-//                    }
-//                }
-
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                 CrnCommand crnCommand = new CrnCommand();
                 crnCommand.setCrnNo(staDesc.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -581,49 +743,20 @@
                 crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
                 crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
-                crnCommand.setCommand((short)1);
-                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) {
+                crnCommand.setCommand((short) 1);
+                log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}",crnCommand);
+                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
                     log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                     throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
-                }else{
-                    try{
+                } else {
+                    try {
                         taskWrkService.updateById(taskWrk);
-                    }catch (Exception e){
+                    } catch (Exception e) {
                         log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細"+e);
+                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
                     }
-                    try{
-                        HashMap<String, Object> headParam = new HashMap<>();
-                        headParam.put("taskNo",taskWrk.getTaskNo());
-                        headParam.put("status",taskWrk.getStatus());
-                        headParam.put("ioType",taskWrk.getIoType());
-                        headParam.put("barcode",taskWrk.getBarcode());
-                        String response;
-                        response = new HttpHandler.Builder()
-                                // .setHeaders(headParam)
-                                .setUri(wmsUrl)
-                                .setPath(taskStatusFeedbackPath)
-                                .setJson(JSON.toJSONString(headParam))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms"
-                                ,wmsUrl+taskStatusFeedbackPath
-                                ,null
-                                ,"127.0.0.1"
-                                ,JSON.toJSONString(headParam)
-                                ,response
-                                ,true
-                        );
-                    } catch (Exception e){
-                        log.error("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
-//                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
-                    }
-
                 }
             }
-
-            // return;
         }
     }
 
@@ -631,17 +764,17 @@
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
+    public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
         List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
-        if (taskWrksInitial.size()==0){
+        if (taskWrksInitial.size() == 0) {
             return;
         }
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
-            for (StaDesc staDesc : staDescs){
+            for (StaDesc staDesc : staDescs) {
                 // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(slave.getId(),staDesc.getStnNo().toString());
-                for (TaskWrk taskWrk : taskWrks){
+                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(slave.getId(), staDesc.getStnNo().toString());
+                for (TaskWrk taskWrk : taskWrks) {
                     if (taskWrk == null) {
                         continue;
                     }
@@ -650,6 +783,29 @@
                         log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType());
                         continue;
                     }
+
+                    LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
+                    if(locMast.getRow1()==1||locMast.getRow1()==5){
+                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("row1", (locMast.getRow1()+1))
+                                .eq("bay1",locMast.getBay1())
+                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
+                        if (!Cools.isEmpty(locMast1)){
+                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+                            continue;
+                        }
+                    }else if(locMast.getRow1()==4||locMast.getRow1()==8){
+                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("row1", (locMast.getRow1()-1))
+                                .eq("bay1",locMast.getBay1())
+                                .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
+                        if (!Cools.isEmpty(locMast1)){
+                            log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+                            continue;
+                        }
+                    }
+
                     // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                     StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
@@ -667,7 +823,7 @@
                     }
 
                     // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
+                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
                             && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
@@ -680,7 +836,6 @@
                         if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
                             break;
                         }
-
                         CrnCommand command = new CrnCommand();
                         command.setCrnNo(taskWrk.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
                         command.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
@@ -692,12 +847,43 @@
                         command.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
                         command.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                         command.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
-                        command.setCommand((short)1);
-                        if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command),false)) {
+                        command.setCommand((short) 1);
+
+                        if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
+                            HashMap<String, Object> hashMap = new HashMap<>();
+                            hashMap.put("TaskNo",taskWrk.getTaskNo());
+                            String response = "";
+                            try {
+                                //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                response = new HttpHandler.Builder()
+                                        .setUri(wmsUrl)
+                                        .setPath(taskStatusFeedbackPath)
+                                        .setJson(JSON.toJSONString(hashMap))
+                                        .build()
+                                        .doPost();
+                                JSONObject jsonObject = JSON.parseObject(response);
+                                Boolean bool = false;
+                                if(jsonObject.get("ReturnStatus").equals(0)){
+                                    bool = true;
+                                    taskWrk.setMarkStart(1);
+                                }
+                                apiLogService.save("wcs寮�濮嬩换鍔′笂鎶ms"
+                                        , wmsUrl + TaskExecCallback
+                                        , null
+                                        , "127.0.0.1"
+                                        , JSON.toJSONString(hashMap)
+                                        , response
+                                        , bool
+                                );
+                            } catch (Exception e) {
+                            }
+                        }
+
+                        if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command), false)) {
                             log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(command));
                             throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
-                        }else{
-                            try{
+                        } else {
+                            try {
                                 // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                                 Date now = new Date();
                                 taskWrk.setWrkSts(12);
@@ -706,37 +892,37 @@
                                 if (taskWrkMapper.updateById(taskWrk) == 0) {
                                     log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                                 }
-                            }catch (Exception e){
+                            } catch (Exception e) {
                                 log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                                log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細"+e);
+                                log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
                             }
-                            try{
-                                HashMap<String, Object> headParam = new HashMap<>();
-                                headParam.put("taskNo",taskWrk.getTaskNo());
-                                headParam.put("status",taskWrk.getStatus());
-                                headParam.put("ioType",taskWrk.getIoType());
-                                headParam.put("barcode",taskWrk.getBarcode());
-                                String response;
-                                response = new HttpHandler.Builder()
-                                        // .setHeaders(headParam)
-                                        .setUri(wmsUrl)
-                                        .setPath(taskStatusFeedbackPath)
-                                        .setJson(JSON.toJSONString(headParam))
-                                        .build()
-                                        .doPost();
-                                JSONObject jsonObject = JSON.parseObject(response);
-                                apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms"
-                                        ,wmsUrl+taskStatusFeedbackPath
-                                        ,null
-                                        ,"127.0.0.1"
-                                        ,JSON.toJSONString(headParam)
-                                        ,response
-                                        ,true
-                                );
-                            }catch (Exception e){
-                                log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
-//                                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
-                            }
+//                            try {
+//                                HashMap<String, Object> headParam = new HashMap<>();
+//                                headParam.put("taskNo", taskWrk.getTaskNo());
+//                                headParam.put("status", taskWrk.getStatus());
+//                                headParam.put("ioType", taskWrk.getIoType());
+//                                headParam.put("barcode", taskWrk.getBarcode());
+//                                String response;
+//                                response = new HttpHandler.Builder()
+//                                        // .setHeaders(headParam)
+//                                        .setUri(wmsUrl)
+//                                        .setPath(taskStatusFeedbackPath)
+//                                        .setJson(JSON.toJSONString(headParam))
+//                                        .build()
+//                                        .doPost();
+//                                JSONObject jsonObject = JSON.parseObject(response);
+//                                apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms"
+//                                        , wmsUrl + taskStatusFeedbackPath
+//                                        , null
+//                                        , "127.0.0.1"
+//                                        , JSON.toJSONString(headParam)
+//                                        , response
+//                                        , true
+//                                );
+//                            } catch (Exception e) {
+//                                log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
+////                                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+//                            }
                         }
                     }
                 }
@@ -747,15 +933,15 @@
     /**
      * 搴撲綅绉昏浆
      */
-    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
+    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
             List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
-                    .eq("crn_no",slave.getId())
-                    .eq("wrk_sts",11)
-                    .eq("io_type",3)
-                    .orderBy("io_pri",false));
-            for (TaskWrk taskWrk : taskWrks){
+                    .eq("crn_no", slave.getId())
+                    .eq("wrk_sts", 11)
+                    .eq("io_type", 3)
+                    .orderBy("io_pri", false));
+            for (TaskWrk taskWrk : taskWrks) {
 
                 // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
 //                if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
@@ -787,8 +973,6 @@
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
 
-
-
                 // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                 CrnCommand crnCommand = new CrnCommand();
                 crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
@@ -802,7 +986,7 @@
                 crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
                 crnCommand.setCommand((short) 1);
-                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) {
+                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
                     log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                 } else {
                     // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
@@ -813,12 +997,9 @@
                     if (taskWrkMapper.updateById(taskWrk) == 0) {
                         log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                     }
-                    try{
+                    try {
                         HashMap<String, Object> headParam = new HashMap<>();
-                        headParam.put("taskNo",taskWrk.getTaskNo());
-                        headParam.put("status",taskWrk.getStatus());
-                        headParam.put("ioType",taskWrk.getIoType());
-                        headParam.put("barcode",taskWrk.getBarcode());
+                        headParam.put("TaskNo", taskWrk.getTaskNo());
                         String response;
                         response = new HttpHandler.Builder()
                                 // .setHeaders(headParam)
@@ -829,14 +1010,14 @@
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
                         apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
-                                ,wmsUrl+taskStatusFeedbackPath
-                                ,null
-                                ,"127.0.0.1"
-                                ,JSON.toJSONString(headParam)
-                                ,response
-                                ,true
+                                , wmsUrl + taskStatusFeedbackPath
+                                , null
+                                , "127.0.0.1"
+                                , JSON.toJSONString(headParam)
+                                , response
+                                , true
                         );
-                    }catch (Exception e){
+                    } catch (Exception e) {
                         log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
 //                        throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
                     }
@@ -904,24 +1085,28 @@
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) { continue; }
+            if (crnProtocol == null) {
+                continue;
+            }
 
             //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
             if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
                 //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
-                if (Cools.isEmpty(taskWrk)&&crnProtocol.getTaskNo() !=999) {
+                TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(), crnProtocol.getTaskNo().intValue());
+                if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
                     log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                     continue;
                 }
-                Thread.sleep(300);
                 //纭瀹屾垚淇″彿
-                CrnOperatorParam crnOperatorParam=new CrnOperatorParam();
+                CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
                 crnOperatorParam.setCrnNo(crn.getId());
-
-                crnController.crnTaskComplete(crnOperatorParam);
-                if(!Cools.isEmpty(taskWrk)){
-                    if(taskWrk.getIoType()==1 && taskWrk.getWrkSts()==3){
+                R r = crnController.crnTaskComplete(crnOperatorParam);
+                Thread.sleep(1000);
+                if(!r.get("code").equals(200)){
+                    return;
+                }
+                if (!Cools.isEmpty(taskWrk)) {
+                    if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
                         taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
                         //鏇存柊搴撲綅鐘舵��
@@ -931,7 +1116,7 @@
                         locMast.setModiTime(new Date());
                         locMast.setModiUser(9999L);
                         locMastService.updateById(locMast);
-                    }else if(taskWrk.getIoType()==2&&taskWrk.getWrkSts()==12){
+                    } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
                         taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
                         //鏇存柊搴撲綅鐘舵��
@@ -941,7 +1126,7 @@
                         locMast.setModiTime(new Date());
                         locMast.setModiUser(9999L);
                         locMastService.updateById(locMast);
-                    }else if(taskWrk.getIoType()==3&&taskWrk.getWrkSts()==12){
+                    } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
                         taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
                         taskWrk.setStatus(5);//瀹岀粨
                         //鏇存柊搴撲綅鐘舵��
@@ -960,42 +1145,6 @@
                         locMastService.updateById(locMast1);
                     }
                     taskWrkService.updateById(taskWrk);
-
-
-                    try{
-                        HashMap<String, Object> headParam = new HashMap<>();
-                        headParam.put("taskNo",taskWrk.getTaskNo());
-                        headParam.put("status",taskWrk.getStatus());
-                        headParam.put("ioType",taskWrk.getIoType());
-                        headParam.put("barcode",taskWrk.getBarcode());
-                        String response;
-                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam);
-
-                        response = new HttpHandler.Builder()
-                                // .setHeaders(headParam)
-                                .setUri(wmsUrl)
-                                .setPath(taskStatusFeedbackPath)
-                                .setJson(JSON.toJSONString(headParam))
-                                .build()
-                                .doPost();
-                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", response);
-
-//                        JSONObject jsonObject = JSON.parseObject(response);
-//                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject);
-
-                        apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms"
-                                ,wmsUrl+taskStatusFeedbackPath
-                                ,null
-                                ,"127.0.0.1"
-                                ,JSON.toJSONString(headParam)
-                                ,response
-                                ,true
-                        );
-                    }catch (Exception e){
-                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk);
-                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
-//                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
-                    }
                 }
 
             }
@@ -1005,7 +1154,7 @@
     /**
      * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
      */
-    public void recCrnErr(){
+    public void recCrnErr() {
         Date now = new Date();
         for (CrnSlave crn : slaveProperties.getCrn()) {
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -1027,7 +1176,7 @@
                                 continue;
                             }
                             BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
-                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
+                            String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
                             BasErrLog basErrLog = new BasErrLog(
                                     null,    // 缂栧彿
                                     wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
@@ -1074,7 +1223,7 @@
                         // 璁板綍鏂板紓甯�
                         if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
                             BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
-                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
+                            String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
                             BasErrLog basErrLog = new BasErrLog(
                                     null,    // 缂栧彿
                                     null,    // 宸ヤ綔鍙�
@@ -1089,7 +1238,7 @@
                                     null,    // 婧愮珯
                                     null,    // 婧愬簱浣�
                                     null,    // 鏉$爜
-                                    (int)crnProtocol.getAlarm1(),    // 寮傚父鐮�
+                                    (int) crnProtocol.getAlarm1(),    // 寮傚父鐮�
                                     errName,    // 寮傚父
                                     1,    // 寮傚父鎯呭喌
                                     now,    // 娣诲姞鏃堕棿
@@ -1144,13 +1293,13 @@
     //agv鍙栨斁璐т换鍔″畬鎴�
     public synchronized void autoCompleteAGV() {
         List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
-        try{
+        try {
             Thread.sleep(500);
-        }catch (Exception e){
+        } catch (Exception e) {
 
         }
 
-        for (BasDevp basDevp:basDevps){
+        for (BasDevp basDevp : basDevps) {
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
             StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
             if (staProtocol == null) {
@@ -1158,47 +1307,48 @@
             } else {
                 staProtocol = staProtocol.clone();
             }
-            if (basDevp.getWrkNo()!=0){
-                if (basDevp.getAgvTargetPick()!=0){//鍙栬揣
-                    staProtocol.setAgvTypeSign((short)0);
+            if (basDevp.getWrkNo() != 0) {
+                if (basDevp.getAgvTargetPick() != 0) {//鍙栬揣
+                    staProtocol.setAgvTypeSign((short) 0);
                     staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                     MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
                 }
                 boolean sign = true;
-                if (basDevp.getAgvTargetPlace()!=0){
+                if (basDevp.getAgvTargetPlace() != 0) {
                     sign = false;
                     basDevp.setAgvTargetPlace(0);
                     basDevpService.updateById(basDevp);
-                    staProtocol.setAgvTypeSign((short)3);//1
+                    staProtocol.setAgvTypeSign((short) 3);//1
                     staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                     MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
                 }
-            }else {
-                if (basDevp.getAgvTargetPlace()!=0){
-                    if (basDevp.getLoading().equals("Y")){
-                        staProtocol.setAgvTypeSign((short)1);
+            } else {
+                if (basDevp.getAgvTargetPlace() != 0) {
+                    if (basDevp.getLoading().equals("Y")) {
+                        staProtocol.setAgvTypeSign((short) 1);
                         staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                         MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
-                    }else {
+                    } else {
                         log.error("AGV鏀捐揣瀹屾垚浣嗚緭閫佺嚎鏃犵墿锛屽浣嶄俊鍙� ===>> [staNo:{}] [basDevp:{}]", basDevp.getDevNo(), basDevp);
                         basDevp.setAgvTargetPlace(0);
                         basDevpService.updateById(basDevp);
-                        staProtocol.setAgvTypeSign((short)3);//1
+                        staProtocol.setAgvTypeSign((short) 3);//1
                         staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                         MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
                     }
 
                 }
-                if (basDevp.getAgvTargetPick()!=0){
+                if (basDevp.getAgvTargetPick() != 0) {
                     basDevp.setAgvTargetPick(0);
                     basDevpService.updateById(basDevp);
-                    staProtocol.setAgvTypeSign((short)2);//0
+                    staProtocol.setAgvTypeSign((short) 2);//0
                     staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                     MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
                 }
             }
         }
     }
+
     public synchronized void autoCompleteTask() {
         List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask();
         for (TaskWrk taskWrk : taskWrks) {
@@ -1249,42 +1399,42 @@
     }
 
 
-    public synchronized String CrnStartRunning(TaskWrk taskWrk){
+    public synchronized String CrnStartRunning(TaskWrk taskWrk) {
         String tasktype = null;
-        switch (taskWrk.getIoType()){
+        switch (taskWrk.getIoType()) {
             case 1:
-                tasktype= "RK";
+                tasktype = "RK";
                 break;
             case 2:
-                tasktype= "CK";
+                tasktype = "CK";
                 break;
             case 3:
-                tasktype= "YK";
+                tasktype = "YK";
                 break;
             default:
-                tasktype= "鏈煡";
+                tasktype = "鏈煡";
         }
         Map<String, Object> map = new HashMap<>();
-        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
+        map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
         TaskOverToWms taskOverToWms = new TaskOverToWms();
         taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
         taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
         taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
         taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
         taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
-        if (taskWrk.getIoType() ==1 || taskWrk.getIoType() == 3){
+        if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3) {
             taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
             taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
-        }else if (taskWrk.getIoType() ==2){
-            Map<Integer,String> map1 = new HashMap<>();
-            map1.put(102,"J-1101");
-            map1.put(106,"J-1103");
-            map1.put(110,"J-1105");
-            map1.put(114,"J-1107");
-            map1.put(118,"J-1109");
-            map1.put(122,"J-1111");
-            map1.put(305,"H-1101");
-            map1.put(405,"G-1101");
+        } else if (taskWrk.getIoType() == 2) {
+            Map<Integer, String> map1 = new HashMap<>();
+            map1.put(102, "J-1101");
+            map1.put(106, "J-1103");
+            map1.put(110, "J-1105");
+            map1.put(114, "J-1107");
+            map1.put(118, "J-1109");
+            map1.put(122, "J-1111");
+            map1.put(305, "H-1101");
+            map1.put(405, "G-1101");
             taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
             taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
         }
@@ -1299,23 +1449,55 @@
                     .setJson(JSON.toJSONString(taskOverToWms))
                     .build()
                     .doPost();
-        }catch (Exception e){
+        } catch (Exception e) {
             log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
         }
         apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�"
-                ,wmsUrl+"wcsManager/wcsInterface/taskStatusFeedback"
-                ,null
-                ,"127.0.0.1"
-                ,JSON.toJSONString(taskOverToWms)
-                ,response
-                ,true
+                , wmsUrl + "wcsManager/wcsInterface/taskStatusFeedback"
+                , null
+                , "127.0.0.1"
+                , JSON.toJSONString(taskOverToWms)
+                , response
+                , true
         );
         return response;
     }
 
-    private TaskWrk createTask(GetWmsDto dto, String barcode){
+    private TaskWrk createTask1(Result result, String barcode) {
+        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
+
+
+        Date now = new Date();
+        TaskWrk taskWrk = new TaskWrk();
+        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+        taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
+        taskWrk.setWrkNo(workNo1);
+        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂
+        taskWrk.setCreateTime(now);
+        taskWrk.setIoType(1);//浠诲姟绫诲瀷
+        taskWrk.setIoPri(13);//浼樺厛绾�
+        taskWrk.setBarcode(barcode);//鏉$爜
+        LocMast locMast = locMastService.selectByLocNo(locNo);
+        taskWrk.setCrnNo(locMast.getCrnNo());
+        taskWrk.setTargetPoint(locNo);
+        taskWrk.setStartPoint("116");
+        if (result.getAlley().equals("1")) {
+            taskWrk.setCrnNo(1);
+        } else {
+            taskWrk.setCrnNo(2);
+        }
+        if (taskWrk.getIoType() == 1) {
+            taskWrk.setWrkSts(2);
+            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+            }
+        }
+        return taskWrk;
+    }
+
+    private TaskWrk createTask(GetWmsDto dto, String barcode) {
         String wcsLocNo = dto.getLocNo();
-        if(Cools.isEmpty(wcsLocNo)){
+        if (Cools.isEmpty(wcsLocNo)) {
             return null;
         }
         Date now = new Date();
@@ -1332,7 +1514,7 @@
         taskWrk.setCrnNo(locMast.getCrnNo());
         taskWrk.setTargetPoint(wcsLocNo);
         taskWrk.setStartPoint(dto.getStaNo().toString());
-        if(taskWrk.getIoType() == 1){
+        if (taskWrk.getIoType() == 1) {
             taskWrk.setWrkSts(2);
             if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
                 taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
@@ -1354,6 +1536,5 @@
         }
         return taskWrk;
     }
-
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index e0d0f53..f2d45cb 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -51,47 +51,51 @@
     private BasDevpService basDevpService;
 
 
-
     @Value("${wms.url}")
     private String wmsUrl;
-    public ArrayList<String> wharfCode1 = new ArrayList<String>(){{
-        add("J-1101"); add("J-1103"); add("J-1105"); add("J-1107"); add("J-1109"); add("J-1111");add("H-1101");
+    public ArrayList<String> wharfCode1 = new ArrayList<String>() {{
+        add("J-1101");
+        add("J-1103");
+        add("J-1105");
+        add("J-1107");
+        add("J-1109");
+        add("J-1111");
+        add("H-1101");
         add("G-1101");
     }};
 
 
-
     @Override
-    public R taskCreate(TaskCreateParam param) {
+    public HashMap<String, Object> taskCreate(TaskCreateParam param) {
+        HashMap<String,Object> map=new HashMap<>();
         TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
         if (taskWrk != null) {
-            throw new CoolException(param.getTaskNo() + "浠诲姟宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
-        }
-        if (param.getIoType().equals(0)){
-            throw new CoolException("鐢熸垚浠诲姟澶辫触锛屼换鍔$被鍨嬩笉瀛樺湪锛�");
+            map.put("Code","0");
+            map.put("Msg",param.getTaskNo()+"浠诲姟宸茬粡鐢熸垚锛�");
+            return map;
         }
 
         Date now = new Date();
         taskWrk = new TaskWrk();
-        LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",param.getStartPoint()));
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getStartPoint()));
         int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
         taskWrk.setTaskNo(param.getTaskNo());//浠诲姟鍙�
         taskWrk.setWrkNo(workNo1);
         taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
         taskWrk.setCreateTime(now);
-        try{
-            if (param.getIoType()>1){
-                if (Utils.locNoRowBoolean(locMast.getRow1())){
+        try {
+            if (param.getIoType() > 1) {
+                if (Utils.locNoRowBoolean(locMast.getRow1())) {
                     param.setTaskPriority(11);
                 }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
         }
         taskWrk.setIoType(param.getIoType());//浠诲姟绫诲瀷
         taskWrk.setIoPri(param.getTaskPriority());//浼樺厛绾�
         taskWrk.setBarcode(param.getBarcode());//鏉$爜
         taskWrk.setCrnNo(locMast.getCrnNo());
-        if(param.getIoType() == 1){
+        if (param.getIoType() == 1) {
             taskWrk.setWrkSts(1);
             if (!Cools.isEmpty(param.getTargetPoint())) {
                 taskWrk.setTargetPoint(Utils.getWcsLocNo(param.getTargetPoint()));//缁堢偣
@@ -105,7 +109,7 @@
                 taskWrk.setTargetPoint(param.getTargetPoint());
             }
             taskWrk.setTargetPoint(param.getTargetPoint());
-        }else if (param.getIoType() == 3){
+        } else if (param.getIoType() == 3) {
             taskWrk.setWrkSts(11);
             if (!Cools.isEmpty(param.getStartPoint())) {
                 taskWrk.setStartPoint(param.getStartPoint());//璧风偣
@@ -114,26 +118,29 @@
         }
 
 
-
         if (!Cools.isEmpty(param.getMemo())) {
             taskWrk.setMemo(param.getMemo());//澶囨敞
         }
 
         if (!taskWrkService.insert(taskWrk)) {
-            return R.error("鍒涘缓浠诲姟澶辫触");
+            map.put("Code","0");
+            map.put("Msg",param.getTaskNo()+"鍒涘缓浠诲姟澶辫触锛�");
+            return map;
         }
-        return R.ok();
+        map.put("Code","1");
+        map.put("Msg","ok");
+        return map;
     }
 
     @Override
     public R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException {
         ToWmsDTO toWmsDTO = new ToWmsDTO();
         Map<String, Object> map = new HashMap<>();
-        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
+        map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
         List<Integer> list = new ArrayList<>();
-        if (param.getWharfSource().contains("J")){
+        if (param.getWharfSource().contains("J")) {
             list = getInEnableRoadway();
-        }else {
+        } else {
             list = getInEnableRoadway2();
         }
 
@@ -153,19 +160,19 @@
                     .setJson(JSON.toJSONString(toWmsDTO))
                     .build()
                     .doPost();
-        }catch (Exception e){
-            return R.error("wms杩炴帴澶辫触"+e.getMessage());
+        } catch (Exception e) {
+            return R.error("wms杩炴帴澶辫触" + e.getMessage());
         }
 
         JSONObject jsonObject = JSON.parseObject(response);
 
         apiLogService.save("wms璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
-                ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
-                ,null
-                ,"127.0.0.1"
-                ,JSON.toJSONString(toWmsDTO)
-                ,response
-                ,true
+                , wmsUrl + "wcsManager/wcsInterface/inboundTaskApply"
+                , null
+                , "127.0.0.1"
+                , JSON.toJSONString(toWmsDTO)
+                , response
+                , true
         );
 
         if (jsonObject.getInteger("code").equals(200)) {
@@ -176,31 +183,31 @@
             String msg = null;
             try {
                 taskCreate(new TaskCreateParam(data));
-            }catch (Exception e){
+            } catch (Exception e) {
                 msg = e.getMessage();
             }
-            if (msg != null){
+            if (msg != null) {
                 return R.error(msg);
             }
-            Map<String,String> map1 = new HashMap<>();
+            Map<String, String> map1 = new HashMap<>();
             StaDesc staDesc = new StaDesc();
-            if (param.getWharfSource().contains("J")){
+            if (param.getWharfSource().contains("J")) {
                 staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                        .eq("crn_no",data.getTaskTunnel())
-                        .eq("type_no",1)
-                        .lt("stn_no",200));
-            }else if (param.getWharfSource().contains("H")){
+                        .eq("crn_no", data.getTaskTunnel())
+                        .eq("type_no", 1)
+                        .lt("stn_no", 200));
+            } else if (param.getWharfSource().contains("H")) {
                 staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                        .eq("crn_no",data.getTaskTunnel())
-                        .eq("type_no",1)
-                        .lt("stn_no",400)
-                        .gt("stn_no",200));
-            }else {
+                        .eq("crn_no", data.getTaskTunnel())
+                        .eq("type_no", 1)
+                        .lt("stn_no", 400)
+                        .gt("stn_no", 200));
+            } else {
                 staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                        .eq("crn_no",data.getTaskTunnel())
-                        .eq("type_no",1)
-                        .lt("stn_no",500)
-                        .ge("stn_no",400));
+                        .eq("crn_no", data.getTaskTunnel())
+                        .eq("type_no", 1)
+                        .lt("stn_no", 500)
+                        .ge("stn_no", 400));
             }
             map1.put("taskTunnel", staDesc.getStnDesc());
             //map1.put("taskTunnel", "J-1104");
@@ -215,7 +222,7 @@
         for (DevpSlave devp : slaveProperties.getDevp()) {
             StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                     .eq("stn_desc", param.getWharfCode()));
-            if (Cools.isEmpty(staDesc)){
+            if (Cools.isEmpty(staDesc)) {
                 throw new RuntimeException("鏈煡璇㈠埌绔欑偣淇℃伅");
             }
             // 鑾峰彇鍏ュ簱绔欎俊鎭�
@@ -227,11 +234,11 @@
                 staProtocol = staProtocol.clone();
             }
             Short workNo = staProtocol.getWorkNo();
-            if (wharfCode1.contains(param.getWharfCode())){
-                if (!staProtocol.isLoading() && !staProtocol.isCar() && staProtocol.getWorkNo() >0){
+            if (wharfCode1.contains(param.getWharfCode())) {
+                if (!staProtocol.isLoading() && !staProtocol.isCar() && staProtocol.getWorkNo() > 0) {
                     //AGV鍑哄簱瀹屾垚浠ュ悗
                     staProtocol.setWorkNo((short) 0);
-                    staProtocol.setStaNo((short)0);
+                    staProtocol.setStaNo((short) 0);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
                     if (result) {
 
@@ -239,11 +246,11 @@
                         throw new RuntimeException("agv杩斿洖瀹屾垚鍚庯紝鍛戒护涓嬪彂澶辫触");
                     }
                 }
-            }else {
+            } else {
                 for (DevpSlave.Sta inSta : devp.getInSta()) {
-                    if (inSta.getBackSta().equals(staDesc.getStnNo())){
+                    if (inSta.getBackSta().equals(staDesc.getStnNo())) {
 
-                        if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0){
+                        if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0) {
                             //AGV鍏ュ簱瀹屾垚浠ュ悗
                             staProtocol.setWorkNo((short) 9999);
                             staProtocol.setStaNo(inSta.getStaNo().shortValue());
@@ -265,14 +272,14 @@
     @Override
     public R getAgvPickAndPlaceV1(TaskOverParam param) {
         BasDevp basDevp = basDevpService.selectById(param.getStaNo());
-        if (Cools.isEmpty(basDevp)){
-            return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo());
+        if (Cools.isEmpty(basDevp)) {
+            return R.error("绔欑偣鍙锋湁璇�" + param.getStaNo());
         }
-        if (param.getType()==0 && basDevp.getAgvStartPick()==1){
+        if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) {
             return R.ok();
-        }else if (param.getType()==1 && basDevp.getAgvStartPlace()==1){
+        } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) {
             return R.ok();
-        }else {
+        } else {
             return R.error("涓嶅厑璁�");
         }
     }
@@ -280,32 +287,32 @@
     @Override
     public R getAgvPickAndPlaceV2(TaskOverParam param) {
         BasDevp basDevp = basDevpService.selectById(param.getStaNo());
-        if (Cools.isEmpty(basDevp)){
-            return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo());
+        if (Cools.isEmpty(basDevp)) {
+            return R.error("绔欑偣鍙锋湁璇�" + param.getStaNo());
         }
-        if (param.getType()==0){
+        if (param.getType() == 0) {
             basDevp.setAgvTargetPick(1);
             basDevpService.updateById(basDevp);
             return R.ok();
-        }else if (param.getType()==1){
+        } else if (param.getType() == 1) {
             basDevp.setAgvTargetPlace(1);
             basDevpService.updateById(basDevp);
             return R.ok();
-        }else {
-            return R.error("璇锋眰绫诲瀷寮傚父"+param.getType());
+        } else {
+            return R.error("璇锋眰绫诲瀷寮傚父" + param.getType());
         }
     }
 
-    public List<Integer> getInEnableRoadway(){
+    public List<Integer> getInEnableRoadway() {
         int[] roadway = null;
         List<Integer> list = new ArrayList<>();
-        Map<Integer,Integer> map = new HashMap<>();
-        map.put(103,1);
-        map.put(107,2);
-        map.put(111,3);
-        map.put(115,4);
-        map.put(119,5);
-        map.put(123,6);
+        Map<Integer, Integer> map = new HashMap<>();
+        map.put(103, 1);
+        map.put(107, 2);
+        map.put(111, 3);
+        map.put(115, 4);
+        map.put(119, 5);
+        map.put(123, 6);
         //put(301,7);
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -320,11 +327,11 @@
                     staProtocol = staProtocol.clone();
                 }
                 Short workNo = staProtocol.getWorkNo();
-                if (workNo == 0 && !staProtocol.isLoading()){
-                    if (Cools.isEmpty( map.get(inSta.getStaNo()))){
+                if (workNo == 0 && !staProtocol.isLoading()) {
+                    if (Cools.isEmpty(map.get(inSta.getStaNo()))) {
                         continue;
                     }
-                    list.add( map.get(inSta.getStaNo()));
+                    list.add(map.get(inSta.getStaNo()));
                 }
             }
         }
@@ -332,16 +339,16 @@
         return list;
     }
 
-    public List<Integer> getInEnableRoadway2(){
+    public List<Integer> getInEnableRoadway2() {
         int[] roadway = null;
         List<Integer> list = new ArrayList<>();
-        Map<Integer,Integer> map = new HashMap<>();
-        map.put(205,1);
-        map.put(211,2);
-        map.put(217,3);
-        map.put(223,4);
-        map.put(229,5);
-        map.put(235,6);
+        Map<Integer, Integer> map = new HashMap<>();
+        map.put(205, 1);
+        map.put(211, 2);
+        map.put(217, 3);
+        map.put(223, 4);
+        map.put(229, 5);
+        map.put(235, 6);
         //put(301,7);
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -356,11 +363,11 @@
                     staProtocol = staProtocol.clone();
                 }
                 Short workNo = staProtocol.getWorkNo();
-                if (workNo == 0 && !staProtocol.isLoading()){
-                    if (Cools.isEmpty( map.get(inSta.getStaNo()))){
+                if (workNo == 0 && !staProtocol.isLoading()) {
+                    if (Cools.isEmpty(map.get(inSta.getStaNo()))) {
                         continue;
                     }
-                    list.add( map.get(inSta.getStaNo()));
+                    list.add(map.get(inSta.getStaNo()));
                 }
             }
         }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index e07050c..4df73f7 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,10 +1,23 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.*;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+import java.util.HashMap;
+import java.util.concurrent.TimeUnit;
+@Slf4j
 @Service
 public class WorkServiceImpl implements WorkService {
 
@@ -20,146 +33,179 @@
     private WrkDetlLogService wrkDetlLogService;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Value("${wms.url}")
+    private String wmsUrl;
+    @Value("${wms.inboundTaskApplyPath}")
+    private String inboundTaskApplyPath;
+    @Value("${wms.movePath}")
+    private String movePath;
+    @Value("${wms.taskStatusFeedbackPath}")
+    private String taskStatusFeedbackPath;
 
     @Override
     @Transactional
     public void completeWrkMast(String workNo, Long userId) {
-//        WrkMast wrkMast = wrkMastService.selectById(workNo);
-//        WmsWrk wmsWrk = wmsWrkService.selectByTaskNo(wrkMast.getWmsWrkNo());
-//        if (Cools.isEmpty(wrkMast, wmsWrk)) {
-//            throw new CoolException(workNo + "浠诲姟涓嶅瓨鍦�");
-//        }
-//        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
-//            throw new CoolException("褰撳墠浠诲姟宸插畬鎴�");
-//        }
-//        // 鍏ュ簱 + 搴撲綅杞Щ
-//        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
-//            wrkMast.setWrkSts(4L);
-//            // 鍑哄簱
-//        } else if (wrkMast.getWrkSts() > 10) {
-//            wrkMast.setWrkSts(14L);
-//        }
-//        Date now = new Date();
-//        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
-//        wrkMast.setCrnEndTime(now);
-//        wrkMast.setModiTime(now);
-//        wrkMast.setModiUser(userId);
-//        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
-//        wrkMast.setManuType("鎵嬪姩瀹屾垚");
-//
-//        wmsWrk.setStatus(WmsStatusType.COMPLETE.id);
-//        wmsWrk.setModiUser(userId);
-//        wmsWrk.setModiTime(now);
-//        wmsWrk.setCompleteTime(now);
-//        if (!wrkMastService.updateById(wrkMast) || !wmsWrkService.updateById(wmsWrk)) {
-//            throw new CoolException("淇敼浠诲姟澶辫触");
-//        }
+        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+        }
+        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+            throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+        }
+        // 鍏ュ簱 + 搴撲綅杞Щ
+        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
+            wrkMast.setWrkSts(4L);
+            // 鍑哄簱
+        } else if (wrkMast.getWrkSts() > 10) {
+            wrkMast.setWrkSts(14L);
+        }
+        Date now = new Date();
+        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+        wrkMast.setCrnEndTime(now);
+        wrkMast.setModiTime(now);
+        wrkMast.setModiUser(userId);
+        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+        wrkMast.setManuType("鎵嬪姩瀹屾垚");
+        if (!wrkMastService.updateById(wrkMast)) {
+            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+        }
+
+        HashMap<String,Object> headParam = new HashMap<>();
+        headParam.put("TaskNo",wrkMast.getTaskNo());
+        headParam.put("Result",0);//瀹屾垚
+
+        try {
+            String response;
+            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms={}", wrkMast);
+
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(wmsUrl)
+                    .setPath(taskStatusFeedbackPath)
+                    .setJson(JSON.toJSONString(headParam))
+                    .build()
+                    .doPost();
+            apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
+                    , wmsUrl + taskStatusFeedbackPath
+                    , null
+                    , "127.0.0.1"
+                    , JSON.toJSONString(headParam)
+                    , response
+                    , true
+            );
+        } catch (Exception e) {
+            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触={}", wrkMast);
+            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+//                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+        }
     }
 
     @Override
     @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
-//        Date now = new Date();
-//        WrkMast wrkMast = wrkMastService.selectById(workNo);
-//        WmsWrk wmsWrk = wmsWrkService.selectByWmsWrkNo(wrkMast.getWmsWrkNo());
-//        if (Cools.isEmpty(wrkMast, wmsWrk)) {
-//            throw new CoolException(workNo + "浠诲姟涓嶅瓨鍦�");
-//        }
-//
-//        String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
-//        String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
-//        // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-//        if (wrkMast.getWrkSts() < 4) {
-//            locNo = wrkMast.getLocNo();
-//            locSts = "O";
-//
-//            // 搴撲綅杞Щ
-//            if (wrkMast.getIoType() == 11) {
-//                // 搴撲綅杞Щ锛氭簮搴撲綅
-//                LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
-//                if (Cools.isEmpty(locMast)) {
-//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
-//                }
-//                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F");
-//                locMast.setModiTime(now);
-//                locMast.setModiUser(userId);
-//                locMastService.updateById(locMast);
-//            }
-//            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-//        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
-//            locNo = wrkMast.getSourceLocNo();
-//            // 鍑哄簱 ===>> F.鍦ㄥ簱
-//            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
-//                locSts = "F";
-//                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
-//            } else if (wrkMast.getIoType() == 110) {
-//                locSts = "D";
-//                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
-//            } else if (wrkMast.getIoType() == 11) {
-//                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
-//                // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
-//                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-//                if (Cools.isEmpty(locMast)) {
-//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
-//                }
-//                locMast.setLocSts("O");
-//                locMast.setModiTime(now);
-//                locMast.setModiUser(userId);
-//                locMastService.updateById(locMast);
-//            }
-//        } else {
-//            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
-//        }
-//
-//        //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
-//        if(wrkMast.getIoType() == 1) {
-//            List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-//            for (WaitPakin waitPakin:waitPakins){
-//                if (!Cools.isEmpty(waitPakin)) {
-//                    waitPakin.setIoStatus("N");
-//                    waitPakin.setLocNo("");
-//                    waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
-//                            .eq("order_no", waitPakin.getOrderNo())
-//                            .eq("matnr", waitPakin.getMatnr())
-//                            .eq("batch", waitPakin.getBatch()));
-//                }
-//            }
-//        }
-//
-//        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
-//        wrkMast.setManuType("鎵嬪姩鍙栨秷");
-//        wrkMast.setModiUser(userId);
-//        wrkMast.setModiTime(now);
-//        if (!wrkMastService.updateById(wrkMast)) {
-//            throw new CoolException("鍙栨秷浠诲姟澶辫触");
-//        }
-//
-//        wmsWrk.setStatus(WmsStatusType.CANCEL.id);
-//        wmsWrk.setModiUser(userId);
-//        wmsWrk.setModiTime(now);
-//        wmsWrk.setCancelTime(now);
-//        if (!wmsWrkService.updateById(wmsWrk)) {
-//            throw new CoolException("鍙栨秷浠诲姟澶辫触");
-//        }
-//
-//        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-//        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
-//            throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
-//        }
-//        // 鍒犻櫎宸ヤ綔涓绘。
-//        boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
-//
-//        // 淇敼搴撲綅鐘舵��
-//        LocMast locMast = locMastService.selectById(locNo);
-//        if (Cools.isEmpty(locMast)) {
-//            throw new CoolException("鍙栨秷浠诲姟澶辫触锛屽簱浣嶄笉瀛樺湪:"+ locNo);
-//        }
-//        locMast.setLocSts(locSts);
-//        locMast.setModiTime(now);
-//        locMast.setModiUser(userId);
-//        boolean locMastRes = locMastService.updateById(locMast);
-//        if (!wrkMastRes || !locMastRes) {
-//            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
-//        }
+        Date now = new Date();
+        WrkMast wrkMast = wrkMastService.selectById(workNo);
+
+        String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
+        String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+        // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
+        if (wrkMast.getWrkSts() < 4) {
+            locNo = wrkMast.getLocNo();
+            locSts = "O";
+
+            // 搴撲綅杞Щ
+            if (wrkMast.getIoType() == 11) {
+                // 搴撲綅杞Щ锛氭簮搴撲綅
+                LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+                if (Cools.isEmpty(locMast)) {
+                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
+                }
+                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
+                locMast.setModiTime(now);
+                locMast.setModiUser(userId);
+                locMastService.updateById(locMast);
+            }
+            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+            locNo = wrkMast.getSourceLocNo();
+            // 鍑哄簱 ===>> F.鍦ㄥ簱
+            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
+                locSts = "F";
+                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+            } else if (wrkMast.getIoType() == 110) {
+                locSts = "D";
+                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+            } else if (wrkMast.getIoType() == 11) {
+                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
+                // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
+                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                if (Cools.isEmpty(locMast)) {
+                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
+                }
+                locMast.setLocSts("O");
+                locMast.setModiTime(now);
+                locMast.setModiUser(userId);
+                locMastService.updateById(locMast);
+            }
+        } else {
+            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
+        }
+        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+        wrkMast.setManuType("鎵嬪姩鍙栨秷");
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.updateById(wrkMast)) {
+            throw new CoolException("鍙栨秷浠诲姟澶辫触");
+        }
+        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+            throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+        }
+
+        // 鍒犻櫎宸ヤ綔涓绘。
+        boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
+
+        // 淇敼搴撲綅鐘舵��
+        LocMast locMast = locMastService.selectById(locNo);
+        if (Cools.isEmpty(locMast)) {
+            throw new CoolException("鍙栨秷浠诲姟澶辫触锛屽簱浣嶄笉瀛樺湪:" + locNo);
+        }
+        locMast.setLocSts(locSts);
+        locMast.setModiTime(now);
+        locMast.setModiUser(userId);
+        boolean locMastRes = locMastService.updateById(locMast);
+        if (!wrkMastRes || !locMastRes) {
+            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+        }
+        HashMap<String,Object> headParam = new HashMap<>();
+        headParam.put("TaskNo",wrkMast.getTaskNo());
+        headParam.put("Result",1);//鍙栨秷
+
+        try {
+            String response;
+            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms={}", wrkMast);
+
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(wmsUrl)
+                    .setPath(taskStatusFeedbackPath)
+                    .setJson(JSON.toJSONString(headParam))
+                    .build()
+                    .doPost();
+            apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
+                    , wmsUrl + taskStatusFeedbackPath
+                    , null
+                    , "127.0.0.1"
+                    , JSON.toJSONString(headParam)
+                    , response
+                    , true
+            );
+        } catch (Exception e) {
+            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={}", wrkMast);
+            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+//                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+        }
     }
 }
diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
index 8463ff2..3e48136 100644
--- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -51,10 +51,18 @@
     private String wmsUrl;
     @Value("${wms.movePath}")
     private String movePath;
+    @Value("${wms.inboundTaskApplyPath}")
+    private String inboundTaskApplyPath;
+    @Value("${wms.TaskExecCallback}")
+    private String TaskExecCallback;
+    @Value("${wms.taskStatusFeedbackPath}")
+    private String taskStatusFeedbackPath;
 
     @Scheduled(cron = "0/3 * * * * ? ")
     public void execute() throws IOException {
+
         for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
+            HashMap<String, Object> headParam = new HashMap<>();
             if (taskWrk.getStatus().equals(TaskStatusType.OVER.id)||taskWrk.getStatus()==7) {//瀹屾垚
                 //鍖哄垎鍏ュ嚭搴�
                 TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
@@ -64,6 +72,7 @@
                 if (!taskWrkService.deleteById(taskWrk)) {
                     throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog);
                 }
+                headParam.put("Result", 1);
             } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) {
                 TaskWrkLog taskWrkLog=new TaskWrkLog(taskWrk);
                 if(!wrkLogService.insert(taskWrkLog)){
@@ -72,6 +81,34 @@
                 if(!taskWrkService.deleteById(taskWrk)){
                     throw new CoolException("浠诲姟妗e垹闄ゅけ璐�"+taskWrkLog);
                 }
+                headParam.put("Result", 2);
+            }
+            String response = "";
+            try {
+                headParam.put("TaskNo", taskWrk.getTaskNo());
+                log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
+                response = new HttpHandler.Builder()
+                        // .setHeaders(headParam)
+                        .setUri(wmsUrl)
+                        .setPath(TaskExecCallback)
+                        .setJson(JSON.toJSONString(headParam))
+                        .build()
+                        .doPost();
+                JSONObject jsonObject = JSON.parseObject(response);
+                Boolean bool = false;
+                if(jsonObject.get("ReturnStatus").equals(0)){
+                    bool = true;
+                }
+                apiLogService.save("wcs瀹屾垚鎴栬�呭彇娑堜换鍔′笂鎶ms"
+                        , wmsUrl + TaskExecCallback
+                        , null
+                        , "127.0.0.1"
+                        , JSON.toJSONString(headParam)
+                        , response
+                        , bool
+                );
+            } catch (Exception e) {
+                log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response);
             }
 
         }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index eda8910..91ae550 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -426,4 +426,20 @@
         }
     }
 
+    public static String Fusion(int x, int y, int z){
+        String locNo="0"+x;
+        if(z>=10){
+            locNo=locNo+"0"+z;
+        }else{
+            locNo=locNo+"00"+z;
+        }
+        if(y>=10){
+            locNo=locNo+y;
+        }else {
+            locNo=locNo+"0"+y;
+        }
+
+        return locNo;
+    }
+
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 93c01fd..91070ff 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -46,7 +46,7 @@
                     // 婕旂ず
 //                    mainService.crnDemoOfLocMove1();
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
-                    mainService.generateStoreWrkFile(); // 缁勬墭
+                    mainService.generateStoreWrkFile1(); // 缁勬墭
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
                     mainService.crnStnToOutStn();
                     // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
@@ -73,7 +73,7 @@
                     //鑷姩瀹屾垚浠诲姟
 //                    mainService.autoCompleteTask();
                     //agv鍙栨斁璐у畬鎴�
-                    mainService.autoCompleteAGV();
+//                    mainService.autoCompleteAGV();
 
                 } catch (Exception e) {
                     e.printStackTrace();
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index c3012bf..4182f70 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -197,8 +197,8 @@
         basDevp.setLocType3((short) 0);  // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
         basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
         basDevp.setInQty(inQty !=null ?(int)inQty : 0);
-        basDevp.setAgvStartPick(agvStartPick.intValue());
-        basDevp.setAgvStartPlace(agvStartPlace.intValue());
+//        basDevp.setAgvStartPick(agvStartPick.intValue());
+//        basDevp.setAgvStartPlace(agvStartPlace.intValue());
         return basDevp;
     }
 
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 6e394fd..b0cd878 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -83,7 +83,7 @@
                         break;
                     // 鍐欏叆鏁版嵁
                     case 2:
-                        write2((CrnCommand) task.getData());
+                        write5((CrnCommand) task.getData());
                         break;
                     // 澶嶄綅
                     case 3:
@@ -341,11 +341,7 @@
 
         command.setCrnNo(slave.getId());
         short[] array = new short[10];
-        if (Cools.isEmpty(command.getAckFinish())) {
-            array[0] = 5;
-        } else {
-            array[0] = command.getAckFinish();
-        }
+        array[0] = command.getAckFinish();
         array[1] = command.getTaskNo();
         array[2] = command.getTaskMode();
         array[3] = command.getSourcePosX();
@@ -359,79 +355,110 @@
         // 浣滀笟淇℃伅
         OperateResult result = siemensNet.Write("DB100.0", array);
 
-        if (command.getAckFinish() != 1) {
-            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
-            BasCrnOpt basCrnOpt = new BasCrnOpt(
-                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
-                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
-                    new Date(),    // 涓嬪彂鏃堕棿
-                    command.getTaskModeType() == null ? null : command.getTaskModeType().toString(),    // 妯″紡
-                    command.getSourcePosZ().intValue(),    // 婧愭帓
-                    command.getSourcePosX().intValue(),    // 婧愬垪
-                    command.getSourcePosY().intValue(),    // 婧愬眰
-                    null,    // 婧愮珯
-                    command.getDestinationPosZ().intValue(),    // 鐩爣鎺�
-                    command.getDestinationPosX().intValue(),    // 鐩爣鍒�
-                    command.getDestinationPosY().intValue(),    // 鐩爣灞�
-                    null,    // 鐩爣绔�
-                    null,    // 鍝嶅簲缁撴灉
-                    null,    // 淇敼鏃堕棿
-                    null    // 淇敼浜哄憳
-            );
-            bean.insert(basCrnOpt);
-        }
 
         if (result.IsSuccess) {
-//            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
-//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-//            return true;
+            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
             log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             return false;
         }
+    }
 
+    /**
+     * 鍐欏叆鏁版嵁
+     */
+    private boolean write5(CrnCommand command) throws InterruptedException {
+        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
 
-        try{
+        if (null == command) {
+            log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            return false;
+        }
+//        convertRow(command);
+        command.setCrnNo(slave.getId());
+        short[] array = new short[10];
+        array[0] = command.getAckFinish();
+        array[1] = command.getTaskNo();
+        array[2] = command.getTaskMode();
+        array[3] = command.getSourcePosX();
+        array[4] = command.getSourcePosY();
+        array[5] = command.getSourcePosZ();
+        array[6] = command.getDestinationPosX();
+        array[7] = command.getDestinationPosY();
+        array[8] = command.getDestinationPosZ();
+//        array[9] = command.getSourceStaNo();
+//        array[10] = command.getDestinationStaNo();
+        array[9] = command.getCommand();
+
+        OperateResult result = siemensNet.Write("DB100.0", array);
+
+        int i=0;
+        do{
             //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-            Thread.sleep(500);
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+            Thread.sleep(200);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
             if (resultRead.IsSuccess) {
                 CrnCommand one = new CrnCommand();
-                one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
                 one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-                //one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
                 one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
                 one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
                 one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
                 one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
                 one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
                 one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
-//                one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
-//                one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
-                if (!one.getTaskNo().equals(array[1]) || !one.getAckFinish().equals(array[0])
-                        || !one.getSourcePosZ().equals(array[5]) ||  !one.getSourcePosX().equals(array[3])
-                        || !one.getSourcePosY().equals(array[4])
-                        || !one.getDestinationPosZ().equals(array[8]) ||  !one.getDestinationPosX().equals(array[6])
-                        || !one.getDestinationPosY().equals(array[7])
+                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
                 ){
-                    log.error("浼犲弬==鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                    log.error("瀹炲彂==鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
-                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, crnCommand));
-                    Thread.sleep(100);
-                    readStatus();
-                    return false;
-                } else {
-                    log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                    OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+                    i++;
+                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
+                    result = siemensNet.Write("DB100.0", array);
+                }else{
+                    i=5;
                 }
             }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
-            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�:寮傚父淇℃伅锛�"+e);
+        }while(i<5);
+
+
+        try {
+            // 鏃ュ織璁板綍
+            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+            BasCrnOpt basCrnOpt = new BasCrnOpt(
+                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+                    new Date(),    // 涓嬪彂鏃堕棿
+                    command.getTaskModeType().toString(),    // 妯″紡
+                    command.getSourcePosX().intValue(),    // 婧愭帓
+                    command.getSourcePosY().intValue(),    // 婧愬垪
+                    command.getSourcePosZ().intValue(),    // 婧愬眰
+                    null,    // 婧愮珯
+                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+                    null,    // 鐩爣绔�
+                    null,    // 鍝嶅簲缁撴灉
+                    null,    // 淇敼鏃堕棿
+                    null    // 淇敼浜哄憳
+            );
+            bean.insert(basCrnOpt);
+        } catch (Exception ignore) {}
+
+        if (result != null && result.IsSuccess) {
+            Thread.sleep(200);
+            this.readStatus();
+            log.info(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
+        } else {
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            log.error(methodName + ":鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            return false;
         }
-        return true;
     }
 
     /**
@@ -514,27 +541,7 @@
         }
         CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
         commandInfoLog.setId(null);
-//        CommandInfoLog commandInfoLog = new CommandInfoLog();
-//        if (commandInfo != null) {
-//            commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
-//            commandInfoLog.setId(null);
-//        }else {
-//            Date now = new Date();
-//            commandInfoLog.setCommand(JSON.toJSONString(command));
-//            commandInfoLog.setCommandStatus(3);
-//            commandInfoLog.setStartTime(now);
-//            commandInfoLog.setExecuteTime(now);
-//            commandInfoLog.setCompleteTime(now);
-//            commandInfoLog.setDevice(SlaveType.Devp.toString());
-//            commandInfoLog.setWrkNo(9999);
-//            commandInfoLog.setTaskNo("9999");
-//            commandInfoLog.setCommandDesc("鎵嬪姩鍛戒护");
-//        }
-
-
         if (result.IsSuccess) {
-//            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
-
             Date now = new Date();
             //鏇存柊鎸囦护鏃ュ織
             commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
@@ -560,73 +567,6 @@
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
             log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-
-            //鏇存柊鎸囦护鏃ュ織
-            commandInfoLog.setDeviceLog("鎸囦护涓嬪彂澶辫触");
-            commandInfoLogService.insert(commandInfoLog);
-            return false;
-        }
-        try{
-            //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-            Thread.sleep(500);
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
-            /*
-            *
-            *  if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
-            command.setTaskNo((short) 999);
-        }
-
-        command.setCrnNo(slave.getId());
-        short[] array = new short[10];
-        if (Cools.isEmpty(command.getAckFinish())) {
-            array[0] = 5;
-        } else {
-            array[0] = command.getAckFinish();
-        }
-        array[1] = command.getTaskNo();
-        array[2] = command.getTaskMode();
-        array[3] = command.getSourcePosX();
-        array[4] = command.getSourcePosY();
-        array[5] = command.getSourcePosZ();
-        array[6] = command.getDestinationPosX();
-        array[7] = command.getDestinationPosY();
-        array[8] = command.getDestinationPosZ();
-        array[9] = command.getCommand();
-        // 浣滀笟淇℃伅
-        OperateResult result = siemensNet.Write("DB100.0", array);
-            * */
-            if (resultRead.IsSuccess) {
-                CrnCommand one = new CrnCommand();
-                one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
-                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-                //one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
-                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
-                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
-                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
-                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
-                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
-                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
-//                one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
-//                one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
-                if (!one.getTaskNo().equals(array[1]) || !one.getAckFinish().equals(array[0])
-                        || !one.getSourcePosZ().equals(array[5]) ||  !one.getSourcePosX().equals(array[3])
-                        || !one.getSourcePosY().equals(array[4])
-                        || !one.getDestinationPosZ().equals(array[8]) ||  !one.getDestinationPosX().equals(array[6])
-                        || !one.getDestinationPosY().equals(array[7])
-                ){
-                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
-                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, crnCommand));
-                    Thread.sleep(100);
-                    readStatus();
-                    return false;
-                } else {
-                    log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                    OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-                }
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
         }
         return true;
     }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 7a914aa..a8f5b06 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -48,7 +48,12 @@
     private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
     private short heartBeatVal = 1;
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
-        add(100);add(101);add(102);add(103);add(104);add(105);add(106);add(107);
+        add(100);add(101);add(102);add(103);add(104);
+        add(105);add(106);add(107);add(108);add(109);
+        add(110);add(111);add(112);add(113);add(114);
+        add(115);add(116);add(117);add(118);add(119);
+        add(120);add(121);add(122);add(123);add(124);
+        add(125);add(1001);add(1002);add(1003);add(1004);
     }};
     /*public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
         add(200);add(201);add(202);add(203);
@@ -73,7 +78,7 @@
     /**
      * 鏉$爜鏁伴噺
      */
-    private int barcodeSize = 7;
+    private int barcodeSize = 1;
 
     /**
      * 鍏ュ嚭搴撴ā寮�
@@ -234,79 +239,79 @@
             }
         }
 
-        OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30);
-        if (resultAgvAndPlc.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
-                int sign =(i+2)/2-1;
-                if ((i+2)%2!=0){
-                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                    StaProtocol staProtocol = station.get(siteId);
-                    if (null == staProtocol) {
-                        staProtocol = new StaProtocol();
-                        staProtocol.setSiteId(siteId);
-                        station.put(siteId, staProtocol);
-                    }
-                    staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4));     // 鍏佽鍙栬揣
-                    staProtocol.setAgvStartPlace((short)0);   // 鍏佽鏀捐揣
-                    continue;
-                }
-                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                StaProtocol staProtocol = station.get(siteId);
-                if (null == staProtocol) {
-                    staProtocol = new StaProtocol();
-                    staProtocol.setSiteId(siteId);
-                    station.put(siteId, staProtocol);
-                }
-                staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6));     // 鍏佽鍙栬揣
-                staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2));   // 鍏佽鏀捐揣
-            }
-        }
+//        OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30);
+//        if (resultAgvAndPlc.IsSuccess) {
+//            for (int i = 0; i < staNoSize; i++) {
+//                int sign =(i+2)/2-1;
+//                if ((i+2)%2!=0){
+//                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                    StaProtocol staProtocol = station.get(siteId);
+//                    if (null == staProtocol) {
+//                        staProtocol = new StaProtocol();
+//                        staProtocol.setSiteId(siteId);
+//                        station.put(siteId, staProtocol);
+//                    }
+//                    staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4));     // 鍏佽鍙栬揣
+//                    staProtocol.setAgvStartPlace((short)0);   // 鍏佽鏀捐揣
+//                    continue;
+//                }
+//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                StaProtocol staProtocol = station.get(siteId);
+//                if (null == staProtocol) {
+//                    staProtocol = new StaProtocol();
+//                    staProtocol.setSiteId(siteId);
+//                    station.put(siteId, staProtocol);
+//                }
+//                staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6));     // 鍏佽鍙栬揣
+//                staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2));   // 鍏佽鏀捐揣
+//            }
+//        }
 
-        OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
-        if (resultAgvAndPlcOk.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
-                int sign =(i+2)/2-1;
-                if ((i+2)%2!=0){
-                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                    StaProtocol staProtocol = station.get(siteId);
-                    if (null == staProtocol) {
-                        staProtocol = new StaProtocol();
-                        staProtocol.setSiteId(siteId);
-                        station.put(siteId, staProtocol);
-                    }
-                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4));     // 鍏佽鍙栬揣
-                    staProtocol.setAgvTargetPlace((short)0);   // 鍏佽鏀捐揣
-                    continue;
-                }
-                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                StaProtocol staProtocol = station.get(siteId);
-                if (null == staProtocol) {
-                    staProtocol = new StaProtocol();
-                    staProtocol.setSiteId(siteId);
-                    station.put(siteId, staProtocol);
-                }
-                try{
-                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6));     // 鍙栬揣瀹屾垚
-                    if (staProtocol.getAgvTargetPick()!=0){
-                        System.out.println(staProtocol.getAgvTargetPick());
-                    }
-                    staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2));   // 鏀捐揣瀹屾垚
-                    if (staProtocol.getAgvTargetPlace()!=0){
-                        System.out.println(staProtocol.getAgvTargetPlace());
-                    }
-                }catch (Exception e){
-                    log.error(""+e);
-                }
-            }
-        }
+//        OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
+//        if (resultAgvAndPlcOk.IsSuccess) {
+//            for (int i = 0; i < staNoSize; i++) {
+//                int sign =(i+2)/2-1;
+//                if ((i+2)%2!=0){
+//                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                    StaProtocol staProtocol = station.get(siteId);
+//                    if (null == staProtocol) {
+//                        staProtocol = new StaProtocol();
+//                        staProtocol.setSiteId(siteId);
+//                        station.put(siteId, staProtocol);
+//                    }
+//                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4));     // 鍏佽鍙栬揣
+//                    staProtocol.setAgvTargetPlace((short)0);   // 鍏佽鏀捐揣
+//                    continue;
+//                }
+//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                StaProtocol staProtocol = station.get(siteId);
+//                if (null == staProtocol) {
+//                    staProtocol = new StaProtocol();
+//                    staProtocol.setSiteId(siteId);
+//                    station.put(siteId, staProtocol);
+//                }
+//                try{
+//                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6));     // 鍙栬揣瀹屾垚
+//                    if (staProtocol.getAgvTargetPick()!=0){
+//                        System.out.println(staProtocol.getAgvTargetPick());
+//                    }
+//                    staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2));   // 鏀捐揣瀹屾垚
+//                    if (staProtocol.getAgvTargetPlace()!=0){
+//                        System.out.println(staProtocol.getAgvTargetPlace());
+//                    }
+//                }catch (Exception e){
+//                    log.error(""+e);
+//                }
+//            }
+//        }
 
 
         if (slave.getId() == 1) {
             //鏉$爜
             //Thread.sleep(200);
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840.0", (short) 32);
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
             if (result2.IsSuccess) {
-                for (int i = 0; i < 4; i++) {
+                for (int i = 0; i < 1; i++) {
                     String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                     if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
@@ -315,8 +320,19 @@
                 }
             }
 
+            //澶栧舰妫�娴�
+            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize*1));
+            StaProtocol staProtocol1 = station.get(116);
+            boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1);
+            staProtocol1.setFrontErr(status1[0]);
+            staProtocol1.setBackErr(status1[1]);
+            staProtocol1.setHighErr(status1[2]);
+            staProtocol1.setLeftErr(status1[3]);
+            staProtocol1.setRightErr(status1[4]);
+            staProtocol1.setWeightErr(status1[5]);
+            staProtocol1.setBarcodeErr(status1[6]);
 
-            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) (staNoSize * 4));
+            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
             if (resultErr.IsSuccess) {
                 for (int i = 0; i < staNoSize; i++) {
                     Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 647e2de..9af468b 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -1,522 +1,210 @@
 wcs-slave:
   doubleDeep: true #鍙屾繁
-  doubleLocs: 3,6,7,10,13 #鍙屾繁搴撲綅鎺掑彿 3,6,7,10,13
+  doubleLocs: 1,4,5,8 #鍙屾繁搴撲綅鎺掑彿 1,4,5,8
   groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   crn[0]: #鍫嗗灈鏈�1
+    id: 1
+    ip: 10.10.10.110
+    slot: 0
+    demo: false
     rack: 0
-    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
     port: 102
-    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
-      staNo: 101
+    crnOutStn[0]: #鍫嗗灈鏈哄嚭搴撶珯鐐�
+      staNo: 125
+      row: 3
+      bay: 1
+      lev: 2
+      devpPlcId: ${wcs-slave.devp[0].id}
+    crnInStn[0]: #鍫嗗灈鏈哄叆搴撶珯鐐�1
+      staNo: 100
       row: 2
       bay: 1
-      lev: 1
+      lev: 2
+      backSta: 102
       devpPlcId: ${wcs-slave.devp[0].id}
-    ip: 192.168.1.100
-    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
-      staNo: 100
-      row: 1
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    id: 1
-    slot: 0
-    demo: false
   crn[1]: #鍫嗗灈鏈�2
-    rack: 0
-    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-    port: 102
-    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
-      staNo: 103
-      row: 5
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    ip: 192.168.1.110
-    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
-      staNo: 102
-      row: 4
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
     id: 2
+    ip: 10.10.10.120
     slot: 0
     demo: false
-  barcode[3]: #鏉$爜鎵弿浠�4
-    port: 51236
-    ip: 10.10.10.52
-    id: 4
-  barcode[2]: #鏉$爜鎵弿浠�3
-    port: 51236
-    ip: 10.10.10.52
-    id: 3
-
-  barcode[1]: #鏉$爜鎵弿浠�2
-    port: 51236
-    ip: 10.10.10.52
-    id: 2
-
+    rack: 0
+    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+    port: 102
+    crnOutStn[0]: #鍫嗗灈鏈哄嚭搴撶珯鐐�
+      staNo: 115
+      row: 7
+      bay: 1
+      lev: 2
+      devpPlcId: ${wcs-slave.devp[0].id}
+    crnInStn[0]: #鍫嗗灈鏈哄叆搴撶珯鐐�1
+      staNo: 120
+      row: 6
+      bay: 1
+      lev: 2
+      backSta: 106
+      devpPlcId: ${wcs-slave.devp[0].id}
   devp[0]: #杈撻�佺嚎
-    emptyInSta[2]: #绌烘澘鍏ュ簱鍙�3
-      staNo: 104
-    emptyInSta[1]: #绌烘澘鍏ュ簱鍙�2
-      staNo: 102
+    id: 1
+    ip: 10.10.10.130
     rack: 0
-    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
-      staNo: 100
-    ip: 192.168.1.140
-    outSta[4]: #鍑哄簱鍙�5
-      staNo: 104
-    outSta[3]: #鍑哄簱鍙�4
-      staNo: 103
-    outSta[6]: #鍑哄簱鍙�7
-      staNo: 106
-    slot: 0
-    outSta[5]: #鍑哄簱鍙�6
-      staNo: 105
-    outSta[0]: #鍑哄簱鍙�1
-      staNo: 100
-    outSta[2]: #鍑哄簱鍙�3
-      staNo: 102
-    emptyInSta[3]: #绌烘澘鍏ュ簱鍙�4
-      staNo: 106
-    outSta[1]: #鍑哄簱鍙�2
-      staNo: 101
-    inSta[2]:
-      staNo: 104
-      barcode: ${wcs-slave.barcode[2].id}
-    inSta[3]:
-      staNo: 106
-      barcode: ${wcs-slave.barcode[3].id}
     port: 102
-    outSta[7]: #鍑哄簱鍙�8
-      staNo: 107
+    slot: 0
+    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0
+      staNo: 116
     inSta[0]: #鍏ュ簱鍙�1
-      staNo: 100
+      staNo: 116
+      backSta: 110
       barcode: ${wcs-slave.barcode[0].id}
-    inSta[1]: #鍏ュ簱鍙�2
-      staNo: 102
-      barcode: ${wcs-slave.barcode[1].id}
-    id: 1
-  barcode[0]: #鏉$爜鎵弿浠�1
-    port: 51236
-    ip: 10.10.10.52
-    id: 1
-
-  crn[2]: #鍫嗗灈鏈�3
-    rack: 0
-    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-    port: 102
-    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
+    outSta[0]: #鍑哄簱鍙�1
       staNo: 105
-      row: 9
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    ip: 192.168.1.120
-    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
-      staNo: 104
-      row: 8
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    id: 3
-    slot: 0
-    demo: false
-  crn[3]: #鍫嗗灈鏈�4
-    rack: 0
-    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-    port: 102
-    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
+    outSta[1]: #鍑哄簱鍙�2
       staNo: 107
-      row: 12
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    ip: 192.168.1.130
-    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
-      staNo: 106
-      row: 11
-      bay: 1
-      lev: 1
-      devpPlcId: ${wcs-slave.devp[0].id}
-    id: 4
-    slot: 0
-    demo: false
-
-
+    outSta[2]: #鍑哄簱鍙�2
+      staNo: 109
+    outSta[3]: #鍑哄簱鍙�1
+      staNo: 110
+  barcode[0]: #鏉$爜鎵弿浠�
+    port: 51236
+    ip: 172.17.91.39
+    id: 1
 #  crn[0]: #鍫嗗灈鏈�1
-#    id: 1
-#    ip: 172.17.91.2
-#    slot: 0
-#    demo: false
 #    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+#    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
 #    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
+#    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
+#      staNo: 101
+#      row: 2
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
+#    ip: 192.168.1.100
+#    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
 #      staNo: 100
-#      row: 2
+#      row: 1
 #      bay: 1
 #      lev: 1
 #      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 103
-#      row: 3
-#      bay: 1
-#      lev: 1
-#      backSta: 102
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 200
-#      row: 2
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 205
-#      row: 3
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  crn[1]: #鍫嗗灈鏈�2
-#    id: 2
-#    ip: 172.17.91.7
-#    slot: 0
-#    demo: false
-#    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-#    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 104
-#      row: 5
-#      bay: 1
-#      lev: 1
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 107
-#      row: 6
-#      bay: 1
-#      lev: 1
-#      backSta: 106
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 206
-#      row: 5
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 211
-#      row: 6
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  crn[2]: #鍫嗗灈鏈�3
-#    id: 3
-#    ip: 172.17.91.12
-#    slot: 0
-#    demo: false
-#    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-#    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 108
-#      row: 8
-#      bay: 1
-#      lev: 1
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 111
-#      row: 9
-#      bay: 1
-#      lev: 1
-#      backSta: 110
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 212
-#      row: 8
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 217
-#      row: 9
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  crn[3]: #鍫嗗灈鏈�4
-#    id: 4
-#    ip: 172.17.91.17
-#    slot: 0
-#    demo: false
-#    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-#    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 112
-#      row: 12
-#      bay: 1
-#      lev: 1
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 115
-#      row: 13
-#      bay: 1
-#      lev: 1
-#      backSta: 114
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 218
-#      row: 12
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 223
-#      row: 13
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  crn[4]: #鍫嗗灈鏈�5
-#    id: 5
-#    ip: 172.17.91.22
-#    slot: 0
-#    demo: false
-#    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-#    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 116
-#      row: 16
-#      bay: 1
-#      lev: 1
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 119
-#      row: 17
-#      bay: 1
-#      lev: 1
-#      backSta: 118
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 224
-#      row: 16
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 229
-#      row: 17
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  crn[5]: #鍫嗗灈鏈�6
-#    id: 6
-#    ip: 172.17.91.27
-#    slot: 0
-#    demo: false
-#    rack: 0
-#    offset: 2  #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-#    port: 102
-#    crnOutStn[0]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 120
-#      row: 20
-#      bay: 1
-#      lev: 1
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnInStn[0]:  #鍫嗗灈鏈哄叆搴撶珯鐐�1
-#      staNo: 123
-#      row: 21
-#      bay: 1
-#      lev: 1
-#      backSta: 122
-#      devpPlcId: ${wcs-slave.devp[0].id}
-#    crnOutStn[1]:  #鍫嗗灈鏈哄嚭搴撶珯鐐�
-#      staNo: 230
-#      row: 20
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#    crnInStn[1]:  #鍫嗗灈鏈哄叆搴撶珯鐐�2
-#      staNo: 235
-#      row: 21
-#      bay: 22
-#      lev: 2
-#      devpPlcId: ${wcs-slave.devp[1].id}
-#  devp[0]: #杈撻�佺嚎
 #    id: 1
-#    ip: 172.17.91.36
-#    rack: 0
-#    port: 102
 #    slot: 0
-#    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0
+#    demo: false
+#  crn[1]: #鍫嗗灈鏈�2
+#    rack: 0
+#    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+#    port: 102
+#    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
 #      staNo: 103
-#    emptyInSta[1]: #绌烘澘鍏ュ簱鍙�1
+#      row: 5
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
+#    ip: 192.168.1.110
+#    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
+#      staNo: 102
+#      row: 4
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
+#    id: 2
+#    slot: 0
+#    demo: false
+#  barcode[3]: #鏉$爜鎵弿浠�4
+#    port: 51236
+#    ip: 10.10.10.52
+#    id: 4
+#  barcode[2]: #鏉$爜鎵弿浠�3
+#    port: 51236
+#    ip: 10.10.10.52
+#    id: 3
+#
+#  barcode[1]: #鏉$爜鎵弿浠�2
+#    port: 51236
+#    ip: 10.10.10.52
+#    id: 2
+#
+#  devp[0]: #杈撻�佺嚎
+#    emptyInSta[2]: #绌烘澘鍏ュ簱鍙�3
+#      staNo: 104
+#    emptyInSta[1]: #绌烘澘鍏ュ簱鍙�2
+#      staNo: 102
+#    rack: 0
+#    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
+#      staNo: 100
+#    ip: 192.168.1.140
+#    outSta[4]: #鍑哄簱鍙�5
+#      staNo: 104
+#    outSta[3]: #鍑哄簱鍙�4
+#      staNo: 103
+#    outSta[6]: #鍑哄簱鍙�7
+#      staNo: 106
+#    slot: 0
+#    outSta[5]: #鍑哄簱鍙�6
 #      staNo: 105
-#    emptyInSta[2]: #绌烘澘鍏ュ簱鍙�2
-#      staNo: 109
-#    emptyInSta[3]: #绌烘澘鍏ュ簱鍙�3
-#      staNo: 113
-#    emptyInSta[4]: #绌烘澘鍏ュ簱鍙�4
-#      staNo: 117
-#    emptyInSta[5]: #绌烘澘鍏ュ簱鍙�5
-#      staNo: 121
+#    outSta[0]: #鍑哄簱鍙�1
+#      staNo: 100
+#    outSta[2]: #鍑哄簱鍙�3
+#      staNo: 102
+#    emptyInSta[3]: #绌烘澘鍏ュ簱鍙�4
+#      staNo: 106
+#    outSta[1]: #鍑哄簱鍙�2
+#      staNo: 101
+#    inSta[2]:
+#      staNo: 104
+#      barcode: ${wcs-slave.barcode[2].id}
+#    inSta[3]:
+#      staNo: 106
+#      barcode: ${wcs-slave.barcode[3].id}
+#    port: 102
+#    outSta[7]: #鍑哄簱鍙�8
+#      staNo: 107
 #    inSta[0]: #鍏ュ簱鍙�1
-#      #scale: ${wcs-slave.scale[0].id}
-#      staNo: 103
-#      backSta: 102
+#      staNo: 100
 #      barcode: ${wcs-slave.barcode[0].id}
 #    inSta[1]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 107
-#      backSta: 106
+#      staNo: 102
 #      barcode: ${wcs-slave.barcode[1].id}
-#      #slot: 0
-#    inSta[2]: #鍏ュ簱鍙�1
-#      #scale: ${wcs-slave.scale[0].id}
-#      staNo: 111
-#      backSta: 110
-#      barcode: ${wcs-slave.barcode[2].id}
-#    inSta[3]: #鍏ュ簱鍙�1
-#      #scale: ${wcs-slave.scale[0].id}
-#      staNo: 115
-#      backSta: 114
-#      barcode: ${wcs-slave.barcode[3].id}
-#    inSta[4]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 119
-#      backSta: 118
-#      barcode: ${wcs-slave.barcode[4].id}
-#      #slot: 0
-#    inSta[5]: #鍏ュ簱鍙�1
-#      #scale: ${wcs-slave.scale[0].id}
-#      staNo: 123
-#      backSta: 122
-#      barcode: ${wcs-slave.barcode[5].id}
-#    outSta[0]: #鍑哄簱鍙�1
-#      staNo: 100
-#    outSta[1]: #鍑哄簱鍙�2
+#    id: 1
+#
+#
+#  crn[2]: #鍫嗗灈鏈�3
+#    rack: 0
+#    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+#    port: 102
+#    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
+#      staNo: 105
+#      row: 9
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
+#    ip: 192.168.1.120
+#    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
 #      staNo: 104
-#    outSta[2]: #鍑哄簱鍙�2
-#      staNo: 108
-#    outSta[3]: #鍑哄簱鍙�1
-#      staNo: 112
-#    outSta[4]: #鍑哄簱鍙�2
-#      staNo: 116
-#    outSta[5]: #鍑哄簱鍙�2
-#      staNo: 120
-#  devp[1]: #杈撻�佺嚎
-#    id: 2
-#    ip: 172.17.91.45
-#    rack: 0
-#    port: 102
-#    slot: 0
-#    inSta[0]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 205
-#      backSta: 203
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    inSta[1]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 211
-#      backSta: 209
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    inSta[2]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 217
-#      backSta: 215
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    inSta[3]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 223
-#      backSta: 221
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    inSta[4]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 229
-#      backSta: 227
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    inSta[5]: #鍏ュ簱鍙�2
-#      #scale: ${wcs-slave.scale[1].id}
-#      staNo: 235
-#      backSta: 232
-#      #barcode: ${wcs-slave.barcode[4].id}
-#    outSta[0]: #鍑哄簱鍙�1
-#      staNo: 200
-#    outSta[1]: #鍑哄簱鍙�1
-#      staNo: 206
-#    outSta[2]: #鍑哄簱鍙�1
-#      staNo: 212
-#    outSta[3]: #鍑哄簱鍙�1
-#      staNo: 218
-#    outSta[4]: #鍑哄簱鍙�1
-#      staNo: 224
-#    outSta[5]: #鍑哄簱鍙�1
-#      staNo: 230
-#  devp[2]: #杈撻�佺嚎
+#      row: 8
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
 #    id: 3
-#    ip: 172.17.8.201
-#    rack: 0
 #    slot: 0
+#    demo: false
+#  crn[3]: #鍫嗗灈鏈�4
+#    rack: 0
+#    offset: 2    #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
 #    port: 102
-#    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
-#      staNo: 306
-#    inSta[0]: #鍏ュ簱鍙�1
-#      scale: ${wcs-slave.scale[1].id}
-#      staNo: 301
-#      barcode: ${wcs-slave.barcode[6].id}
-#      backSta: 300
-#      #slot: 0
-#    outSta[0]: #鍑哄簱鍙�1
-#      staNo: 307
-##  devp[3]: #杈撻�佺嚎
-##    id: 4
-##    ip: 10.10.10.30
-##    rack: 0
-##    slot: 0
-##    port: 102
-##    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
-##      staNo: 406
-##    inSta[0]: #鍏ュ簱鍙�1
-##      scale: ${wcs-slave.scale[1].id}
-##      staNo: 406
-##      barcode: ${wcs-slave.barcode[1].id}
-##      #slot: 0
-##    outSta[0]: #鍑哄簱鍙�1
-##      staNo: 407
-#  scale[0]: #纾呯Г
-#    port: 5005
-#    ip: 10.10.10.201
-#    id: 1
-#  scale[1]: #纾呯Г
-#    port: 5005
-#    ip: 10.10.10.202
-#    id: 2
-#  barcode[0]: #鏉$爜鎵弿浠�
-#    port: 51236
-#    ip: 172.17.91.39
-#    id: 1
-#  barcode[1]:
-#    port: 51236
-#    ip: 172.17.91.40
-#    id: 2
-#  barcode[2]:
-#    port: 51236
-#    ip: 172.17.91.41
-#    id: 3
-#  barcode[3]:
-#    port: 51236
-#    ip: 172.17.91.42
+#    crnOutStn[0]:    #鍫嗗灈鏈哄嚭搴撶珯鐐�
+#      staNo: 107
+#      row: 12
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
+#    ip: 192.168.1.130
+#    crnInStn[0]:    #鍫嗗灈鏈哄叆搴撶珯鐐�1
+#      staNo: 106
+#      row: 11
+#      bay: 1
+#      lev: 1
+#      devpPlcId: ${wcs-slave.devp[0].id}
 #    id: 4
-#  barcode[4]:
-#    port: 51236
-#    ip: 172.17.91.43
-#    id: 5
-#  barcode[5]:
-#    port: 51236
-#    ip: 172.17.91.44
-#    id: 6
-#  barcode[6]:
-#    port: 51236
-#    ip: 172.17.8.203
-#    id: 7
+#    slot: 0
+#    demo: false
+
+
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index d81beaf..ef1b19f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=rywxasrs
+    url: jdbc:sqlserver://10.10.10.220:1433;databasename=rywxasrs
     username: sa
     password: sa@123
   mvc:
@@ -37,7 +37,7 @@
 
 #License鐩稿叧閰嶇疆
 license:
-  subject: ryzhwcs
+  subject: jdzwcs
   publicAlias: publicCert
   storePass: public_zhongyang_123456789
   licensePath: license.lic
@@ -50,14 +50,14 @@
   #url: 10.32.53.195:8080
   # WMS绯荤粺ip
   #  url: 10.210.157.109:8090
-  url: 10.210.157.26:8090
+  url: 10.10.10.222:2410
   # 鍏ュ簱浠诲姟鐢宠鎺ュ彛
   #inboundTaskApplyPath: api/InterFace/inboundTaskApply
-  inboundTaskApplyPath: sugood/inboundTaskApply
+  inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
   #  inboundTaskApplyPath: open/asrs/inboundTaskApply
-  # 浠诲姟鐘舵�佸弽棣堟帴鍙�
-  taskStatusFeedbackPath: sugood/taskStatusReport
-  # 璐т綅鐘舵�佹洿鏂版帴鍙�
-  locationUpdatePath: api/InterFace/get_InterFace_TestStorage
+  # 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+  taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
+  # 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS
+  TaskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback
   # 绉诲簱鐢宠鎺ュ彛
   movePath: api/InterFace/get_InterFace_TestStorage
diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic
index ec0b4bc..e4e7c87 100644
--- a/src/main/resources/license.lic
+++ b/src/main/resources/license.lic
Binary files differ
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 8c6800e..6055c3a 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -24,6 +24,7 @@
         <result column="crn_no" property="crnNo" />
         <result column="command_step" property="commandStep" />
         <result column="transfer_mark" property="transferMark" />
+        <result column="mark_start" property="markStart"/>
 
     </resultMap>
     
@@ -48,7 +49,7 @@
 
     <select id="selectPakIn" resultMap="BaseResultMap">
         select top 1 * from dbo.wcs_task_wrk
-        where status=1
+        where status=2
         and crn_no=#{crnNo}
         and wrk_no=#{workNo}
         and start_point=#{startPoint}
diff --git a/src/main/webapp/static/wcs/js/common.js b/src/main/webapp/static/wcs/js/common.js
index 3fe5057..44a248f 100644
--- a/src/main/webapp/static/wcs/js/common.js
+++ b/src/main/webapp/static/wcs/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/wxwcs";
+var baseUrl = "/jdzwcs";
 
 // 璧嬪��
 function setVal(el, val) {
diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js
index aa027a6..b77d4bd 100644
--- a/src/main/webapp/static/wcs/js/console.map.js
+++ b/src/main/webapp/static/wcs/js/console.map.js
@@ -1,5 +1,5 @@
 mapInfo = {
-    "mapName": "wxwcs",
+    "mapName": "jdzwcs",
     "rackCount": 13,
     "crnCount": 4,
     "stbCount": 4,
@@ -8,106 +8,49 @@
     "floors": 1,
     "racks": [{
         "type": "rack",
-        "id": "rack4",
-        "top": 209,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22,
-        "hiddenArr": [22]
-    }, {
-        "type": "rack",
-        "id": "rack13",
-        "top": 598,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22,
-        "hiddenArr": [1,2]
-    }, {
-        "type": "rack",
-        "id": "rack12",
-        "top": 574,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22,
-        "hiddenArr": [1]
-    }, {
-        "type": "rack",
-        "id": "rack11",
-        "top": 502,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22,
-        "hiddenArr": [1]
-    }, {
-        "type": "rack",
-        "id": "rack10",
-        "top": 466,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22
-    }, {
-        "type": "rack",
-        "id": "rack9",
-        "top": 443,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22
-    }, {
-        "type": "rack",
-        "id": "rack8",
-        "top": 368,
-        "left": 475,
-        "width": 795,
-        "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 22
-    }, {
-        "type": "rack",
         "id": "rack7",
-        "top": 345,
-        "left": 475,
+        "top": 326,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 22,
-        "hiddenArr": [3,10,11,17,18]
+        "hiddenArr": [1,22]
     }, {
         "type": "rack",
         "id": "rack6",
         "top": 303,
-        "left": 475,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 22,
-        "hiddenArr": [1,3,10,11,17,18,22]
+        "hiddenArr": [1,22]
     }, {
         "type": "rack",
         "id": "rack5",
-        "top": 280,
-        "left": 475,
+        "top": 209,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 22,
-        "hiddenArr": [3,10,11,17,18,22]
+        "hiddenArr": [1,22]
+    },{
+        "type": "rack",
+        "id": "rack4",
+        "top": 232,
+        "left": 800,
+        "width": 795,
+        "height": 23,
+        "minBayNo": 1,
+        "maxBayNo": 22,
+        "hiddenArr": [1,22]
     }, {
         "type": "rack",
         "id": "rack3",
         "top": 182,
-        "left": 475,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
@@ -117,7 +60,7 @@
         "type": "rack",
         "id": "rack2",
         "top": 159,
-        "left": 475,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
@@ -127,7 +70,17 @@
         "type": "rack",
         "id": "rack1",
         "top": 98,
-        "left": 475,
+        "left": 800,
+        "width": 795,
+        "height": 23,
+        "minBayNo": 1,
+        "maxBayNo": 22,
+        "hiddenArr": [1,22]
+    }, {
+        "type": "rack",
+        "id": "rack0",
+        "top": 75,
+        "left": 800,
         "width": 795,
         "height": 23,
         "minBayNo": 1,
@@ -136,42 +89,10 @@
     }],
     "crns": [{
         "type": "crane",
-        "id": "crn-4",
-        "text": "4",
-        "top": 539,
-        "left": 530,
-        "width": 93,
-        "height": 22
-    }, {
-        "type": "track",
-        "id": "lb_track4",
-        "text": "",
-        "top": 550,
-        "left": 444,
-        "width": 850,
-        "height": 2
-    }, {
-        "type": "crane",
-        "id": "crn-3",
-        "text": "3",
-        "top": 408,
-        "left": 530,
-        "width": 93,
-        "height": 22
-    }, {
-        "type": "track",
-        "id": "lb_track3",
-        "text": "",
-        "top": 418,
-        "left": 444,
-        "width": 850,
-        "height": 2
-    }, {
-        "type": "crane",
         "id": "crn-2",
         "text": "2",
-        "top": 245,
-        "left": 530,
+        "top": 268,
+        "left": 855,
         "width": 93,
         "height": 22
     }, {
@@ -179,15 +100,15 @@
         "id": "crn-1",
         "text": "1",
         "top": 132,
-        "left": 530,
+        "left": 855,
         "width": 93,
         "height": 22
     }, {
         "type": "track",
         "id": "lb_track2",
         "text": "",
-        "top": 255,
-        "left": 444,
+        "top": 278,
+        "left": 769,
         "width": 850,
         "height": 2
     }, {
@@ -195,7 +116,7 @@
         "id": "lb_track1",
         "text": "",
         "top": 143,
-        "left": 447,
+        "left": 769,
         "width": 850,
         "height": 2
     }],
@@ -204,7 +125,7 @@
         "id": "tabControl_floor1",
         "text": "妤煎眰",
         "top": 66,
-        "left": 80,
+        "left": 580,
         "width": 334,
         "height": 714,
         "floors": [{
@@ -212,74 +133,250 @@
             "id": "page_floor1",
             "text": "1F",
             "top": 4,
-            "left": 22,
+            "left": 422,
             "width": 308,
             "height": 706,
             "stns": [{
                 "type": "stn",
-                "id": "site-107",
-                "text": "107",
-                "top": 576,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-106",
-                "text": "106",
-                "top": 504,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-105",
-                "text": "105",
-                "top": 444,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-104",
-                "text": "104",
-                "top": 369,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-103",
-                "text": "103",
-                "top": 281,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-102",
-                "text": "102",
-                "top": 210,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
-                "id": "site-101",
-                "text": "101",
-                "top": 160,
-                "left": 386,
-                "width": 92,
-                "height": 23
-            }, {
-                "type": "stn",
                 "id": "site-100",
                 "text": "100",
                 "top": 99,
-                "left": 386,
-                "width": 92,
+                "left": 771,
+                "width": 62,
                 "height": 23
-            }]
+            },{
+                "type": "stn",
+                "id": "site-101",
+                "text": "101",
+                "top": 99,
+                "left": 707,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-102",
+                "text": "102",
+                "top": 99,
+                "left": 643,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-103",
+                "text": "103",
+                "top": 99,
+                "left": 579,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-104",
+                "text": "104",
+                "top": 124,
+                "left": 579,
+                "width": 62,
+                "height": 34
+            },{
+                "type": "stn",
+                "id": "site-125",
+                "text": "125",
+                "top": 160,
+                "left": 771,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-124",
+                "text": "124",
+                "top": 160,
+                "left": 707,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-123",
+                "text": "123",
+                "top": 160,
+                "left": 643,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-122",
+                "text": "122",
+                "top": 160,
+                "left": 579,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-121",
+                "text": "121",
+                "top": 186,
+                "left": 579,
+                "width": 62,
+                "height": 42
+            },{
+                "type": "stn",
+                "id": "site-120",
+                "text": "120",
+                "top": 231,
+                "left": 771,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-119",
+                "text": "119",
+                "top": 231,
+                "left": 707,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-118",
+                "text": "118",
+                "top": 231,
+                "left": 643,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-117",
+                "text": "117",
+                "top": 231,
+                "left": 579,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-116",
+                "text": "116",
+                "top": 256,
+                "left": 579,
+                "width": 62,
+                "height": 46
+            },{
+                "type": "stn",
+                "id": "site-115",
+                "text": "115",
+                "top": 304,
+                "left": 771,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-114",
+                "text": "114",
+                "top": 304,
+                "left": 707,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-113",
+                "text": "113",
+                "top": 304,
+                "left": 643,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-112",
+                "text": "112",
+                "top": 304,
+                "left": 579,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-105",
+                "text": "105",
+                "top": 99,
+                "left": 515,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-106",
+                "text": "106",
+                "top": 124,
+                "left": 515,
+                "width": 62,
+                "height": 34
+            },{
+                "type": "stn",
+                "id": "site-107",
+                "text": "107",
+                "top": 160,
+                "left": 515,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-108",
+                "text": "108",
+                "top": 186,
+                "left": 515,
+                "width": 62,
+                "height": 42
+            },{
+                "type": "stn",
+                "id": "site-109",
+                "text": "109",
+                "top": 231,
+                "left": 515,
+                "width": 62,
+                "height": 70
+            },{
+                "type": "stn",
+                "id": "site-110",
+                "text": "110",
+                "top": 304,
+                "left": 515,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-111",
+                "text": "111",
+                "top": 329,
+                "left": 515,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-1001",
+                "text": "1001",
+                "top": 99,
+                "left": 451,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-1002",
+                "text": "1002",
+                "top": 160,
+                "left": 451,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-1003",
+                "text": "1003",
+                "top": 231,
+                "left": 451,
+                "width": 62,
+                "height": 23
+            },{
+                "type": "stn",
+                "id": "site-1004",
+                "text": "1004",
+                "top": 304,
+                "left": 451,
+                "width": 62,
+                "height": 23
+            } ]
         }]
     }]
 }
\ No newline at end of file
diff --git a/src/main/webapp/static/wms/js/common.js b/src/main/webapp/static/wms/js/common.js
index a163565..4882225 100644
--- a/src/main/webapp/static/wms/js/common.js
+++ b/src/main/webapp/static/wms/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/wxwcs";
+var baseUrl = "/jdzwcs";
 
 // 璇︽儏绐楀彛-楂樺害
 var detailHeight = '80%';
diff --git a/src/main/webapp/views/commandManage/commandManage.html b/src/main/webapp/views/commandManage/commandManage.html
index 539c90c..a95fb72 100644
--- a/src/main/webapp/views/commandManage/commandManage.html
+++ b/src/main/webapp/views/commandManage/commandManage.html
@@ -106,7 +106,10 @@
 					tableSearchParam: {
 						task_no: null,
 						status: null,
-						wrk_no: null
+						wrk_no: null,
+						barcode: null,
+						start_point: null,
+						target_point : null
 					},
 					commandStep: -1
 				},
diff --git a/src/main/webapp/views/locMast/locMast.html b/src/main/webapp/views/locMast/locMast.html
index bc9a91f..9323076 100644
--- a/src/main/webapp/views/locMast/locMast.html
+++ b/src/main/webapp/views/locMast/locMast.html
@@ -62,6 +62,11 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="barcode" placeholder="鎵樼洏鐮�" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
             <select class="layui-input" id="loc_type1" name="loc_type1" autocomplete="off">
                 <option value>閫夋嫨妗剁被鍨�</option>
                 <option value="1">娌规《</option>
diff --git a/src/main/webapp/views/realtimeWatch/console.html b/src/main/webapp/views/realtimeWatch/console.html
index fbbfd6a..c33f08f 100644
--- a/src/main/webapp/views/realtimeWatch/console.html
+++ b/src/main/webapp/views/realtimeWatch/console.html
@@ -642,7 +642,7 @@
                         // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                         // crns[i].bay = 1;
 
-                        var offSet = 390;
+                        var offSet = 800;
                         // crns[i].bay = 41;
                         if(crns[i].bay === 1){
                             crnEl.animate({left: offSet + 'px'}, 1000);
diff --git a/src/main/webapp/views/taskWrkLog/taskWrkLog.html b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
index f99e294..8a72146 100644
--- a/src/main/webapp/views/taskWrkLog/taskWrkLog.html
+++ b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -23,6 +23,15 @@
 						<el-form-item label="">
 							<el-input v-model="tableSearchParam.wrk_no" placeholder="宸ヤ綔鍙�"></el-input>
 						</el-form-item>
+						<el-form-item label="">
+							<el-input v-model="tableSearchParam.barcode" placeholder="绠卞彿"></el-input>
+						</el-form-item>
+						<el-form-item label="">
+							<el-input v-model="tableSearchParam.start_point" placeholder="璧峰浣�"></el-input>
+						</el-form-item>
+						<el-form-item label="">
+							<el-input v-model="tableSearchParam.target_point" placeholder="鐩爣浣�"></el-input>
+						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="getTableData">鏌ヨ</el-button>
 							<el-button type="primary" @click="resetParam">閲嶇疆</el-button>

--
Gitblit v1.9.1