From 707d414c0e6a8baff3ce7affec820f0fc1a13c19 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 24 二月 2026 09:06:04 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/api/controller/params/AgvCarriesParam.java      |   22 +
 src/main/java/com/zy/api/controller/params/AgvCallBackParam.java     |   15 +
 src/main/java/com/zy/api/entity/CallAgvParams.java                   |    3 
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java         |   20 
 src/main/java/com/zy/asrs/entity/OrderDetlPakin.java                 |    4 
 src/main/java/com/zy/api/controller/params/AgvRequestParam.java      |   26 +
 src/main/java/com/zy/common/constant/HIKApiConstant.java             |    4 
 src/main/java/com/zy/api/controller/AgvScheduleController.java       |    9 
 src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java    |   91 +++--
 src/main/java/com/zy/api/enums/MatLocType.java                       |    9 
 src/main/java/com/zy/api/controller/params/CallBackItem.java         |   42 +++
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java       |   39 +
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java          |   26 +
 src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java       |   31 ++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |   33 +-
 src/main/java/com/zy/asrs/entity/WrkDetl.java                        |    4 
 src/main/java/com/zy/common/constant/MesConstant.java                |    5 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java        |   51 ++-
 src/main/resources/application-dev.yml                               |   16 
 src/main/java/com/zy/asrs/entity/BasStationDetl.java                 |    4 
 license.lic                                                          |    0 
 src/main/java/com/zy/api/service/AgvScheduleService.java             |    3 
 src/main/java/com/zy/system/entity/license/LicenseCheckListener.java |   44 +-
 src/main/java/com/zy/asrs/entity/OrderDetlPakout.java                |    4 
 src/main/java/com/zy/asrs/entity/OrderDetl.java                      |    4 
 src/main/java/com/zy/asrs/controller/LocDetlController.java          |    2 
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java                |   36 ++
 src/main/webapp/views/locCache/locCache.html                         |  156 +++++-----
 src/main/java/com/zy/api/controller/params/AgvCallBackItemParam.java |   44 +++
 src/main/java/com/zy/asrs/entity/TaskDetl.java                       |    4 
 src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java    |    2 
 src/main/java/com/zy/asrs/entity/WaitPakin.java                      |    8 
 src/main/java/com/zy/asrs/entity/LocDetl.java                        |    4 
 src/main/java/com/zy/asrs/service/impl/LocCacheServiceImpl.java      |   68 ++--
 src/main/resources/license.lic                                       |    0 
 35 files changed, 568 insertions(+), 265 deletions(-)

diff --git a/license.lic b/license.lic
new file mode 100644
index 0000000..34644d8
--- /dev/null
+++ b/license.lic
Binary files differ
diff --git a/src/main/java/com/zy/api/controller/AgvScheduleController.java b/src/main/java/com/zy/api/controller/AgvScheduleController.java
index 507ad1b..e141faa 100644
--- a/src/main/java/com/zy/api/controller/AgvScheduleController.java
+++ b/src/main/java/com/zy/api/controller/AgvScheduleController.java
@@ -1,6 +1,7 @@
 package com.zy.api.controller;
 
 import com.core.common.R;
+import com.zy.api.controller.params.AgvCallBackParam;
 import com.zy.api.entity.CallAgvParams;
 import com.zy.api.service.AgvScheduleService;
 import io.swagger.annotations.ApiOperation;
@@ -34,10 +35,14 @@
         return agvScheduleService.callAgvCarry(params);
     }
 
-
+    /**
+     * AGV浠诲姟瀹屾垚
+     * @param params
+     * @return
+     */
     @ApiOperation("agv鎼繍缁撴灉鍥炰紶")
     @PostMapping("/agv/result/callback")
-    public R agvCarryCallBack(@RequestBody CallAgvParams params) {
+    public R agvCarryCallBack(@RequestBody AgvCallBackParam params) {
         if (Objects.isNull(params)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
diff --git a/src/main/java/com/zy/api/controller/params/AgvCallBackItemParam.java b/src/main/java/com/zy/api/controller/params/AgvCallBackItemParam.java
new file mode 100644
index 0000000..4318b26
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/AgvCallBackItemParam.java
@@ -0,0 +1,44 @@
+package com.zy.api.controller.params;
+
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+public class AgvCallBackItemParam implements Serializable {
+
+
+    private CallBackItem values;
+
+//    {
+//        "robotTaskCode": "5685",
+//            "singleRobotCode": "8857",
+//            "currentSeq": -1,
+//            "extra": {
+//        "async": "0",
+//                "values": {
+//                    "mapCode": "DD",
+//                    "slotCategory": "SITE",
+//                    "slotCode": "286260DD305240",
+//                    "slotName": "JH06",
+//                    "x": 286260.0,
+//                    "y": 305240.0,
+//                    "method": "start",
+//                    "carrierCategory": "POD",
+//                    "carrierType": "TC",
+//                    "carrierCode": "TC10104",
+//                    "pileCount": 1,
+//                    "taskTime": "2026-02-12 15:59:45.704",
+//                    "amrCategory": "LMR",
+//                    "amrType": "17",
+//                    "amrCode": "8857",
+//                    "carrierName": "TC10104",
+//                    "layerNo": 1
+//        }
+//    }
+//    }
+
+}
diff --git a/src/main/java/com/zy/api/controller/params/AgvCallBackParam.java b/src/main/java/com/zy/api/controller/params/AgvCallBackParam.java
new file mode 100644
index 0000000..1eb0b15
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/AgvCallBackParam.java
@@ -0,0 +1,15 @@
+package com.zy.api.controller.params;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+public class AgvCallBackParam implements Serializable {
+
+    private String robotTaskCode;
+
+    private AgvCallBackItemParam extra;
+}
diff --git a/src/main/java/com/zy/api/controller/params/AgvCarriesParam.java b/src/main/java/com/zy/api/controller/params/AgvCarriesParam.java
new file mode 100644
index 0000000..45fe2af
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/AgvCarriesParam.java
@@ -0,0 +1,22 @@
+package com.zy.api.controller.params;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "AgvCarriesParam", description = "AGV鎼繍鍙傛暟")
+public class AgvCarriesParam implements Serializable {
+
+    private Integer autoStart = 1;
+
+    private String code;
+
+    private Integer seq;
+
+    private String type = "SITE";
+}
diff --git a/src/main/java/com/zy/api/controller/params/AgvRequestParam.java b/src/main/java/com/zy/api/controller/params/AgvRequestParam.java
new file mode 100644
index 0000000..0051e13
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/AgvRequestParam.java
@@ -0,0 +1,26 @@
+package com.zy.api.controller.params;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "AgvRequestParam", description = "Agv璇锋眰鍙傛暟")
+public class AgvRequestParam implements Serializable {
+
+    //浠诲姟绫诲瀷
+    private String taskType;
+
+    //浠诲姟鎵ц娓呭崟
+    private List<AgvCarriesParam> targetRoute;
+
+    //浠诲姟鍙�
+    private String robotTaskCode;
+
+
+}
diff --git a/src/main/java/com/zy/api/controller/params/CallBackItem.java b/src/main/java/com/zy/api/controller/params/CallBackItem.java
new file mode 100644
index 0000000..f6a8a8f
--- /dev/null
+++ b/src/main/java/com/zy/api/controller/params/CallBackItem.java
@@ -0,0 +1,42 @@
+package com.zy.api.controller.params;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+public class CallBackItem implements Serializable {
+
+    private String slotName;
+
+    private String method;
+
+    private String carrierCode;
+
+    private String taskTime;
+
+    private String carrierName;
+
+//                "values": {
+//                    "mapCode": "DD",
+//                    "slotCategory": "SITE",
+//                    "slotCode": "286260DD305240",
+//                    "slotName": "JH06",
+//                    "x": 286260.0,
+//                    "y": 305240.0,
+//                    "method": "start",
+//                    "carrierCategory": "POD",
+//                    "carrierType": "TC",
+//                    "carrierCode": "TC10104",
+//                    "pileCount": 1,
+//                    "taskTime": "2026-02-12 15:59:45.704",
+//                    "amrCategory": "LMR",
+//                    "amrType": "17",
+//                    "amrCode": "8857",
+//                    "carrierName": "TC10104",
+//                    "layerNo": 1
+//        }
+
+}
diff --git a/src/main/java/com/zy/api/entity/CallAgvParams.java b/src/main/java/com/zy/api/entity/CallAgvParams.java
index 59b5fd1..98276dd 100644
--- a/src/main/java/com/zy/api/entity/CallAgvParams.java
+++ b/src/main/java/com/zy/api/entity/CallAgvParams.java
@@ -32,4 +32,7 @@
 
     @ApiModelProperty("浠诲姟鍙�")
     private String wrkNo;
+
+    @ApiModelProperty("浠诲姟绫诲瀷")
+    private String taskType = "M2";
 }
diff --git a/src/main/java/com/zy/api/enums/MatLocType.java b/src/main/java/com/zy/api/enums/MatLocType.java
index 714ac23..416327c 100644
--- a/src/main/java/com/zy/api/enums/MatLocType.java
+++ b/src/main/java/com/zy/api/enums/MatLocType.java
@@ -39,24 +39,23 @@
 
     public static Long getTag(String type) {
         if (type.equals(MatType.LARGE.type)) {
-            return Long.parseLong(MatLocType.AUTOMATED.type);
+            return Long.parseLong(MatLocType.EO_HOLDING.type);
         } else if (type.equals(MatType.MIDDEL.type)) {
             return Long.parseLong(MatLocType.SO_HOLDING.type);
         } else if (type.equals(MatType.SMALL.type)) {
-            return Long.parseLong(MatLocType.EO_HOLDING.type);
+            return Long.parseLong(MatLocType.AUTOMATED.type);
         } else {
             return null;
         }
     }
 
 
-    
     public static String getMatTag(String type) {
-        if (type.equals(MatLocType.AUTOMATED.type)) {
+        if (type.equals(MatLocType.EO_HOLDING.type)) {
             return MatType.LARGE.type;
         } else if (type.equals(MatLocType.SO_HOLDING.type)) {
             return MatType.MIDDEL.type;
-        } else if (type.equals(MatLocType.EO_HOLDING.type)) {
+        } else if (type.equals(MatLocType.AUTOMATED.type)) {
             return MatType.SMALL.type;
         } else {
             return null;
diff --git a/src/main/java/com/zy/api/service/AgvScheduleService.java b/src/main/java/com/zy/api/service/AgvScheduleService.java
index 0417a0b..6c0f6f3 100644
--- a/src/main/java/com/zy/api/service/AgvScheduleService.java
+++ b/src/main/java/com/zy/api/service/AgvScheduleService.java
@@ -1,11 +1,12 @@
 package com.zy.api.service;
 
 import com.core.common.R;
+import com.zy.api.controller.params.AgvCallBackParam;
 import com.zy.api.entity.CallAgvParams;
 
 public interface AgvScheduleService {
 
     R callAgvCarry(CallAgvParams params);
 
-    R callback(CallAgvParams params);
+    R callback(AgvCallBackParam params);
 }
diff --git a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
index a268ab6..d4f13a8 100644
--- a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
@@ -5,6 +5,9 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.R;
 import com.core.exception.CoolException;
+import com.zy.api.controller.params.AgvCallBackParam;
+import com.zy.api.controller.params.AgvCarriesParam;
+import com.zy.api.controller.params.AgvRequestParam;
 import com.zy.api.entity.CallAgvParams;
 import com.zy.api.enums.OrderType;
 import com.zy.api.service.AgvScheduleService;
@@ -27,11 +30,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -75,46 +74,59 @@
             task.setWrkSts(TaskStatusType.AGV_TASK_ISSUED_OUT.type);
         }
 
-        if (!taskService.updateById(task)) {
-            throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+        HIKResultDTO hikResultDTO = sendAgvTask(params, HIKApiConstant.TASK_SUBMIT);
+
+        if (hikResultDTO.isSuccess()) {
+            if (!taskService.updateById(task)) {
+                throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+            }
         }
 
         return R.ok();
     }
 
+    /**
+     * 鑾峰彇鑷畾涔夎姹傚ご
+     *
+     * @return java.util.Map<java.lang.String, java.lang.Object>
+     * @author Ryan
+     * @date 2025/12/29 9:11
+     */
+    private Map<String, Object> getHeaderParam() {
+        Map<String, Object> headerParam = new HashMap<>();
+        //璁剧疆璇锋眰杩炴帴鐨凾oken
+        headerParam.put("X-LR-REQUEST-ID", new Date().getTime() + "");
+        return headerParam;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R callback(CallAgvParams params) {
+    public R callback(AgvCallBackParam params) {
         if (Objects.isNull(params)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        if (Objects.isNull(params.getWrkNo())) {
+        if (Objects.isNull(params.getRobotTaskCode())) {
             return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
         }
-        Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+        Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getRobotTaskCode()));
         if (Objects.isNull(task)) {
             return R.error("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
         }
 
-//        if (!Arrays.asList(TaskStatusType.AGV_TASK_ISSUED_IN.type, TaskStatusType.AGV_TASK_ISSUED_OUT.type).contains(task.getIoType())) {
-//            return R.error("");
-//        }
-//
         if (Arrays.asList(TaskIOType.ALL_IN.type, TaskIOType.PICK_IN.type, TaskIOType.MERGE_IN.type)
                 .contains(task.getIoType())) {
             // 鍏ュ簱
-            if (params.getStatus().equals("RUNNING")) {
+            if (params.getExtra().getValues().getMethod().equals("start")) {
                 task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_IN.type);
-            } else if (params.getStatus().equals("FINISHED")){
+            } else if (params.getExtra().getValues().getMethod().equals("end")){
                 task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_IN.type);
-
             }
         } else if (Arrays.asList(TaskIOType.ALL_OUT.type, TaskIOType.PICK_OUT.type, TaskIOType.MERGE_OUT.type, TaskIOType.EMPTY_OUT.type)
                 .contains(task.getIoType())) {
-            // 鍑哄簱
-            if (params.getStatus().equals("RUNNING")) {
+            // 鍑哄簱p
+            if (params.getExtra().getValues().getMethod().equals("start")) {
                 task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_OUT.type);
-            } else if (params.getStatus().equals("FINISHED")){
+            } else if (params.getExtra().getValues().getMethod().equals("end")){
                 task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_OUT.type);
             }
         }
@@ -122,35 +134,42 @@
         if (!taskService.updateById(task)) {
             throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
         }
-
         return R.ok("鎵ц瀹屾垚 锛侊紒");
     }
 
-    public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO, String path) {
+    public HIKResultDTO sendAgvTask(CallAgvParams param, String path) {
         HIKResultDTO result = new HIKResultDTO();
-        ForwardAGVTaskDTO forwardAGVTaskParam = new ForwardAGVTaskDTO();
-        forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", ""));
-        forwardAGVTaskParam.setClientCode("IWMS");
-        forwardAGVTaskParam.setTaskTyp(haiKangApiDTO.getTaskType());
-        forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType());
-        forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority());
-        List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>();
-        positionCodePathsList
-                .add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
-        positionCodePathsList
-                .add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
-        forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
-        String body = JSON.toJSONString(forwardAGVTaskParam);
+        AgvRequestParam requestParam = new AgvRequestParam();
+        requestParam.setTaskType(param.getTaskType());
+        List<AgvCarriesParam> agvCarriesParams = new ArrayList<>();
+
+        AgvCarriesParam carriesParam = new AgvCarriesParam();
+        carriesParam.setSeq(0);
+        carriesParam.setCode(param.getOrgSite());
+
+        agvCarriesParams.add(carriesParam);
+
+        AgvCarriesParam carriesParam2 = new AgvCarriesParam();
+        carriesParam2.setSeq(1);
+        carriesParam2.setCode(param.getTarSite());
+
+        agvCarriesParams.add(carriesParam2);
+
+        requestParam.setRobotTaskCode(param.getWrkNo());
+        requestParam.setTargetRoute(agvCarriesParams);
+
+        String body = JSON.toJSONString(requestParam);
         String response = "";
         try {
             response = new HttpHandler.Builder()
                     .setUri(HIKApiConstant.AGV_IP)
                     .setPath(path)
+                    .setHeaders(getHeaderParam())
                     .setJson(body)
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
-            if (jsonObject.getInteger("code").equals(0)) {
+            if (jsonObject.getString("code").equals("SUCCESS")) {
                 result.setSuccess(true);
             } else {
                 result.setMessage(jsonObject.getString("message"));
diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index 85b36dd..92a9120 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -28,6 +28,8 @@
 import com.zy.asrs.service.*;
 
 import com.zy.asrs.service.impl.BasAreasServiceImpl;
+import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
+import com.zy.asrs.service.impl.OrderPakinServiceImpl;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
@@ -67,6 +69,10 @@
     private String prefix;
     @Autowired
     private BasAreasService basAreasService;
+    @Autowired
+    private OrderPakinService orderPakinService;
+    @Autowired
+    private OrderDetlPakinService orderDetlPakinService;
 
 
     /**
@@ -197,7 +203,6 @@
             if (Objects.isNull(params.getCompany_id())) {
                 throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
             }
-
             addOrUpdateOrders(params, type);
         });
 
@@ -366,19 +371,28 @@
             /** 涓嶅瓨鍦紝鏂板璁㈠崟 */
             generateOrders(params, type);
         } else {
-            if (order.getSettle() == 2) {
+            OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no", order.getOrderNo()));
+            if (!Objects.isNull(orderPakin) && orderPakin.getSettle() != 1) {
                 throw new CoolException("璁㈠崟宸插鐞嗭紝涓嶅彲鍐嶅彉鏇达紒锛�");
             }
             /** 瀛樺湪锛屽垹闄よ�佽鍗曪紝鏇存柊鎻掑叆鏂拌鍗� */
-            // 鍒犻櫎鏃ц鍗曟槑缁�
-            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
-                throw new CoolException("璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
+            if (!orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderPakin.getOrderNo()))) {
+                throw new CoolException("璁㈠崟鍒犻櫎澶辫触锛侊紒");
             }
 
-            if (!orderService.deleteById(order.getId())) {
+            if (!orderPakinService.delete(new EntityWrapper<OrderPakin>().eq("order_no", orderPakin.getOrderNo()))) {
+                throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒");
+            }
+            // 鍒犻櫎鏃ц鍗曟槑缁�
+//            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
+//                throw new CoolException("璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
+//            }
+
+            order.setSettle(3L);
+            if (!orderService.updateById(order)) {
                 throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
             }
-            generateOrders(params, type);
+//            generateOrders(params, type);
         }
     }
 
@@ -443,7 +457,9 @@
         }
         if (!Objects.isNull(params.getDetails()) && !params.getDetails().isEmpty()) {
             params.getDetails().forEach(item -> {
-                Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", item.getPro_komcode()));
+                Mat matnr = matService.selectOne(new EntityWrapper<Mat>()
+                        .eq("supp_code", item.getPro_id())
+                        .eq("matnr", item.getPro_komcode()));
                 if (Objects.isNull(matnr)) {
                     throw new CoolException("鐗╂枡缂栫爜涓嶅瓨鍦紒锛�");
                 }
@@ -581,18 +597,17 @@
             } else {
                 locDetlDto.setStock_qty(Integer.parseInt(item.getBookQty().toString()));
             }
-            LocDetl barcode = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("barcode", item.getZpallet()));
+            LocDetl barcode = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", item.getZpallet()));
             if (!Objects.isNull(barcode)) {
                 BasAreas areas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("id", barcode.getAreaId()));
                 if (!Objects.isNull(areas)) {
-                    locDetlDto.setLocation_no(areas.getName());
+                    locDetlDto.setTarget_location(areas.getName());
                 }
             }
             locDetlDto
                     .setPro_komcode(item.getMatnr())
                     .setPro_id(item.getStandby1())
-                    .setLocation_no(item.getZpallet())
-                    .setTarget_location("");
+                    .setLocation_no(item.getZpallet());
             dtos.add(locDetlDto);
         });
         return XSR.ok(dtos);
diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 68bf7b9..41aec3b 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -127,22 +127,15 @@
      * @date 2026/1/10 13:58
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R pubWrkToWcs(WorkTaskParams params) {
         if (Objects.isNull(params.getTaskNo())) {
             return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
         }
-//        if (params.getType().equals("in"))
-//        if (Objects.isNull(params.getBarcode())) {
-//            return R.error("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
-//        }
-//        if (Objects.isNull(params.getLocNo())) {
-//            return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛侊紒");
-//        }
         String url = MesConstant.PUB_TASK_IN;
         if (!Objects.isNull(params.getType()) && params.getType().equals("out")) {
             url = MesConstant.PUB_TASK_OUT;
         }
-
         log.info("鍑哄簱浠诲姟涓嬪彂鍙傛暟锛歿}", JSON.toJSONString(params));
         String response;
         try {
@@ -154,13 +147,16 @@
                     .doPost();
             Map<String, Object> result = JSON.parseObject(response, Map.class);
 
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getTaskNo()));
+            wrkMast.setWrkSts(12L);
+            if (!wrkMastService.updateById(wrkMast)) {
+                throw new CoolException("鏇存柊澶辫触锛侊紒");
+            }
             if (result.get("code").equals(200)) {
-                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getTaskNo()));
-                wrkMast.setWrkSts(12L);
-                wrkMastService.updateById(wrkMast);
                 //TODO 涓婃姤鏄惁鎴愬姛
             } else {
-                return R.error().add(result);
+                throw new CoolException("鍑哄簱涓嬪彂浠诲姟涓嬪彂澶辫触锛侊紒");
+//                return R.error().add(result);
             }
         } catch (IOException e) {
             throw new RuntimeException(e);
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index df6b959..6321b3c 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -71,6 +71,7 @@
         for (LocDetl locDetl : groupLocDetl.getRecords()) {
             AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
             Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                    .eq("supp_code", locDetl.getStandby1())
                     .eq("matnr", locDetl.getMatnr()));
             if (Cools.isEmpty(mat)) {
                 continue;
@@ -300,6 +301,7 @@
         for (LocDetl locDetl : groupLocDetl.getRecords()) {
             AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
             Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                    .eq("supp_code", locDetl.getStandby1())
                     .eq("matnr", locDetl.getMatnr()));
             if (Cools.isEmpty(mat)) {
                 continue;
diff --git a/src/main/java/com/zy/asrs/entity/BasStationDetl.java b/src/main/java/com/zy/asrs/entity/BasStationDetl.java
index ea3c34d..b9f4c39 100644
--- a/src/main/java/com/zy/asrs/entity/BasStationDetl.java
+++ b/src/main/java/com/zy/asrs/entity/BasStationDetl.java
@@ -448,7 +448,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 43bf291..b6a1e6a 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -287,7 +287,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index 13348f6..7e01868 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -484,7 +484,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
index 34cb220..5d2e99f 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
@@ -418,7 +418,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
            return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
index 5e86238..0f6e18c 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
@@ -464,7 +464,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/TaskDetl.java b/src/main/java/com/zy/asrs/entity/TaskDetl.java
index f683c1f..c72ba2f 100644
--- a/src/main/java/com/zy/asrs/entity/TaskDetl.java
+++ b/src/main/java/com/zy/asrs/entity/TaskDetl.java
@@ -481,7 +481,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index 159a96a..4354bce 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -177,7 +177,7 @@
      * 澶囩敤1
      */
     @ApiModelProperty(value= "澶囩敤1")
-    private String standby1 = "";
+    private String standby1;
 
     /**
      * 澶囩敤2
@@ -196,7 +196,7 @@
      */
     @ApiModelProperty(value= "澶囩敤1")
     @TableField("box_type1")
-    private String boxType1 = "1";
+    private String boxType1;
 
     /**
      * 澶囩敤2
@@ -252,7 +252,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 47a310f..ecc80b3 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -375,7 +375,9 @@
 
     public String getTag$() {
         MatService service = SpringUtils.getBean(MatService.class);
-        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        Mat order = service.selectOne(new EntityWrapper<Mat>()
+                .eq("supp_code", this.suppCode)
+                .eq("matnr", this.matnr));
         if (Cools.isEmpty(order)){
             return null;
         }
diff --git a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
index c5494a9..6728be1 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
@@ -139,7 +139,7 @@
                         .eq("loc_no", locMast.getLocNo())
                         .eq("matnr", checkOrderDetl.getMatnr())
                         .eq(!Cools.isEmpty(checkOrderDetl.getBatch()),"batch", checkOrderDetl.getBatch())
-                        .eq("supp_code", checkOrderDetl.getSuppCode())
+                        .eq(!Cools.isEmpty(checkOrderDetl.getSuppCode()),"supp_code", checkOrderDetl.getSuppCode())
                 );
                 if (!Cools.isEmpty(locDetl)){
                     throw new CoolException("褰撳墠搴撲綅鏈夌浉鍚屽簱瀛樹俊鎭�");
diff --git a/src/main/java/com/zy/asrs/service/impl/LocCacheServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocCacheServiceImpl.java
index 2973db1..5c7cb5d 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocCacheServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocCacheServiceImpl.java
@@ -42,45 +42,47 @@
     public R initLocCache(LocMastInitParam param, Long userId) {
         try {
             List<LocCache> list = new ArrayList<>();
-            BasAreas areas = basAreasService.selectById(param.getIdentifying());
-            if (Cools.isEmpty(areas)) {
-                return R.error("搴撳尯涓嶅瓨鍦紒锛侊紒");
-            }
-            for (int r = param.getStartRow(); r <= param.getEndRow(); r++) {
-                for (int b = param.getStartBay(); b <= param.getEndBay(); b++) {
-                    for (int l = param.getStartLev(); l <= param.getEndLev(); l++) {
-                        // 鑾峰彇搴撲綅鍙�
-                        String locNo = areas.getAreaNo() + String.format("%02d", r) + String.format("%03d", b) + String.format("%02d", l);
-                        Date now = new Date();
-                        LocCache locMast = new LocCache();
-                        locMast.setLocNo(locNo);
-                        locMast.setLocSts("O");
-                        locMast.setRow1(r); // 鎺�
-                        locMast.setBay1(b); // 鍒�
-                        locMast.setLev1(l); // 灞�
-                        locMast.setId(null);
-                        locMast.setLocType1(!Cools.isEmpty(param.getLocType1()) ? param.getLocType1() : 1);
-                        locMast.setLocType2(param.getLocType2());
-                        locMast.setLocType3(param.getLocType3());
-                        locMast.setAppeUser(userId);
-                        locMast.setAppeTime(now);
-                        locMast.setModiUser(userId);
-                        locMast.setModiTime(now);
-                        locMast.setAreaId(areas.getId());
-                        locMast.setAreaName(areas.getName());
-                        list.add(locMast);
-                    }
-                }
-            }
             if (!Cools.isEmpty(param.getEnable()) && param.getEnable() == 1) {
                 if (!this.delete(new EntityWrapper<>())) {
                     throw new CoolException("鍒犻櫎澶辫触锛侊紒");
                 }
             }
-
-            if (!this.insertBatch(list)) {
-                throw new CoolException("娣诲姞澶辫触锛侊紒");
+            BasAreas areas = basAreasService.selectById(param.getIdentifying());
+            if (Cools.isEmpty(areas)) {
+                return R.error("搴撳尯涓嶅瓨鍦紒锛侊紒");
             }
+            for (int r = param.getStartRow(); r <= param.getEndRow(); r++) {
+//                for (int b = param.getStartBay(); b <= param.getEndBay(); b++) {
+//                    for (int l = param.getStartLev(); l <= param.getEndLev(); l++) {
+//
+//                    }
+//                }
+                // 鑾峰彇搴撲綅鍙�
+                String locNo = areas.getAreaNo() + String.format("%02d", r);
+                Date now = new Date();
+                LocCache locMast = new LocCache();
+                locMast.setLocNo(locNo);
+                locMast.setLocSts("O");
+                locMast.setRow1(r); // 鎺�
+                locMast.setBay1(1); // 鍒�
+                locMast.setLev1(1); // 灞�
+                locMast.setFullPlt("N");
+                locMast.setLocType1(!Cools.isEmpty(param.getLocType1()) ? param.getLocType1() : 1);
+                locMast.setLocType2(param.getLocType2());
+                locMast.setLocType3(param.getLocType3());
+                locMast.setAppeUser(userId);
+                locMast.setAppeTime(now);
+                locMast.setModiUser(userId);
+                locMast.setModiTime(now);
+                locMast.setAreaId(areas.getId());
+                locMast.setAreaName(areas.getName());
+//                list.add(locMast);
+
+                if (!this.insert(locMast)) {
+                    throw new CoolException("娣诲姞澶辫触锛侊紒");
+                }
+            }
+
             return R.ok("鍒濆鍖栨垚鍔�");
         } catch (Exception e) {
             return R.error("鍒濆鍖栧け璐�===>" + e.getMessage());
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 0d66579..e87e8f8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -178,7 +178,9 @@
         wrkMastService.insert(wrkMast);
 
         for (OrderDetl orderDetl : param.getCombMats()) {
-            Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", orderDetl.getMatnr()));
+            Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                    .eq("supp_code", orderDetl.getStandby1())
+                    .eq("matnr", orderDetl.getMatnr()));
             if (mat == null) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + orderDetl.getMatnr());
             }
@@ -377,6 +379,7 @@
         for (CombParam.CombMat combMat : combParam.getCombMats()) {
             List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>()
                     .eq("loc_no", combParam.getLocNo())
+                    .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1())
                     .eq("matnr", combMat.getMatnr()));
             if (locDetlList.isEmpty()) {
                 return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -451,7 +454,9 @@
                 wrkMast.setModiUser(userId);
                 wrkMastService.insert(wrkMast);
 
-                Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", combMat.getMatnr()));
+                Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                        .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1())
+                        .eq("matnr", combMat.getMatnr()));
                 if (mat == null) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + combMat.getMatnr());
                 }
@@ -632,7 +637,7 @@
         // 鏃犲崟缁勬墭
         if (Cools.isEmpty(param.getOrderNo())) {
             //绌烘澘缁勬墭
-            if (!Cools.isEmpty(param.getPakinType()) &&  param.getPakinType().equals("3")) {
+            if (!Cools.isEmpty(param.getPakinType()) && param.getPakinType().equals("3")) {
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.setZpallet(param.getBarcode());
                 waitPakin.setIoStatus("N");
@@ -713,6 +718,7 @@
                 // elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3());
                 OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
                         .eq("order_id", order.getId())
+                        .eq("supp_code", elem.getStandby1())
                         .eq("matnr", elem.getMatnr()));
                 if (Objects.isNull(elem.getBoxType1())) {
                     throw new CoolException("鏍煎眰缂栫爜涓嶈兘涓虹┖锛侊紒");
@@ -743,9 +749,16 @@
                 }
             });
 
-            Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
-            List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
-            Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
+            List<Mat> tempMats = new ArrayList<>();
+            for (DetlDto detlDto : detlDtos) {
+                Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                        .eq("matnr", detlDto.getMatnr())
+                        .eq("supp_code", detlDto.getStandby1()));
+                tempMats.add(mat);
+            }
+
+//            Set<String> matnrs = tempMats.stream().map(Mat::getMatnr).collect(Collectors.toSet());
+            Set<Long> tagIds = tempMats.stream().map(Mat::getTagId).collect(Collectors.toSet());
             if (tagIds.size() > 1) {
                 throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
             }
@@ -1191,6 +1204,7 @@
                 orderDetl.setUpdateBy(userId);
                 orderDetl.setUpdateTime(now);
                 Wrapper wrapper = new EntityWrapper<OrderDetl>().eq("order_no", orderNo)
+                        .eq(!Cools.isEmpty(orderDetl.getStandby1()), "supp_code", orderDetl.getStandby1())
                         .eq("matnr", orderDetl.getMatnr());
                 if (!Cools.isEmpty(orderDetl.getBatch())) {
                     wrapper.eq("batch", orderDetl.getBatch());
@@ -1308,7 +1322,6 @@
                 .eq("area_id", basAreas.getId())
                 .eq("frozen", 0)
                 .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                // .eq("loc_no", params.getTarSite())
                 .orderAsc(Arrays.asList("loc_no"))
                 .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
         if (Objects.isNull(locCache)) {
@@ -1337,7 +1350,7 @@
         }
 
         List<OrderDetlPakin> detlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
-                .eq(!Cools.isEmpty(params.getThreeCode()), "three_code", params.getThreeCode())
+                        .eq(!Cools.isEmpty(params.getThreeCode()), "three_code", params.getThreeCode())
 //                .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
 //                .eq(!Cools.isEmpty(params.getOrderNo()), "order_no", params.getOrderNo())
         );
@@ -1680,9 +1693,13 @@
         if (container.getMixMax() < detlDtos.size()) {
             throw new CoolException("瓒呭嚭瀹瑰櫒鏈�澶ф贩瑁呮暟閲忥紝褰撳墠瀹瑰櫒鏈�澶ф暟閲忎负锛�" + container.getMixMax() + "!!");
         }
-        Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
-        List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
-        Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
+        List<Mat> tempMats = new ArrayList<>();
+        for (DetlDto detlDto : detlDtos) {
+            Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", detlDto.getMatnr())
+                    .eq("supp_code", detlDto.getStandby1()));
+            tempMats.add(mat);
+        }
+        Set<Long> tagIds = tempMats.stream().map(Mat::getTagId).collect(Collectors.toSet());
         if (tagIds.size() > 1) {
             throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
         }
@@ -1894,7 +1911,7 @@
                     .eq("dev_no", basStation.getDevNo())
                     .eq("matnr", combMat.getMatnr())
                     .eq("batch", combMat.getBatch())
-                    .eq("standby1", combMat.getStandby1()));
+                    .eq(!Cools.isEmpty(combMat.getStandby1()), "standby1", combMat.getStandby1()));
             if (Cools.isEmpty(basStationDetl)) {
                 basStationDetl = new BasStationDetl();
                 Mat mat = matService.selectByMatnr(combMat.getMatnr());
@@ -1935,8 +1952,8 @@
         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
                 .eq("order_id", orderPakin.getId())
                 .eq("matnr", combMat.getMatnr())
-                .eq("batch", combMat.getBatch())
-                .eq("standby1", combMat.getStandby1()));
+                .eq(!Cools.isEmpty(combMat.getBatch()),"batch", combMat.getBatch())
+                .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1()));
         if (Cools.isEmpty(orderDetlPakin)) {
             throw new CoolException("妫�绱㈠崟鎹槑缁嗘暟鎹け璐�");
         }
@@ -2118,6 +2135,7 @@
         // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
         Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                 .eq("zpallet", pakin.getZpallet());
+
         WaitPakin setParam = new WaitPakin();
         setParam.setLocNo(locNo);
         setParam.setIoStatus("Y");
@@ -2226,7 +2244,9 @@
                         if (container.getMixMax() > sets.size()) {
                             //浣欎笅鍙贩鏀剧绫�
                             long suplus = Math.round((container.getMixMax() - sets.size()) * 10000) / 10000;
-                            Mat mats = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr));
+                            Mat mats = matService.selectOne(new EntityWrapper<Mat>()
+                                    .eq("supp_code", supId)
+                                    .eq("matnr", matnr));
                             if (Objects.isNull(mats)) {
                                 throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�");
                             }
@@ -2520,7 +2540,6 @@
                 if (!taskDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
-
             }
 
             for (WaitPakin pakin : pakins) {
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index a94852e..a99385e 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -160,7 +160,7 @@
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() < 4) {
+        if (wrkMast.getIoType() == 1 &&  wrkMast.getWrkSts() < 204) {
             locNo = wrkMast.getLocNo();
             locSts = "O";
 
@@ -189,7 +189,7 @@
                 throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐ワ紝鐩爣搴撲綅鐘舵�侊細" + station.getLocSts());
             }
             // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() < 14) {
             locNo = wrkMast.getSourceLocNo();
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -223,12 +223,7 @@
             } else {
                 throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐ワ紝鐩爣搴撲綅鐘舵�侊細" + station.getLocSts());
             }
-        } else {
-            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
-        }
-
-        //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
-        if (wrkMast.getIoType() == 1) {
+        } else if (wrkMast.getIoType() == 1) {
             List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
             for (WaitPakin waitPakin : waitPakins) {
                 if (!Cools.isEmpty(waitPakin)) {
@@ -241,8 +236,23 @@
                             .eq("batch", waitPakin.getBatch()));
                 }
             }
+            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+            if (station.getLocSts().equals("R")) {
+                station.setLocSts("O");
+                station.setBarcode("");
+                station.setModiTime(new Date());
+                station.setModiUser(userId);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐�");
+                }
+            }
+        } else {
+            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
 
+        //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
+
+
         //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
         if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
             List<TaskDetl> wrkDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo()));
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 e1a3156..fe251d2 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -283,7 +283,9 @@
                                 locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3(), locDetl.getAnfme(), locDetl.getThreeCode()));
                         locDetl.setOwner(param.getOwnerId());
                         try {
-                            locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", locDetl.getMatnr()));
+                            locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo)
+                                    .eq("supp_code", locDetl.getStandby1())
+                                    .eq("matnr", locDetl.getMatnr()));
                         } catch (Exception e) {
                             throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
                         }
@@ -416,17 +418,17 @@
         String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
 //        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
 
-        int ioType =  (taskDto.isAll() ? 101 : 103);
-        if(ioType == 101){
+        int ioType = (taskDto.isAll() ? 101 : 103);
+        if (ioType == 101) {
             boolean DiffQty = taskDto.getLocDtos().stream().allMatch(locDto ->
                     locDetlService.selectOne(new EntityWrapper<LocDetl>()
                             .eq("loc_no", locDto.getLocNo())
                             .eq("matnr", locDto.getMatnr())
-                            .eq("batch", locDto.getBatch())
-                            .eq("standby1",locDto.getStandby1())
+                            .eq(!Cools.isEmpty(locDto.getBatch()), "batch", locDto.getBatch())
+                            .eq("standby1", locDto.getStandby1())
                     ).getDiffQty().compareTo(BigDecimal.ZERO) == 0
             );
-            if (!DiffQty){
+            if (!DiffQty) {
                 ioType = 103;
             }
         }
@@ -559,7 +561,7 @@
             List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>()
                     .eq("loc_no", locDto.getLocNo())
                     .eq("matnr", locDto.getMatnr())
-                    .eq("batch", locDto.getBatch())
+                    .eq(!Cools.isEmpty(locDto.getBatch()),"batch", locDto.getBatch())
                     .eq("order_no", locDto.getOrderNo())
             );
 
@@ -585,7 +587,7 @@
             }
             // 淇敼璁㈠崟鏄庣粏
             checkOrderDetls.get(0).setStatus(2);
-            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))){
+            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))) {
                 throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触");
             }
         }
@@ -1279,7 +1281,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo));
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -1385,7 +1387,7 @@
 
         if (wrkMast.getIoType() == 107) {
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())) {
 
                 for (WrkDetl wrkDetl : wrkDetls) {
                     CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
@@ -1400,7 +1402,7 @@
                 CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo()));
                 List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
                 boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1));
-                checkOrder.setSettle(is?1L:12L);
+                checkOrder.setSettle(is ? 1L : 12L);
                 checkOrderService.updateById(checkOrder);
             }
 
@@ -1525,7 +1527,7 @@
 
         // .淇敼骞舵墭鍏ュ簱鏄庣粏鎵樼爜
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-                        .eq("area_id", locMast.getAreaId())
+                .eq("area_id", locMast.getAreaId())
                 .eq("loc_no", locMast.getLocNo()));
         if (!Objects.isNull(locDetls) && !locDetls.isEmpty()) {
             locDetls.forEach(locDetl -> {
@@ -1544,8 +1546,8 @@
                 wrkDetl.setZpallet(wrkMast.getBarcode());
                 wrkDetl.setBarcode(wrkMast.getBarcode());
                 if (!wrkDetlService.update(wrkDetl, new EntityWrapper<WrkDetl>()
-                                .eq("matnr", wrkDetl.getMatnr())
-                                .eq("standby1", wrkDetl.getStandby1())
+                        .eq("matnr", wrkDetl.getMatnr())
+                        .eq("standby1", wrkDetl.getStandby1())
                         .eq("wrk_no", wrkMast.getWrkNo()))) {
                     throw new CoolException("浠诲姟妗f槑缁嗕慨鏀瑰け璐ワ紒锛�");
                 }
@@ -1665,7 +1667,8 @@
         if (Cools.isEmpty(mat)) {
             throw new CoolException("鐩爣搴撲綅鍟嗗搧缂栫爜鏈夎锛�");
         }
-        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                .eq("matnr", param.getLocDetls().get(0).getMatnr()));
         if (Cools.isEmpty(locDetls) || locDetls.size() < 1) {
             throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛�  鍝佸彿锛�" + param.getLocDetls().get(0).getMatnr());
         }
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index e14d6bc..78e86ff 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,7 +1,10 @@
 package com.zy.asrs.task;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.api.controller.params.AgvCarriesParam;
 import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.entity.CallAgvParams;
+import com.zy.api.service.AgvScheduleService;
 import com.zy.api.service.WcsApiService;
 import com.zy.asrs.entity.Task;
 import com.zy.asrs.entity.WrkMast;
@@ -40,6 +43,8 @@
     private MobileService mobileService;
     @Autowired
     private TaskService taskService;
+    @Autowired
+    private AgvScheduleService agvScheduleService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
     private void execute() {
@@ -92,7 +97,7 @@
         if (wrkMasts.isEmpty()) {
             return;
         }
-        Collections.shuffle(wrkMasts);
+//        Collections.shuffle(wrkMasts);
         wrkMasts.forEach(wrkMast -> {
             WorkTaskParams params = new WorkTaskParams();
             if (wrkMast.getIoType().equals(11)) {
@@ -112,7 +117,34 @@
                 wcsApiService.pubWrkToWcs(params);
             }
         });
+
     }
 
-
+    /**
+     * AGV浠诲姟鑷姩涓嬪彂鍑哄簱浠诲姟
+     *
+     * @author Ryan
+     * @date 2026/1/10 14:42
+     */
+    @Scheduled(cron = "0/5 * * * * ? ")
+    private void autoPubAgvTasks() {
+        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().in("wrk_sts", Arrays.asList(201L, 301L)));
+        if (tasks.isEmpty()) {
+            return;
+        }
+        Collections.shuffle(tasks);
+        tasks.forEach(wrkMast -> {
+            CallAgvParams param = new CallAgvParams();
+            if (wrkMast.getIoType() == 1) {
+                param.setWrkNo(wrkMast.getWrkNo() + "");
+                param.setOrgSite(wrkMast.getSourceStaNo());
+                param.setTarSite(wrkMast.getLocNo());
+            } else if (wrkMast.getIoType() == 110 ||wrkMast.getIoType() == 101){
+                param.setWrkNo(wrkMast.getWrkNo() + "");
+                param.setOrgSite(wrkMast.getSourceLocNo());
+                param.setTarSite(wrkMast.getStaNo());
+            }
+            agvScheduleService.callAgvCarry(param);
+        });
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
index fdcd6be..8557e74 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
@@ -10,7 +10,9 @@
 import com.zy.asrs.service.WorkService;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.StartupDto;
+import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 
 /**
@@ -37,6 +40,9 @@
     @Autowired
     private WorkService workService;
 
+    @Autowired
+    private SlaveProperties slaveProperties;
+
     @Transactional(isolation = Isolation.REPEATABLE_READ)
     public ReturnT<String> start(Integer crnNo, Integer ioType) {
         try {
@@ -47,9 +53,16 @@
                         List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo);
                         if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) {
                             for (LocMast locMast : locMasts) {
-//                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-//                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
-//                                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
+                                if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+                                    String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo());
+                                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
+                                    if (!Objects.isNull(locNo)) {
+                                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null);
+                                        workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L);
+                                        break;
+                                    }
+                                }
+
                                 StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null);
                                 workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L);
                                 break;
@@ -64,6 +77,18 @@
                         List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo );
                         if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) {
                             for (LocMast locMast : locMasts) {
+//                                if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+//                                    String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo());
+//                                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>()
+//                                            .eq("crn_no", crnNo)
+//                                            .eq("loc_no", shallowLoc));
+//                                    if (!Objects.isNull(locNo)) {
+//                                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 205 : 215, 3, null, null);
+//                                        workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L);
+//                                        break;
+//                                    }
+//                                }
+
 //                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
 //                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
 //                                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
diff --git a/src/main/java/com/zy/common/constant/HIKApiConstant.java b/src/main/java/com/zy/common/constant/HIKApiConstant.java
index 88d1d7f..88632af 100644
--- a/src/main/java/com/zy/common/constant/HIKApiConstant.java
+++ b/src/main/java/com/zy/common/constant/HIKApiConstant.java
@@ -4,7 +4,9 @@
 public class HIKApiConstant {
 
     // AGV IP鍦板潃
-    public static final String AGV_IP = "10.0.100.110:8182";
+    public static final String AGV_IP = "http://192.168.238.202/rcs/rtas/api/robot/controller";
+
+    public static final String TASK_SUBMIT = "/task/submit";
 
     // 鍏ュ簱鍛煎彨AGV鍙栬揣
     public static final String AGV_CALL_IN_PATH = "/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index dbf751c..e2f8108 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -9,10 +9,13 @@
 //    public static final String URL = "http://webservice.kopen.com.cn:1482/kc-api/api/wms/ ";
     public static final String URL = "http://10.143.23.26:1482/kc-api/api/wms/ ";
 
+    //AGV鎷夊彛鍦板潃
+    public static final String AGV_URL = "http://192.168.238.202/rcs/rtas/api/robot/controller";
+
     //WCS绯荤粺鎺ュ彛鍦板潃
 //    public static final String WCS_URL = "http://192.168.238.32:9090/wcs";
 
-    public static final String WCS_URL = "http://192.168.238.241:9090/wcs";
+    public static final String WCS_URL = "http://192.168.238.31:9090/wcs";
 
     //涓婃灦娲惧伐鍗曞弽棣�
     public static final String IN_DISPATCH_RESULT = "getInDispatchResult";
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 99d99cc..66234c2 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -69,11 +69,11 @@
             logger.info("++++++++ 寮�濮嬪姞杞借鍙瘉 ++++++++");
 
             try {
-//                String publicKeysStoreFileName = this.getClass().getClassLoader().getResource(publicKeysStorePath).getPath();
-//                File publicKeysStoreFile = new File(publicKeysStoreFileName);
-//
-//                String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath();
-//                File licensePathFile = new File(licensePathFileName);
+                String publicKeysStoreFileName = this.getClass().getClassLoader().getResource(publicKeysStorePath).getPath();
+                File publicKeysStoreFile = new File(publicKeysStoreFileName);
+
+                String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath();
+                File licensePathFile = new File(licensePathFileName);
 
                 LicenseVerifyParam param = new LicenseVerifyParam();
                 param.setSubject(subject);
@@ -84,29 +84,29 @@
 
                 LicenseVerify licenseVerify = new LicenseVerify();
                 //瀹夎璇佷功
-//                LicenseContent install = licenseVerify.install(param);
+                LicenseContent install = licenseVerify.install(param);
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞芥爣璁帮紝鎼滅储淇敼 ++++++++");
                 licenseTimer.setSystemSupport(true);
-                licenseTimer.setLicenseDays(9999);
-                return true;
+//                licenseTimer.setLicenseDays(9999);
+//                return true;
 
-//                licenseTimer.setSystemSupport(install!=null);
-//
-//                if (install != null) {
-//                    Date start = new Date();
-//                    Date end = install.getNotAfter();
-//                    Long starTime = start.getTime();
-//                    Long endTime = end.getTime();
-//                    Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
-//                    int day = (int) (num / 24 / 60 / 60 / 1000);
-//                    licenseTimer.setLicenseDays(day);
-//                }
-//
-//
-//                return install != null;
+                licenseTimer.setSystemSupport(install!=null);
+
+                if (install != null) {
+                    Date start = new Date();
+                    Date end = install.getNotAfter();
+                    Long starTime = start.getTime();
+                    Long endTime = end.getTime();
+                    Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
+                    int day = (int) (num / 24 / 60 / 60 / 1000);
+                    licenseTimer.setLicenseDays(day);
+                }
+
+
+                return install != null;
             } catch (Exception e) {
                 return false;
             }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 924e229..6648022 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -12,7 +12,8 @@
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
     username: sa
     password: sa@123
-    url: jdbc:sqlserver://47.97.1.152:1433;databasename=jsxsasrs
+    url: jdbc:sqlserver://192.168.238.32:1433;databasename=jsxsasrs
+#    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jsxsasrs
   mvc:
     static-path-pattern: /**
   redis:
@@ -58,21 +59,21 @@
   # 鍙屾繁
   doubleDeep: true
   # 鍙屾繁搴撲綅鎺掑彿
-  doubleLocs: 1,4,5,8,9,12,13,16
+  doubleLocs: 11, 14
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   groupCount: 4
   # 宸︽繁搴撲綅鎺掑彿
-  doubleLocsLeft: 1,5,9,13
+  doubleLocsLeft: 11
   # 鍙虫繁搴撲綅鎺掑彿
-  doubleLocsRight: 4,8,12,16
+  doubleLocsRight: 14
 # wms鍙傛暟閰嶇疆
 wms-parameter:
   # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
-  automaticFillingBoardStaNosBoolean: false
+  automaticFillingBoardStaNosBoolean: true
   # 鑷姩琛ョ┖鏉跨珯鐐�
   automaticFillingBoardStaNos: 112,101
   # 鑷姩绉诲簱鍔熻兘寮�鍏�
-  autoLocMoveBoolean: false
+  autoLocMoveBoolean: true
   # 鑷姩绉诲簱鍔熻兘寮�鍏� 绌挎
   autoLocMoveUnilateralBoolean: false
 
@@ -113,7 +114,8 @@
 
 #KOPEN灏忔澗骞冲彴
 kopen:
-  url: webservice.kopen.com.cn
+#  url: webservice.kopen.com.cn
+  url: 10.143.23.26
   port: 1482
   prefix: /kc-api/api/wms
 
diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic
new file mode 100644
index 0000000..34644d8
--- /dev/null
+++ b/src/main/resources/license.lic
Binary files differ
diff --git a/src/main/webapp/views/locCache/locCache.html b/src/main/webapp/views/locCache/locCache.html
index c76f356..aa53ae9 100644
--- a/src/main/webapp/views/locCache/locCache.html
+++ b/src/main/webapp/views/locCache/locCache.html
@@ -119,7 +119,7 @@
         <!-- 鎺� -->
         <div class="layui-form-item">
             <div class="layui-inline">
-                <label class="layui-form-label">璧锋鎺�</label>
+                <label class="layui-form-label">璧锋</label>
                 <div class="layui-input-inline" style="width: 100px;">
                     <input type="text" name="startRow" autocomplete="off" class="layui-input"
                            lay-verify="required|number">
@@ -131,84 +131,84 @@
                 </div>
             </div>
         </div>
-        <!-- 鍒� -->
-        <div class="layui-form-item">
-            <div class="layui-inline">
-                <label class="layui-form-label">璧锋鍒�</label>
-                <div class="layui-input-inline" style="width: 100px;">
-                    <input type="text" name="startBay" autocomplete="off" class="layui-input"
-                           lay-verify="required|number">
-                </div>
-                <div class="layui-form-mid">-</div>
-                <div class="layui-input-inline" style="width: 100px;">
-                    <input type="text" name="endBay" autocomplete="off" class="layui-input"
-                           lay-verify="required|number">
-                </div>
-            </div>
-        </div>
-        <!-- 灞� -->
-        <div class="layui-form-item">
-            <div class="layui-inline">
-                <label class="layui-form-label">璧锋灞�</label>
-                <div class="layui-input-inline" style="width: 100px;">
-                    <input type="text" name="startLev" autocomplete="off" class="layui-input"
-                           lay-verify="required|number">
-                </div>
-                <div class="layui-form-mid">-</div>
-                <div class="layui-input-inline" style="width: 100px;">
-                    <input type="text" name="endLev" autocomplete="off" class="layui-input"
-                           lay-verify="required|number">
-                </div>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">鍫嗗灈鏈烘暟閲�</label>
-            <div class="layui-input-inline">
-                <input type="text" name="crnAmount" lay-verify="required|number" autocomplete="off" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <div class="layui-inline">
-                <label class="layui-form-label">璧峰鍫嗗灈鏈�</label>
-                <div class="layui-input-inline">
-                    <input type="text" name="staCrn" autocomplete="off" class="layui-input" lay-verify="number">
-                </div>
-            </div>
-        </div>
+<!--        &lt;!&ndash; 鍒� &ndash;&gt;-->
+<!--        <div class="layui-form-item">-->
+<!--            <div class="layui-inline">-->
+<!--                <label class="layui-form-label">璧锋鍒�</label>-->
+<!--                <div class="layui-input-inline" style="width: 100px;">-->
+<!--                    <input type="text" name="startBay" autocomplete="off" class="layui-input"-->
+<!--                           lay-verify="required|number">-->
+<!--                </div>-->
+<!--                <div class="layui-form-mid">-</div>-->
+<!--                <div class="layui-input-inline" style="width: 100px;">-->
+<!--                    <input type="text" name="endBay" autocomplete="off" class="layui-input"-->
+<!--                           lay-verify="required|number">-->
+<!--                </div>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        &lt;!&ndash; 灞� &ndash;&gt;-->
+<!--        <div class="layui-form-item">-->
+<!--            <div class="layui-inline">-->
+<!--                <label class="layui-form-label">璧锋灞�</label>-->
+<!--                <div class="layui-input-inline" style="width: 100px;">-->
+<!--                    <input type="text" name="startLev" autocomplete="off" class="layui-input"-->
+<!--                           lay-verify="required|number">-->
+<!--                </div>-->
+<!--                <div class="layui-form-mid">-</div>-->
+<!--                <div class="layui-input-inline" style="width: 100px;">-->
+<!--                    <input type="text" name="endLev" autocomplete="off" class="layui-input"-->
+<!--                           lay-verify="required|number">-->
+<!--                </div>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">鍫嗗灈鏈烘暟閲�</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input type="text" name="crnAmount" lay-verify="required|number" autocomplete="off" class="layui-input">-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <div class="layui-inline">-->
+<!--                <label class="layui-form-label">璧峰鍫嗗灈鏈�</label>-->
+<!--                <div class="layui-input-inline">-->
+<!--                    <input type="text" name="staCrn" autocomplete="off" class="layui-input" lay-verify="number">-->
+<!--                </div>-->
+<!--            </div>-->
+<!--        </div>-->
         <!-- 搴撲綅绫诲瀷 -->
-        <div class="layui-form-item">
-            <label class="layui-form-label">楂樹綆绫诲瀷</label>
-            <div class="layui-input-inline">
-                <select name="locType1">
-                    <option style="display: none"></option>
-                    <option value="0">鏈煡</option>
-                    <option value="1">浣庡簱浣�</option>
-                    <option value="2">楂樺簱浣�</option>
-                </select>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">瀹界獎绫诲瀷</label>
-            <div class="layui-input-inline">
-                <select name="locType2">
-                    <option style="display: none"></option>
-                    <option value="0">鏈煡</option>
-                    <option value="1">绐勫簱浣�</option>
-                    <option value="2">瀹藉簱浣�</option>
-                </select>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">杞婚噸绫诲瀷</label>
-            <div class="layui-input-inline">
-                <select name="locType3">
-                    <option style="display: none"></option>
-                    <option value="0">鏈煡</option>
-                    <option value="1">杞诲簱浣�</option>
-                    <option value="2">閲嶅簱浣�</option>
-                </select>
-            </div>
-        </div>
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">楂樹綆绫诲瀷</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <select name="locType1">-->
+<!--                    <option style="display: none"></option>-->
+<!--                    <option value="0">鏈煡</option>-->
+<!--                    <option value="1">浣庡簱浣�</option>-->
+<!--                    <option value="2">楂樺簱浣�</option>-->
+<!--                </select>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">瀹界獎绫诲瀷</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <select name="locType2">-->
+<!--                    <option style="display: none"></option>-->
+<!--                    <option value="0">鏈煡</option>-->
+<!--                    <option value="1">绐勫簱浣�</option>-->
+<!--                    <option value="2">瀹藉簱浣�</option>-->
+<!--                </select>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">杞婚噸绫诲瀷</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <select name="locType3">-->
+<!--                    <option style="display: none"></option>-->
+<!--                    <option value="0">鏈煡</option>-->
+<!--                    <option value="1">杞诲簱浣�</option>-->
+<!--                    <option value="2">閲嶅簱浣�</option>-->
+<!--                </select>-->
+<!--            </div>-->
+<!--        </div>-->
         <div style="text-align: center; margin-top: 20px">
             <button class="layui-btn layui-btn-radius layui-btn-normal" id="initDo" lay-submit lay-filter="initDo">
                 纭畾

--
Gitblit v1.9.1