From 8dc960dd9fda130ff19faaafed6b1234e622610b Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 19 十二月 2025 15:23:05 +0800
Subject: [PATCH] #

---
 src/main/resources/docs/WCS外部HTTP API接口V1.1.docx                |    0 
 src/main/java/com/zy/core/utils/StationOperateProcessUtils.java |  185 +++++---------
 src/main/java/com/zy/asrs/controller/LocMastController.java     |    6 
 src/main/resources/mapper/LocMastMapper.xml                     |    2 
 src/main/java/com/zy/core/utils/WmsOperateUtils.java            |  217 ++++++++++++++++
 src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java     |   72 +++++
 src/main/java/com/zy/asrs/entity/BasCrnp.java                   |   14 +
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java            |    4 
 src/main/java/com/zy/common/model/StartupDto.java               |    2 
 src/main/webapp/views/wrkMastLog/wrkMastLog.html                |    5 
 src/main/java/com/zy/asrs/utils/Utils.java                      |  113 +++++++
 src/main/webapp/static/js/wrkMastLog/wrkMastLog.js              |    1 
 src/main/java/com/zy/core/enums/RedisKeyType.java               |    1 
 src/main/java/com/zy/common/service/CommonService.java          |   15 
 src/main/java/com/zy/core/plugin/FakeProcess.java               |   84 +-----
 15 files changed, 512 insertions(+), 209 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 35488c6..31d7ee9 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -67,7 +67,11 @@
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
             } else {
-                wrapper.like(entry.getKey(), val);
+                if (entry.getKey().equals("loc_no")) {
+                    wrapper.eq(entry.getKey(), val);
+                }else {
+                    wrapper.like(entry.getKey(), val);
+                }
             }
         }
     }
diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index 8822edd..66d3515 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.entity;
 
+import com.alibaba.fastjson.JSONArray;
 import com.core.common.Cools;
 import com.zy.core.model.StationObjModel;
 import com.baomidou.mybatisplus.annotations.TableId;
@@ -184,4 +185,17 @@
         return list;
     }
 
+    public List<List<Integer>> getControlRows$(){
+        List<List<Integer>> rowList = new ArrayList<>();
+        if(Cools.isEmpty(this.controlRows)){
+            return rowList;
+        }
+        JSONArray list = JSON.parseArray(this.controlRows);
+        for (Object o : list) {
+            List<Integer> rows = JSON.parseArray(JSON.toJSONString(o), Integer.class);
+            rowList.add(rows);
+        }
+        return rowList;
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index 649b2f4..707d3b9 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -145,7 +145,7 @@
                 continue;
             }
 
-            LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo);
+            LocMast sourceLocMast = locMastService.queryByLoc(sourceLocNo);
             if (sourceLocMast == null) {
                 log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
                 continue;
@@ -157,6 +157,7 @@
             }
 
             locMast.setLocSts("F");
+            locMast.setBarcode(wrkMast.getBarcode());
             locMast.setModiTime(new Date());
             boolean result = locMastService.updateById(locMast);
             if (!result) {
@@ -165,6 +166,7 @@
             }
 
             sourceLocMast.setLocSts("O");
+            sourceLocMast.setBarcode("");
             sourceLocMast.setModiTime(new Date());
             boolean result2 = locMastService.updateById(sourceLocMast);
             if (!result2) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index fd191c6..5d44238 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.utils;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -167,12 +168,11 @@
                 List<WrkMast> currentCrnTask = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", currentCircleTaskCrnNo));
                 if (currentCrnTask.size() <= 1) {
                     if (basCrnp != null) {
-                        String controlRowsStr = basCrnp.getControlRows();
-                        if(!Cools.isEmpty(controlRowsStr)){
-                            List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
+                        List<List<Integer>> rowList = basCrnp.getControlRows$();
+                        for (List<Integer> rows : rowList) {
                             list.addAll(rows);
-                            wrapper.ne("crn_no", currentCircleTaskCrnNo);
                         }
+                        wrapper.ne("crn_no", currentCircleTaskCrnNo);
                     }
                 }
             }
@@ -215,19 +215,16 @@
             enabledCrnps.sort(Comparator.comparingInt(o -> map.getOrDefault(o.getCrnNo(), 0)));
 
             for (BasCrnp basCrnp : enabledCrnps) {
-                String controlRowsStr = basCrnp.getControlRows();
-                if (Cools.isEmpty(controlRowsStr)) {
-                    continue;
+                List<List<Integer>> rowList = basCrnp.getControlRows$();
+                for (List<Integer> rows : rowList) {
+                    list.addAll(rows);
                 }
-                List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
-                list.addAll(rows);
             }
         }catch (Exception e){
             e.printStackTrace();
         }
         return list;
     }
-
 
     public static Map<String, Object> convertObjectToMap(Object obj) {
         Map<String, Object> map = new HashMap<>();
@@ -243,4 +240,100 @@
         }
         return map;
     }
+
+    //鑾峰彇娣卞簱浣嶆帓鍙�
+    public static List<Integer> getDeepRowList() {
+        List<Integer> rowList = new ArrayList<>();
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return rowList;
+        }
+
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+        for (BasCrnp basCrnp : basCrnps) {
+            String deepRowsStr = basCrnp.getDeepRows();
+            if(!Cools.isEmpty(deepRowsStr)){
+                List<Integer> rows = JSON.parseArray(deepRowsStr, Integer.class);
+                rowList.addAll(rows);
+            }
+        }
+        return rowList;
+    }
+
+    //鑾峰彇娴呭簱浣嶆帓鍙�
+    public static Integer getShallowRowByDeepRow(Integer deepRow) {
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return null;
+        }
+
+        List<Integer> deepRowList = getDeepRowList();
+        if (!deepRowList.contains(deepRow)) {
+            return null;
+        }
+
+        List<Integer> controlRowList = null;
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            List<List<Integer>> rowList = basCrnp.getControlRows$();
+            for (List<Integer> rows : rowList) {
+                if (rows.contains(deepRow)) {
+                    controlRowList = rows;
+                    break;
+                }
+            }
+
+            if (controlRowList != null) {
+                break;
+            }
+        }
+
+        for (Integer row : controlRowList) {
+            if (deepRow.equals(row)) {
+                continue;
+            }
+
+            return row;
+        }
+        return null;
+    }
+
+    //鑾峰彇娣卞簱浣嶆帓鍙�
+    public static Integer getDeepRowByShallowRow(Integer shallowRow) {
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return null;
+        }
+
+        List<Integer> controlRowList = null;
+        List<Integer> deepRowList = null;
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            List<List<Integer>> rowList = basCrnp.getControlRows$();
+            for (List<Integer> rows : rowList) {
+                if (rows.contains(shallowRow)) {
+                    controlRowList = rows;
+                    deepRowList = JSON.parseArray(basCrnp.getDeepRows(), Integer.class);
+                    break;
+                }
+            }
+
+            if (controlRowList != null) {
+                break;
+            }
+        }
+
+        if (deepRowList == null) {
+            return null;
+        }
+
+        for (Integer row : controlRowList) {
+            if (!deepRowList.contains(row)) {
+                continue;
+            }
+
+            return row;
+        }
+        return null;
+    }
 }
diff --git a/src/main/java/com/zy/common/model/StartupDto.java b/src/main/java/com/zy/common/model/StartupDto.java
index f78dddc..58de959 100644
--- a/src/main/java/com/zy/common/model/StartupDto.java
+++ b/src/main/java/com/zy/common/model/StartupDto.java
@@ -7,7 +7,7 @@
 
     private String locNo;
 
-    private Integer taskNo;
+    private String taskNo;
 
     private Integer taskPri;
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 8112db3..85cdae0 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -1,6 +1,7 @@
 package com.zy.common.service;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
@@ -164,6 +165,7 @@
         wrkMast.setLocNo(param.getLocNo()); // 鐩爣搴撲綅
         wrkMast.setCrnNo(crnNo);
         wrkMast.setWmsWrkNo(param.getTaskNo());
+        wrkMast.setBarcode(sourceLocMast.getBarcode());
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
         boolean res = wrkMastService.insert(wrkMast);
@@ -310,14 +312,11 @@
     public Integer findCrnNoByLocNo(String locNo) {
         List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
         for (BasCrnp basCrnp : basCrnps) {
-            String controlRows = basCrnp.getControlRows();
-            if (Cools.isEmpty(controlRows)) {
-                continue;
-            }
-
-            List<Integer> rowList = JSON.parseArray(controlRows, Integer.class);
-            if(rowList.contains(Utils.getRow(locNo))) {
-                return basCrnp.getCrnNo();
+            List<List<Integer>> rowList = basCrnp.getControlRows$();
+            for (List<Integer> rows : rowList) {
+                if(rows.contains(Utils.getRow(locNo))) {
+                    return basCrnp.getCrnNo();
+                }
             }
         }
         return null;
diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java
index 1a85593..4e0b75d 100644
--- a/src/main/java/com/zy/core/enums/RedisKeyType.java
+++ b/src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -34,6 +34,7 @@
     STATION_IN_EXECUTE_LIMIT("station_in_execute_limit_"),
     STATION_OUT_EXECUTE_LIMIT("station_out_execute_limit_"),
     CHECK_STATION_RUN_BLOCK_LIMIT_("check_station_run_block_limit_"),
+    CHECK_SHALLOW_LOC_STATUS_LIMIT("check_shallow_loc_status_limit_"),
 
     CURRENT_CIRCLE_TASK_CRN_NO("current_circle_task_crn_no_"),
     AI_CHAT_HISTORY("ai_chat_history_"),
diff --git a/src/main/java/com/zy/core/plugin/FakeProcess.java b/src/main/java/com/zy/core/plugin/FakeProcess.java
index 703ec18..53193ef 100644
--- a/src/main/java/com/zy/core/plugin/FakeProcess.java
+++ b/src/main/java/com/zy/core/plugin/FakeProcess.java
@@ -8,10 +8,8 @@
 import com.zy.asrs.domain.param.CreateOutTaskParam;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.Utils;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
-import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
 import com.zy.core.cache.MessageQueue;
@@ -27,6 +25,7 @@
 import com.zy.core.thread.StationThread;
 import com.zy.core.utils.CrnOperateProcessUtils;
 import com.zy.core.utils.StationOperateProcessUtils;
+import com.zy.core.utils.WmsOperateUtils;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
@@ -64,7 +63,7 @@
     @Autowired
     private StationOperateProcessUtils stationOperateProcessUtils;
     @Autowired
-    private HttpRequestLogService httpRequestLogService;
+    private WmsOperateUtils wmsOperateUtils;
 
     @Override
     public void run() {
@@ -372,79 +371,30 @@
                         continue;
                     }
 
-                    String wmsUrl = null;
-                    Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
-                    if (wmsSystemUriConfig != null) {
-                        wmsUrl = wmsSystemUriConfig.getValue();
-                    }
-
-                    if(wmsUrl == null){
-                        News.error("鏈厤缃甒MS绯荤粺URI锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemUri");
-                        return;
-                    }
-
-                    String wmsSystemInUrl = null;
-                    Config wmsSystemInUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemInUrl"));
-                    if (wmsSystemInUrlConfig != null) {
-                        wmsSystemInUrl = wmsSystemInUrlConfig.getValue();
-                    }
-
-                    if(wmsSystemInUrlConfig == null){
-                        News.error("鏈厤缃甒MS鍏ュ簱鎺ュ彛鍦板潃锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemInUrl");
-                        return;
-                    }
-
                     Object lock = redisUtil.get(RedisKeyType.GENERATE_IN_TASK_LIMIT.key + stationId);
                     if (lock != null) {
                         continue;
                     }
-
                     redisUtil.set(RedisKeyType.GENERATE_IN_TASK_LIMIT.key + stationId, "lock", 5);
 
-                    HashMap<String, Object> requestParam = new HashMap<>();
-                    String response = null;
-                    try {
-                        requestParam.put("barcode", stationProtocol.getBarcode());
-                        requestParam.put("sourceStaNo", stationProtocol.getStationId());
-                        requestParam.put("locType1", stationProtocol.getPalletHeight());
-                        requestParam.put("row", Utils.getInTaskEnableRow());
+                    String response = wmsOperateUtils.applyInTask(stationProtocol.getBarcode(), stationProtocol.getStationId(), stationProtocol.getPalletHeight());
+                    JSONObject jsonObject = JSON.parseObject(response);
+                    if (jsonObject.getInteger("code").equals(200)) {
+                        StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
-                        response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath(wmsSystemInUrl)
-                                .setJson(JSON.toJSONString(requestParam))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+                        CreateInTaskParam taskParam = new CreateInTaskParam();
+                        taskParam.setTaskNo(dto.getTaskNo());
+                        taskParam.setLocNo(dto.getLocNo());
+                        taskParam.setTaskPri(dto.getTaskPri());
+                        taskParam.setBarcode(stationProtocol.getBarcode());
+                        WrkMast wrkMast = commonService.createInTask(taskParam);
 
-                            CreateInTaskParam taskParam = new CreateInTaskParam();
-                            taskParam.setTaskNo(String.valueOf(dto.getTaskNo()));
-                            taskParam.setLocNo(dto.getLocNo());
-                            taskParam.setTaskPri(dto.getTaskPri());
-                            taskParam.setBarcode(stationProtocol.getBarcode());
-                            WrkMast wrkMast = commonService.createInTask(taskParam);
-
-                            StationCommand command = stationThread.getMoveCommand(wrkMast.getWrkNo(), stationId, stationId, 0);
-                            if(command == null){
-                                News.taskInfo(wrkMast.getWrkNo(), "鑾峰彇杈撻�佺嚎鍛戒护澶辫触");
-                                continue;
-                            }
-                            MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
-                            News.info("璇锋眰WMS鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemInUrl, JSON.toJSONString(requestParam), response);
-                        } else {
-                            News.error("璇锋眰WMS鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemInUrl, JSON.toJSONString(requestParam), response);
+                        StationCommand command = stationThread.getMoveCommand(wrkMast.getWrkNo(), stationId, stationId, 0);
+                        if(command == null){
+                            News.taskInfo(wrkMast.getWrkNo(), "鑾峰彇杈撻�佺嚎鍛戒护澶辫触");
+                            continue;
                         }
-                    } catch (Exception e) {
-                        News.error("璇锋眰WMS鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemInUrl, JSON.toJSONString(requestParam), response, e);
-                    } finally {
-                        HttpRequestLog httpRequestLog = new HttpRequestLog();
-                        httpRequestLog.setName(wmsUrl + wmsSystemInUrl);
-                        httpRequestLog.setRequest(JSON.toJSONString(requestParam));
-                        httpRequestLog.setResponse(response);
-                        httpRequestLog.setCreateTime(new Date());
-                        httpRequestLogService.insert(httpRequestLog);
+                        MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
                     }
                 }
             }
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index 4bfb1ff..26954d7 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -1,7 +1,10 @@
 package com.zy.core.utils;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.domain.param.CreateLocMoveTaskParam;
 import com.zy.asrs.entity.BasCrnp;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkMast;
@@ -9,6 +12,8 @@
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.model.StartupDto;
+import com.zy.common.service.CommonService;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
 import com.zy.core.cache.MessageQueue;
@@ -17,7 +22,6 @@
 import com.zy.core.model.StationObjModel;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.command.StationCommand;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.thread.CrnThread;
@@ -40,6 +44,10 @@
     private LocMastService locMastService;
     @Autowired
     private RedisUtil redisUtil;
+    @Autowired
+    private WmsOperateUtils wmsOperateUtils;
+    @Autowired
+    private CommonService commonService;
 
     //鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
     public synchronized void crnIoExecute() {
@@ -170,6 +178,13 @@
                 continue;
             }
 
+            //妫�娴嬫祬搴撲綅鐘舵��
+            boolean checkStatus = checkShallowLocStatus(locMast.getLocNo(), wrkMast.getWrkNo());
+            if (!checkStatus) {
+                News.taskInfo(wrkMast.getWrkNo(), "鍥犳祬搴撲綅鍫靛鏃犳硶鎵ц");
+                continue;
+            }
+
             String sourceLocNo = Utils.getLocNo(stationObjModel.getDeviceRow(), stationObjModel.getDeviceBay(), stationObjModel.getDeviceLev());
 
             CrnCommand command = crnThread.getPickAndPutCommand(sourceLocNo, wrkMast.getLocNo(), wrkMast.getWrkNo(), crnNo);
@@ -248,6 +263,13 @@
 
                 if (!locMast.getLocSts().equals("R")) {
                     News.taskInfo(wrkMast.getWrkNo(), "婧愬簱浣�:{} 鐘舵�佸紓甯�", wrkMast.getSourceLocNo());
+                    continue;
+                }
+
+                //妫�娴嬫祬搴撲綅鐘舵��
+                boolean checkStatus = checkShallowLocStatus(locMast.getLocNo(), wrkMast.getWrkNo());
+                if (!checkStatus) {
+                    News.taskInfo(wrkMast.getWrkNo(), "鍥犳祬搴撲綅鍫靛鏃犳硶鎵ц");
                     continue;
                 }
 
@@ -376,4 +398,52 @@
         }
     }
 
+    //妫�娴嬫祬搴撲綅鐘舵��
+    public synchronized boolean checkShallowLocStatus(String locNo, Integer taskNo) {
+        Object lock = redisUtil.get(RedisKeyType.CHECK_SHALLOW_LOC_STATUS_LIMIT.key + taskNo);
+        if (lock != null) {
+            return false;
+        }
+        redisUtil.set(RedisKeyType.CHECK_SHALLOW_LOC_STATUS_LIMIT.key + taskNo, "lock", 5);
+
+        Integer shallowRow = Utils.getShallowRowByDeepRow(Utils.getRow(locNo));
+        if (shallowRow == null) {
+            return true;
+        }
+
+        String shallowLocNo = Utils.getLocNo(shallowRow, Utils.getBay(locNo), Utils.getLev(locNo));
+        LocMast shallowLocMast = locMastService.queryByLoc(shallowLocNo);
+        if (shallowLocMast == null) {
+            News.taskInfo(taskNo, "娴呭簱浣�:{} 鏁版嵁涓嶅瓨鍦�", shallowLocNo);
+            return false;
+        }
+
+        if (shallowLocMast.getLocSts().equals("O")) {
+            return true;
+        }
+
+        if (shallowLocMast.getLocSts().equals("F")) {
+            //娴呭簱浣嶇姸鎬佹湁璐�,鐢宠鏇存崲搴撲綅
+            String response = wmsOperateUtils.applyChangeLocNo(shallowLocNo);
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.getInteger("code").equals(200)) {
+                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+                String moveLocNo = dto.getLocNo();
+
+                CreateLocMoveTaskParam moveTaskParam = new CreateLocMoveTaskParam();
+                moveTaskParam.setTaskNo(dto.getTaskNo());
+                moveTaskParam.setSourceLocNo(shallowLocNo);
+                moveTaskParam.setLocNo(moveLocNo);
+                try {
+                    boolean result = commonService.createLocMoveTask(moveTaskParam);
+                } catch (CoolException e) {
+                    News.taskInfo(taskNo, e.getMessage());
+                }
+            } else {
+                News.error("璇锋眰WMS鐢宠鏇存崲搴撲綅鎺ュ彛澶辫触锛侊紒锛乺esponse锛歿}", response);
+            }
+        }
+        return false;
+    }
+
 }
diff --git a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
index 5c31a55..14c4277 100644
--- a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
@@ -3,14 +3,10 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.domain.param.CreateInTaskParam;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.Utils;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
-import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
 import com.zy.core.cache.MessageQueue;
@@ -23,8 +19,6 @@
 import com.zy.core.model.command.StationCommand;
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.thread.StationThread;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -44,11 +38,9 @@
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
-    private ConfigService configService;
-    @Autowired
-    private HttpRequestLogService httpRequestLogService;
-    @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private WmsOperateUtils wmsOperateUtils;
 
     //鎵ц杈撻�佺珯鐐瑰叆搴撲换鍔�
     public synchronized void stationInExecute() {
@@ -220,28 +212,6 @@
 
     //妫�娴嬭緭閫佺珯鐐规槸鍚﹁繍琛屽牭濉�
     public synchronized void checkStationRunBlock() {
-        String wmsUrl = null;
-        Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
-        if (wmsSystemUriConfig != null) {
-            wmsUrl = wmsSystemUriConfig.getValue();
-        }
-
-        if(wmsUrl == null){
-            News.error("鏈厤缃甒MS绯荤粺URI锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemUri");
-            return;
-        }
-
-        String wmsSystemReassignInTaskUrl = null;
-        Config wmsSystemReassignInTaskUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemReassignInTaskUrl"));
-        if (wmsSystemReassignInTaskUrlConfig != null) {
-            wmsSystemReassignInTaskUrl = wmsSystemReassignInTaskUrlConfig.getValue();
-        }
-
-        if(wmsSystemReassignInTaskUrl == null){
-            News.error("鏈厤缃甒MS浠诲姟閲嶆柊鍒嗛厤鍏ュ簱搴撲綅鎺ュ彛鍦板潃锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemReassignInTaskUrl");
-            return;
-        }
-
         List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
         for (BasDevp basDevp : basDevps) {
             StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, basDevp.getDevpNo());
@@ -276,96 +246,73 @@
                     if (runBlockReassignLocStationList.contains(stationProtocol.getStationId())) {
                         //绔欑偣澶勪簬閲嶆柊鍒嗛厤搴撲綅鍖哄煙
                         //杩愯鍫靛锛岄噸鏂扮敵璇蜂换鍔�
+                        String response = wmsOperateUtils.applyReassignTaskLocNo(wrkMast.getWrkNo());
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        if (jsonObject.getInteger("code").equals(200)) {
+                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
-                        HashMap<String, Object> requestParam = new HashMap<>();
-                        String response = null;
-                        try {
-                            requestParam.put("taskNo", wrkMast.getWmsWrkNo());
-                            requestParam.put("row", Utils.getInTaskEnableRow(new ArrayList<>(basDevp.getDevpNo())));
+                            String sourceLocNo = wrkMast.getLocNo();
+                            String locNo = dto.getLocNo();
 
-                            response = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath(wmsSystemReassignInTaskUrl)
-                                    .setJson(JSON.toJSONString(requestParam))
-                                    .build()
-                                    .doPost();
-                            JSONObject jsonObject = JSON.parseObject(response);
-                            if (jsonObject.getInteger("code").equals(200)) {
-                                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                                String sourceLocNo = wrkMast.getLocNo();
-                                String locNo = dto.getLocNo();
-
-                                LocMast sourceLocMast = locMastService.queryByLoc(sourceLocNo);
-                                if (sourceLocMast == null) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 婧愬簱浣嶄俊鎭笉瀛樺湪", sourceLocNo);
-                                    continue;
-                                }
-
-                                if (!sourceLocMast.getLocSts().equals("S")) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 婧愬簱浣嶇姸鎬佷笉澶勪簬鍏ュ簱棰勭害", sourceLocNo);
-                                    continue;
-                                }
-
-                                LocMast locMast = locMastService.queryByLoc(locNo);
-                                if (locMast == null) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 鐩爣搴撲綅淇℃伅涓嶅瓨鍦�", locNo);
-                                    continue;
-                                }
-
-                                if (!locMast.getLocSts().equals("O")) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 鐩爣搴撲綅鐘舵�佷笉澶勪簬绌哄簱浣�", locNo);
-                                    continue;
-                                }
-
-                                Integer crnNo = commonService.findCrnNoByLocNo(locNo);
-                                if (crnNo == null) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "鏈尮閰嶅埌鍫嗗灈鏈�");
-                                    continue;
-                                }
-
-                                Integer targetStationId = commonService.findInStationId(crnNo, stationProtocol.getStationId());
-                                if (targetStationId == null) {
-                                    News.taskInfo(wrkMast.getWrkNo(), "鎼滅储鍏ュ簱绔欑偣澶辫触");
-                                    continue;
-                                }
-
-                                StationCommand command = stationThread.getMoveCommand(wrkMast.getWrkNo(), stationProtocol.getStationId(), targetStationId, 0);
-                                if(command == null){
-                                    News.taskInfo(wrkMast.getWrkNo(), "鑾峰彇杈撻�佺嚎鍛戒护澶辫触");
-                                    continue;
-                                }
-
-                                //鏇存柊婧愬簱浣�
-                                sourceLocMast.setLocSts("O");
-                                sourceLocMast.setModiTime(new Date());
-                                locMastService.updateById(sourceLocMast);
-
-                                //鏇存柊鐩爣搴撲綅
-                                locMast.setLocSts("S");
-                                locMast.setModiTime(new Date());
-                                locMastService.updateById(locMast);
-
-                                //鏇存柊宸ヤ綔妗f暟鎹�
-                                wrkMast.setLocNo(locNo);
-                                wrkMast.setCrnNo(crnNo);
-                                wrkMast.setStaNo(targetStationId);
-                                if (wrkMastService.updateById(wrkMast)) {
-                                    MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
-                                }
-                                News.info("璇锋眰WMS鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemReassignInTaskUrl, JSON.toJSONString(requestParam), response);
-                            } else {
-                                News.error("璇锋眰WMS鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemReassignInTaskUrl, JSON.toJSONString(requestParam), response);
+                            LocMast sourceLocMast = locMastService.queryByLoc(sourceLocNo);
+                            if (sourceLocMast == null) {
+                                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 婧愬簱浣嶄俊鎭笉瀛樺湪", sourceLocNo);
+                                continue;
                             }
-                        } catch (Exception e) {
-                            News.error("璇锋眰WMS鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛� response锛歿}", wmsUrl + wmsSystemReassignInTaskUrl, JSON.toJSONString(requestParam), response, e);
-                        } finally {
-                            HttpRequestLog httpRequestLog = new HttpRequestLog();
-                            httpRequestLog.setName(wmsUrl + wmsSystemReassignInTaskUrl);
-                            httpRequestLog.setRequest(JSON.toJSONString(requestParam));
-                            httpRequestLog.setResponse(response);
-                            httpRequestLog.setCreateTime(new Date());
-                            httpRequestLogService.insert(httpRequestLog);
+
+                            if (!sourceLocMast.getLocSts().equals("S")) {
+                                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 婧愬簱浣嶇姸鎬佷笉澶勪簬鍏ュ簱棰勭害", sourceLocNo);
+                                continue;
+                            }
+
+                            LocMast locMast = locMastService.queryByLoc(locNo);
+                            if (locMast == null) {
+                                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 鐩爣搴撲綅淇℃伅涓嶅瓨鍦�", locNo);
+                                continue;
+                            }
+
+                            if (!locMast.getLocSts().equals("O")) {
+                                News.taskInfo(wrkMast.getWrkNo(), "搴撲綅鍙�:{} 鐩爣搴撲綅鐘舵�佷笉澶勪簬绌哄簱浣�", locNo);
+                                continue;
+                            }
+
+                            Integer crnNo = commonService.findCrnNoByLocNo(locNo);
+                            if (crnNo == null) {
+                                News.taskInfo(wrkMast.getWrkNo(), "鏈尮閰嶅埌鍫嗗灈鏈�");
+                                continue;
+                            }
+
+                            Integer targetStationId = commonService.findInStationId(crnNo, stationProtocol.getStationId());
+                            if (targetStationId == null) {
+                                News.taskInfo(wrkMast.getWrkNo(), "鎼滅储鍏ュ簱绔欑偣澶辫触");
+                                continue;
+                            }
+
+                            StationCommand command = stationThread.getMoveCommand(wrkMast.getWrkNo(), stationProtocol.getStationId(), targetStationId, 0);
+                            if(command == null){
+                                News.taskInfo(wrkMast.getWrkNo(), "鑾峰彇杈撻�佺嚎鍛戒护澶辫触");
+                                continue;
+                            }
+
+                            //鏇存柊婧愬簱浣�
+                            sourceLocMast.setLocSts("O");
+                            sourceLocMast.setModiTime(new Date());
+                            locMastService.updateById(sourceLocMast);
+
+                            //鏇存柊鐩爣搴撲綅
+                            locMast.setLocSts("S");
+                            locMast.setModiTime(new Date());
+                            locMastService.updateById(locMast);
+
+                            //鏇存柊宸ヤ綔妗f暟鎹�
+                            wrkMast.setLocNo(locNo);
+                            wrkMast.setCrnNo(crnNo);
+                            wrkMast.setStaNo(targetStationId);
+                            if (wrkMastService.updateById(wrkMast)) {
+                                MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command));
+                            }
+                        } else {
+                            News.error("璇锋眰WMS鎺ュ彛澶辫触锛侊紒锛乺esponse锛歿}", response);
                         }
                     }else {
                         //杩愯鍫靛锛岄噸鏂拌绠楄矾绾�
diff --git a/src/main/java/com/zy/core/utils/WmsOperateUtils.java b/src/main/java/com/zy/core/utils/WmsOperateUtils.java
new file mode 100644
index 0000000..a2c975a
--- /dev/null
+++ b/src/main/java/com/zy/core/utils/WmsOperateUtils.java
@@ -0,0 +1,217 @@
+package com.zy.core.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.HttpRequestLog;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.HttpRequestLogService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
+import com.zy.core.News;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Component
+public class WmsOperateUtils {
+
+    @Autowired
+    private ConfigService configService;
+    @Autowired
+    private HttpRequestLogService httpRequestLogService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private BasCrnpService basCrnpService;
+
+    //鐢宠鍏ュ簱浠诲姟
+    public synchronized String applyInTask(String barcode, Integer sourceStaNo, Integer locType1) {
+        String wmsUrl = null;
+        Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
+        if (wmsSystemUriConfig != null) {
+            wmsUrl = wmsSystemUriConfig.getValue();
+        }
+
+        if (wmsUrl == null) {
+            News.error("鏈厤缃甒MS绯荤粺URI锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemUri");
+            return null;
+        }
+
+        String wmsSystemInUrl = null;
+        Config wmsSystemInUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemInUrl"));
+        if (wmsSystemInUrlConfig != null) {
+            wmsSystemInUrl = wmsSystemInUrlConfig.getValue();
+        }
+
+        if(wmsSystemInUrlConfig == null){
+            News.error("鏈厤缃甒MS鍏ュ簱鎺ュ彛鍦板潃锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemInUrl");
+            return null;
+        }
+
+        HashMap<String, Object> requestParam = new HashMap<>();
+        String response = null;
+        try {
+            requestParam.put("barcode", barcode);
+            requestParam.put("sourceStaNo", sourceStaNo);
+            requestParam.put("locType1", locType1);
+            requestParam.put("row", Utils.getInTaskEnableRow());
+
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath(wmsSystemInUrl)
+                    .setJson(JSON.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            News.info("璇锋眰WMS鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemInUrl, JSON.toJSONString(requestParam), response);
+        } catch (Exception e) {
+            News.error("璇锋眰WMS鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemInUrl, JSON.toJSONString(requestParam), response, e);
+        } finally {
+            HttpRequestLog httpRequestLog = new HttpRequestLog();
+            httpRequestLog.setName(wmsUrl + wmsSystemInUrl);
+            httpRequestLog.setRequest(JSON.toJSONString(requestParam));
+            httpRequestLog.setResponse(response);
+            httpRequestLog.setCreateTime(new Date());
+            httpRequestLogService.insert(httpRequestLog);
+        }
+        return response;
+    }
+
+    //鐢宠浠诲姟閲嶆柊鍒嗛厤搴撲綅
+    public synchronized String applyReassignTaskLocNo(Integer taskNo) {
+        String wmsUrl = null;
+        Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
+        if (wmsSystemUriConfig != null) {
+            wmsUrl = wmsSystemUriConfig.getValue();
+        }
+
+        if (wmsUrl == null) {
+            News.error("鏈厤缃甒MS绯荤粺URI锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemUri");
+            return null;
+        }
+
+        String wmsSystemReassignInTaskUrl = null;
+        Config wmsSystemReassignInTaskUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemReassignInTaskUrl"));
+        if (wmsSystemReassignInTaskUrlConfig != null) {
+            wmsSystemReassignInTaskUrl = wmsSystemReassignInTaskUrlConfig.getValue();
+        }
+
+        if(wmsSystemReassignInTaskUrl == null){
+            News.error("鏈厤缃甒MS浠诲姟閲嶆柊鍒嗛厤鍏ュ簱搴撲綅鎺ュ彛鍦板潃锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemReassignInTaskUrl");
+            return null;
+        }
+
+        WrkMast wrkMast = wrkMastService.selectByWorkNo(taskNo);
+        if (wrkMast == null) {
+            News.info("鏃犳硶鎵惧埌瀵瑰簲浠诲姟锛屽伐浣滃彿={}", taskNo);
+            return null;
+        }
+
+        HashMap<String, Object> requestParam = new HashMap<>();
+        String response = null;
+        try {
+            requestParam.put("taskNo", wrkMast.getWmsWrkNo());
+            requestParam.put("row", Utils.getInTaskEnableRow(new ArrayList<>(wrkMast.getCrnNo())));
+
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath(wmsSystemReassignInTaskUrl)
+                    .setJson(JSON.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            News.info("璇锋眰WMS鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemReassignInTaskUrl, JSON.toJSONString(requestParam), response);
+        } catch (Exception e) {
+            News.error("璇锋眰WMS鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛� response锛歿}", wmsUrl + wmsSystemReassignInTaskUrl, JSON.toJSONString(requestParam), response, e);
+        } finally {
+            HttpRequestLog httpRequestLog = new HttpRequestLog();
+            httpRequestLog.setName(wmsUrl + wmsSystemReassignInTaskUrl);
+            httpRequestLog.setRequest(JSON.toJSONString(requestParam));
+            httpRequestLog.setResponse(response);
+            httpRequestLog.setCreateTime(new Date());
+            httpRequestLogService.insert(httpRequestLog);
+        }
+        return response;
+    }
+
+    //鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅
+    public synchronized String applyChangeLocNo(String locNo) {
+        String wmsUrl = null;
+        Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
+        if (wmsSystemUriConfig != null) {
+            wmsUrl = wmsSystemUriConfig.getValue();
+        }
+
+        if (wmsUrl == null) {
+            News.error("鏈厤缃甒MS绯荤粺URI锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemUri");
+            return null;
+        }
+
+        String wmsSystemChangeLocNoUrl = null;
+        Config wmsSystemChangeLocNoUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemChangeLocNoUrl"));
+        if (wmsSystemChangeLocNoUrlConfig != null) {
+            wmsSystemChangeLocNoUrl = wmsSystemChangeLocNoUrlConfig.getValue();
+        }
+
+        if(wmsSystemChangeLocNoUrl == null){
+            News.error("鏈厤缃敵璇峰湪搴撳簱浣嶆洿鎹㈠簱浣嶆帴鍙e湴鍧�锛岄厤缃枃浠禖ode缂栫爜锛歸msSystemChangeLocNoUrl");
+            return null;
+        }
+
+        Integer crnNo = commonService.findCrnNoByLocNo(locNo);
+        if (crnNo == null) {
+            return null;
+        }
+        BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", crnNo));
+        if (basCrnp == null) {
+            return null;
+        }
+
+        List<Integer> crnRows = new ArrayList<>();
+        List<List<Integer>> rowList = basCrnp.getControlRows$();
+        for (List<Integer> list : rowList) {
+            crnRows.addAll(list);
+        }
+
+        HashMap<String, Object> requestParam = new HashMap<>();
+        String response = null;
+        try {
+            requestParam.put("locNo", locNo);
+            requestParam.put("row", crnRows);
+
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath(wmsSystemChangeLocNoUrl)
+                    .setJson(JSON.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            News.info("璇锋眰WMS鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemChangeLocNoUrl, JSON.toJSONString(requestParam), response);
+
+            return response;
+        } catch (Exception e) {
+            News.error("璇锋眰WMS鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + wmsSystemChangeLocNoUrl, JSON.toJSONString(requestParam), response, e);
+        } finally {
+            HttpRequestLog httpRequestLog = new HttpRequestLog();
+            httpRequestLog.setName(wmsUrl + wmsSystemChangeLocNoUrl);
+            httpRequestLog.setRequest(JSON.toJSONString(requestParam));
+            httpRequestLog.setResponse(response);
+            httpRequestLog.setCreateTime(new Date());
+            httpRequestLogService.insert(httpRequestLog);
+        }
+        return null;
+    }
+
+}
diff --git "a/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.1.docx" "b/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.1.docx"
new file mode 100644
index 0000000..7c18df0
--- /dev/null
+++ "b/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.1.docx"
Binary files differ
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index a5cab45..dbc13f0 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -35,6 +35,6 @@
     </select>
 
     <select id="getLevList" resultType="java.lang.Integer">
-        select distinct lev1 from asr_loc_mast
+        select distinct lev1 from asr_loc_mast order by lev1 asc
     </select>
 </mapper>
diff --git a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
index 9125916..246da2d 100644
--- a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -21,6 +21,7 @@
         cellMinWidth: 50,
         cols: [[
             {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',event: 'wrkNo', sort: true}
+            ,{field: 'wmsWrkNo', align: 'center',title: 'WMS宸ヤ綔鍙�'}
             ,{field: 'appeTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true}
             ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
             ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
diff --git a/src/main/webapp/views/wrkMastLog/wrkMastLog.html b/src/main/webapp/views/wrkMastLog/wrkMastLog.html
index 059138c..59b3ae4 100644
--- a/src/main/webapp/views/wrkMastLog/wrkMastLog.html
+++ b/src/main/webapp/views/wrkMastLog/wrkMastLog.html
@@ -19,6 +19,11 @@
         </div>
     </div>
     <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="wms_wrk_no" placeholder="WMS宸ヤ綔鍙�" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
         <div class="layui-input-inline cool-auto-complete">
             <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
             <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="宸ヤ綔鐘舵��" onfocus=this.blur()>

--
Gitblit v1.9.1