From 896f33f0f2db0798333f3298a7fa15e99691059c Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 05 十一月 2025 09:33:43 +0800
Subject: [PATCH] 初始化

---
 src/main/java/com/zy/system/service/impl/ConfigServiceImpl.java |    7 
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java  |    4 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java     |  371 +++++++++++++++++--------------------
 src/main/resources/mapper/LocMastMapper.xml                     |    2 
 src/main/webapp/views/console.html                              |   19 +
 src/main/java/com/zy/system/service/ConfigService.java          |    1 
 src/main/webapp/static/js/console.map.js                        |   82 +++++---
 pom.xml                                                         |    2 
 src/main/java/com/zy/system/mapper/ConfigMapper.java            |    3 
 src/main/java/com/zy/asrs/service/WrkMastService.java           |    4 
 src/main/webapp/views/crn.html                                  |   12 
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java  |   10 +
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java             |    2 
 src/main/webapp/static/js/console.js                            |    2 
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java             |    6 
 src/main/java/com/zy/core/MainProcess.java                      |    2 
 src/main/webapp/static/js/common.js                             |    2 
 src/main/java/com/zy/asrs/service/LocMastService.java           |    2 
 src/main/resources/application.yml                              |   44 ++++
 19 files changed, 321 insertions(+), 256 deletions(-)

diff --git a/pom.xml b/pom.xml
index 681c826..f2b15d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -193,7 +193,7 @@
 
 
     <build>
-        <finalName>rqdzwcs</finalName>
+        <finalName>wcs</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 9fd1d06..3670a2c 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -30,7 +30,7 @@
 
     LocMast queryDemoSourceLoc(@Param("crnNo") Integer crnNo);
 
-    LocMast queryDemoLoc(@Param("crnNo") Integer crnNo);
+    LocMast queryDemoLoc(@Param("crnNo") Integer crnNo,@Param("loc_type2") String locType2);
 
     @Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type1 = #{locType1} and crn_no = #{crnNo}")
     Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index bee4e81..3c4accb 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -113,4 +113,10 @@
     WrkMast selectPickStep2(@Param("barcode")String barcode);
 
     WrkMast selectByWrkNo(@Param("wrkNo")Integer wrkNo);
+
+    @Select("select count(*) from asr_wrk_mast where io_type = 1 and io_type = 10 and io_type = 53 and io_type = 54 and io_type = 57;")
+    Integer selectIn();
+
+    @Select("select count(*) from asr_wrk_mast where io_type = 101 and io_type = 103 and io_type = 104 and io_type = 107 and io_type = 110;")
+    Integer selectOut();
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index bc45966..dc2effd 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -36,7 +36,7 @@
      * @param crn
      * @return
      */
-    LocMast queryDemoLoc(Integer crn);
+    LocMast queryDemoLoc(Integer crn,String locType2);
 
     /**
      * 妫�鏌ュ綋鍓嶅簱浣嶆墍灞炲贩閬撶殑绌哄簱浣嶆暟閲�
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index 04771dc..dffd150 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -16,4 +16,8 @@
     int getOutToStn182(Integer devpNo);
 
     WrkMast selectByWrkNo(int wrkNo);
+
+    Integer selectIn();
+
+    Integer selectOut();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index ababf93..20f1c09 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -40,8 +40,8 @@
     }
 
     @Override
-    public LocMast queryDemoLoc(Integer crn) {
-        return this.baseMapper.queryDemoLoc(crn);
+    public LocMast queryDemoLoc(Integer crn,String locType2) {
+        return this.baseMapper.queryDemoLoc(crn,locType2);
     }
 
     @Override
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index f8594dc..10a268e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -39,6 +39,7 @@
 import com.zy.core.thread.LedThread;
 import com.zy.core.thread.RgvThread;
 import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -97,6 +98,8 @@
     private BasRgvMapService basRgvMapService;
     @Autowired
     private BasCrnOptService crnOptService;
+    @Autowired
+    private ConfigService configService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -104,6 +107,9 @@
     private boolean isToOrigin;
 
     public Integer wrkNo = 10000;
+
+    /*鍫嗗灈鏈哄叆鍑哄簱浠诲姟涓嬪彂鎺у埗鍙傛暟*/
+//    Integer ioControl=configService.selectCrnIo(Integer mark);
 
     /**
      * 缁勬墭
@@ -153,28 +159,18 @@
                     errMsg = "鍙宠秴闄�";
                     back = true;
                 }
-                if (!back && staProtocol.getWeight() > 15000) {
-                    errMsg = "瓒呴噸鎴栨湭璇诲彇";
+                if (!back && staProtocol.isWeightErr()) {
+                    errMsg = "瓒呴噸";
                     back = true;
                 }
                 if (!back && staProtocol.isBarcodeErr()) {
                     errMsg = "鎵爜澶辫触";
                     back = true;
                 }
-//                if(staProtocol.getWeight() <= 0 ){
-//                    continue;
-//                }
-//                if (!back && staProtocol.getWeight() == 0.0) {
-//                    errMsg = "閲嶉噺鑾峰彇澶辫触";
-//                    back = true;
-//                }
-
-//                News.info("{}閲嶉噺", staProtocol.getWeight());
 
                 // 閫�鍥�
                 if (back) {
                     log.info("errmsg: " + errMsg);
-//                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
 
                     if (!staProtocol.isLoading()) {
@@ -185,11 +181,10 @@
                     }
                     staProtocol.setWorkNo(wrkNo);//閫�鍥� 宸ヤ綔鍙�:10000
                     News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
-//                    wrkNo++;
                     staProtocol.setStaNo(inSta.getBackSta().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+                    log.error("杈撻�佺嚎涓嬪彂锛堣秴闄愬叏鏉块��鍥烇級锛�" + wrkNo + "," + inSta.getBackSta());
                     break;//瓒呴檺鎵樼洏閫�鍥炰笉鐢熸垚宸ヤ綔妗�
                 }
 
@@ -205,23 +200,15 @@
 
                         staProtocol.setWorkNo(wrkNo);
                         News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
-//                        wrkNo++;
                         staProtocol.setStaNo(inSta.getBackSta().shortValue());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+                        log.error("杈撻�佺嚎涓嬪彂锛堟壂鐮佸叏鏉块��鍥烇級锛�" + wrkNo + "," + inSta.getBackSta());
                         continue;
                     }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
-//                        int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
-//                        if (wrkNo1 != 0){
-//                            if (ledThread != null) {
-//                                News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
-//                            }
-//
-//                        }
                         News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
                         MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
@@ -232,24 +219,6 @@
                             throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                         }
                         continue;
-//                        barcodeThread.setBarcode("");
-//                        staProtocol.setWorkNo(wrkMast.getWrkNo());
-//                        staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
-//
-//                        ledThread.errorReset();
-//                        log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-//
-//                        if (!result) {
-//                            News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                            log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-////                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                            continue;
-//                        }
-
                     }
                     WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                             .eq("barcode", barcode)
@@ -283,7 +252,7 @@
                             staProtocol.setStaNo(dto.getStaNo().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+                            log.error("杈撻�佺嚎涓嬪彂锛堝叏鏉块��鍥烇級锛�" + dto.getWorkNo() + "," + dto.getStaNo());
 
                             ledThread.errorReset();
                             log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
@@ -295,42 +264,18 @@
                             }
                         } else {
                             if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
-
-                                //宸ヤ綔妗e凡瀛樺湪    鍐嶆杩涘幓
-//                                wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
-//                                if (wrkMast != null) {
-//                                    barcodeThread.setBarcode("");
-//                                    staProtocol.setWorkNo(9999);
-//                                    //staProtocol.setWorkNo(wrkMast.getWrkNo());
-//                                    //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
-//                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
-//                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                                    log.error("杈撻�佺嚎涓嬪彂2锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
-//                                    ledThread.errorReset();
-//                                    log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-//                                    if (!result) {
-//                                        News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-//                                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                                    }
-//                                }
-
                                 continue;
                             }
                             staProtocol.setWorkNo(wrkNo);
-//                            wrkNo++;
                             staProtocol.setStaNo(inSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+                            log.error("杈撻�佺嚎涓嬪彂锛堝叏鏉匡級锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
 
-//                            if (ledThread != null) {
                             String errorMsg = jsonObject.getString("msg");
                             if (!Cools.isEmpty(errorMsg)) {
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                             }
-//                            }
                             News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
 
@@ -367,7 +312,7 @@
                     staProtocol = staProtocol.clone();
                 }
 
-//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+                // 鍏ュ嚭搴撴ā寮忓垽鏂�
                 if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
                     continue;
                 }
@@ -424,11 +369,11 @@
             // 閬嶅巻鎷f枡鍏ュ簱鍙�
             for (DevpSlave.Sta pickSta : devp.getPickSta()) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-//                if (barcodeThread == null) {
-//                    continue;
-//                }
-//                String barcode = barcodeThread.getBarcode();
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+                if (barcodeThread == null) {
+                    continue;
+                }
+                String barcode = barcodeThread.getBarcode();
                 // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
 
@@ -439,87 +384,85 @@
                     continue;
                 }
                 // 灏哄妫�娴嬪紓甯�
-//                boolean back = false;
-//                String errMsg = "";
-//                if (!back && staProtocol.isFrontErr()) {
-//                    errMsg = "鍓嶈秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isBackErr()) {
-//                    errMsg = "鍚庤秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isHighErr()) {
-//                    errMsg = "楂樿秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isLeftErr()) {
-//                    errMsg = "宸﹁秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isRightErr()) {
-//                    errMsg = "鍙宠秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isWeightErr()) {
-//                    errMsg = "瓒呴噸";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isBarcodeErr()) {
-//                    errMsg = "鎵爜澶辫触";
-//                    back = true;
-//                }
-//                if(staProtocol.getSiteId() > 400){
-//                    back = false;
-//                }
+                boolean back = false;
+                String errMsg = "";
+                if (!back && staProtocol.isFrontErr()) {
+                    errMsg = "鍓嶈秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isBackErr()) {
+                    errMsg = "鍚庤秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isHighErr()) {
+                    errMsg = "楂樿秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isLeftErr()) {
+                    errMsg = "宸﹁秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isRightErr()) {
+                    errMsg = "鍙宠秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isWeightErr()) {
+                    errMsg = "瓒呴噸";
+                    back = true;
+                }
+                if (!back && staProtocol.isBarcodeErr()) {
+                    errMsg = "鎵爜澶辫触";
+                    back = true;
+                }
+                if(staProtocol.getSiteId() > 400){
+                    back = false;
+                }
 
                 // 閫�鍥�
-//                if (back) {
-//                    log.info("errmsg: " + errMsg);
-//                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
-//                    MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-//                    if (!staProtocol.isLoading()) {
-//                        continue;
-//                    }
-//                    if (!staProtocol.isPakMk()) {
-//                        continue;
-//                    }
-//                    staProtocol.setWorkNo(wrkNo);
-//                    News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
-//                    wrkNo++;
-//                    staProtocol.setStaNo(pickSta.getBackSta().shortValue());
-//                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                    log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
-//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-//
-//                    // led 寮傚父鏄剧ず
-//                    if (ledThread != null) {
-//                        MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-//                    }
-//                    continue;
-//                }
-//                if(staProtocol.getSiteId() < 400){
-//                    if (!Cools.isEmpty(barcode)) {
-//                        News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-//                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-//                            continue;
-//                        }
-//                    } else {
-//                        continue;
-//                    }
-//
-//
-//                    if (!Cools.isEmpty(barcode)) {
-//                    News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-//                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-//                            continue;
-//                        }
-//                    } else {
-//                        continue;
-//                    }
-//
-//                }
+                if (back) {
+                    log.info("errmsg: " + errMsg);
+                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", pickSta.getStaNo(), errMsg);
+                    MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+                    if (!staProtocol.isLoading()) {
+                        continue;
+                    }
+                    if (!staProtocol.isPakMk()) {
+                        continue;
+                    }
+                    staProtocol.setWorkNo(wrkNo);
+                    News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
+                    staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+
+                    // led 寮傚父鏄剧ず
+                    if (ledThread != null) {
+                        MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+                    }
+                    continue;
+                }
+                if(staProtocol.getSiteId() < 400){
+                    if (!Cools.isEmpty(barcode)) {
+                        News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                            continue;
+                        }
+                    } else {
+                        continue;
+                    }
+
+
+                    if (!Cools.isEmpty(barcode)) {
+                    News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                            continue;
+                        }
+                    } else {
+                        continue;
+                    }
+
+                }
 
 
                 if (staProtocol == null) {
@@ -533,11 +476,7 @@
 
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
-//                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
-//                    if(staProtocol.getSiteId() > 400){
-//                        wrkMast = wrkMastMapper.selectPickStep3(staProtocol.getWorkNo());
-//                    }
+                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
 //                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
@@ -547,16 +486,6 @@
                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
                         continue;
                     }
-
-                    // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-//                    int stnNo = 0;
-//                    if (wrkMast.getStaNo() == 109) {
-//                        stnNo = 127;
-//                    } else if (wrkMast.getStaNo() == 113) {
-//                        stnNo = 128;
-//                    } else {
-//                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-//                    }
                     // 鑾峰彇鐩爣绔�
                     Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                             .eq("type_no", wrkMast.getIoType() - 50)
@@ -564,12 +493,12 @@
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
-//                        News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-//                        staProtocol.setWorkNo(wrkNo++);
-//                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
+                        News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+                        staProtocol.setWorkNo(wrkNo);
+                        staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        log.error("杈撻�佺嚎涓嬪彂锛堢洏鐐广�佹嫞鏂欍�佸苟鏉块��鍥烇級锛�" + wrkNo + "," + pickSta.getBackSta());
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -622,12 +551,10 @@
 
                     // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
                     staProtocol.setWorkNo(wrkMast.getWrkNo());
-//                    if(staProtocol.getSiteId() < 400){
-                        staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
-//                    }
+                    staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    log.error("杈撻�佺嚎涓嬪彂5锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+                    log.error("杈撻�佺嚎涓嬪彂锛堢洏鐐广�佹嫞鏂欍�佸苟鏉匡級锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
                     if (!result) {
                         News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                     }
@@ -909,6 +836,9 @@
      */
     public synchronized void crnIoExecute(Integer mark) {
 
+        /*鍫嗗灈鏈哄叆鍑哄簱浠诲姟涓嬪彂鎺у埗鍙傛暟*/
+        Integer ioControl=configService.selectCrnIo();
+
         for (CrnSlave crn : slaveProperties.getCrn()) {
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -932,25 +862,68 @@
                     && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
-                if (crnProtocol.getLastIo().equals("I")) {
-                    if (basCrnp.getInEnable().equals("Y")) {
+//                if (crnProtocol.getLastIo().equals("I")) {
+//                    if (basCrnp.getInEnable().equals("Y")) {
+//                        //mark - 1 - ....
+//                        this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
+//                        crnProtocol.setLastIo("O");
+//                    } else if (basCrnp.getOutEnable().equals("Y")) {
+//                        //mark - 2 - ....
+//                        this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
+//                        crnProtocol.setLastIo("I");
+//                    }
+//                }
+                // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+//                else if (crnProtocol.getLastIo().equals("O")) {
+//                    if (basCrnp.getOutEnable().equals("Y")) {
+//                        this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
+//                        crnProtocol.setLastIo("I");
+//                    } else if (basCrnp.getInEnable().equals("Y")) {
+//                        this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
+//                        crnProtocol.setLastIo("O");
+//                    }
+//                }
+                if (ioControl==1){
+                    //鍏ュ簱浼樺厛  鍏堟墽琛屽叆搴撳啀鎵ц鍑哄簱
+                    Integer inCount=wrkMastService.selectIn();
+                    if (inCount == 0 && basCrnp.getOutEnable().equals("Y")){
+                        this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
+                    }
+                    if (basCrnp.getInEnable().equals("Y")){
+                        this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
+                    }
+                }else if (ioControl==2){
+                    //鍑哄簱浼樺厛 鍏堟墽琛屽嚭搴撳啀鎵ц鍏ュ簱
+                    Integer outCount=wrkMastService.selectOut();
+                    if (outCount==0 && basCrnp.getInEnable().equals("Y")){
+                        this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
+                    }
+                    if (basCrnp.getOutEnable().equals("Y")){
+                        this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
+                    }
+                }else if(ioControl==3){
+                    //鍏ュ嚭搴撲氦鏇挎墽琛� 涓嶅仛闄愬埗
+                    // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+                    if (crnProtocol.getLastIo().equals("I")) {
+                        if (basCrnp.getInEnable().equals("Y")) {
                         //mark - 1 - ....
                         this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
-                    } else if (basCrnp.getOutEnable().equals("Y")) {
+                        } else if (basCrnp.getOutEnable().equals("Y")) {
                         //mark - 2 - ....
                         this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
                         crnProtocol.setLastIo("I");
+                        }
                     }
-                }
-                // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
-                else if (crnProtocol.getLastIo().equals("O")) {
-                    if (basCrnp.getOutEnable().equals("Y")) {
+                    // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+                    else if (crnProtocol.getLastIo().equals("O")) {
+                        if (basCrnp.getOutEnable().equals("Y")) {
                         this.locToCrnStn(crn, crnProtocol, mark); //  鍑哄簱
                         crnProtocol.setLastIo("I");
-                    } else if (basCrnp.getInEnable().equals("Y")) {
+                        } else if (basCrnp.getInEnable().equals("Y")) {
                         this.crnStnToLoc(crn, crnProtocol, mark); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
+                        }
                     }
                 }
             }
@@ -960,7 +933,7 @@
 //            this.crnRebackHp(crnProtocol, crnThread);
 
         }
-//        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
+        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
     }
 
     /**
@@ -1586,7 +1559,7 @@
 
 
         }
-//        News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
+        News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
     }
 
     /**
@@ -1708,7 +1681,7 @@
             }
 
         }
-//        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
+        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
     }
 
 
@@ -1773,7 +1746,7 @@
                             //staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂6锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
+                            log.error("杈撻�佺嚎涓嬪彂锛堢┖鏉匡級锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
                             if (!result) {
                                 News.errorNoLog("" + mark + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -1866,6 +1839,9 @@
                     case 53:
                         ledCommand.setTitle("鎷f枡鍐嶅叆搴�");
                         break;
+                    case 54:
+                        ledCommand.setTitle("骞舵澘鍐嶅叆搴�");
+                        break;
                     case 57:
                         ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
                         break;
@@ -1904,13 +1880,13 @@
                         } else {
                             total = locDetl.getAnfme();
                         }
-                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57||wrkMast.getIoType() == 54) {
                             ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), total));
                         }
                         if (wrkMast.getIoType() == 103 ) {
                             ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), total));
                         }
-                        if (wrkMast.getIoType() == 107) {
+                        if (wrkMast.getIoType() == 107||wrkMast.getIoType()==104) {
                             ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), total));
                         }
                     });
@@ -2214,7 +2190,7 @@
                     }
 
                     LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
-                    LocMast loc = locMastService.queryDemoLoc(crn.getId());
+                    LocMast loc = locMastService.queryDemoLoc(crn.getId(),sourceLoc.getBarcode().substring(0,1));
                     if (null == sourceLoc || null == loc) {
                         continue;
                     }
@@ -3226,14 +3202,7 @@
             }
 
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-
-//                if ((crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4) && crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) {
-//                    continue;
-//                }
-//                if ((crnProtocol.getCrnNo()==1 || crnProtocol.getCrnNo()==2) && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
-//                    continue;
-//                }
-                if (crnProtocol.getCrnNo()==1 && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
+                if (crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) {
                     continue;
                 }
                 Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false));
@@ -3278,7 +3247,7 @@
 //                    crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍫嗗灈鏈虹Щ鍔�
                     crnCommand.setTaskMode(CrnTaskModeType.X_MOVE);//浣欏閿愰簰鍥炲師鐐逛换鍔℃ā寮�:  绔欎綅杞Щ
                     crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-                    crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+                    crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
                     crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
                     crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
                     crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index bf4ca83..1cf5fd1 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -36,4 +36,14 @@
     public WrkMast selectByWrkNo(int wrkNo) {
         return this.baseMapper.selectByWrkNo(wrkNo);
     }
+
+    @Override
+    public Integer selectIn() {
+        return this.baseMapper.selectIn();
+    }
+
+    @Override
+    public Integer selectOut() {
+        return this.baseMapper.selectOut();
+    }
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index c275be7..8beac37 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -86,7 +86,7 @@
 
                     if (i>10){
                         //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
-                        mainService.autoEmptyOut();
+//                        mainService.autoEmptyOut();
                      //绌烘墭鐩樿嚜鍔ㄥ叆搴�
 //                       mainService.autoEmptyIn();
                         i=0;
diff --git a/src/main/java/com/zy/system/mapper/ConfigMapper.java b/src/main/java/com/zy/system/mapper/ConfigMapper.java
index 9ec6ab3..fb91d56 100644
--- a/src/main/java/com/zy/system/mapper/ConfigMapper.java
+++ b/src/main/java/com/zy/system/mapper/ConfigMapper.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.system.entity.Config;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
 @Mapper
 @Repository
 public interface ConfigMapper extends BaseMapper<Config> {
 
+    @Select("select value from sys_config where code='CrnIoControl';")
+    Integer selectCrnIo();
 }
diff --git a/src/main/java/com/zy/system/service/ConfigService.java b/src/main/java/com/zy/system/service/ConfigService.java
index 7e31e9a..6a927b2 100644
--- a/src/main/java/com/zy/system/service/ConfigService.java
+++ b/src/main/java/com/zy/system/service/ConfigService.java
@@ -5,4 +5,5 @@
 
 public interface ConfigService extends IService<Config> {
 
+    Integer selectCrnIo();
 }
diff --git a/src/main/java/com/zy/system/service/impl/ConfigServiceImpl.java b/src/main/java/com/zy/system/service/impl/ConfigServiceImpl.java
index 0a8661c..c0e11d2 100644
--- a/src/main/java/com/zy/system/service/impl/ConfigServiceImpl.java
+++ b/src/main/java/com/zy/system/service/impl/ConfigServiceImpl.java
@@ -4,9 +4,16 @@
 import com.zy.system.entity.Config;
 import com.zy.system.mapper.ConfigMapper;
 import com.zy.system.service.ConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service("configService")
 public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> implements ConfigService {
+    @Autowired
+    private ConfigMapper configMapper;
 
+    @Override
+    public Integer selectCrnIo() {
+        return configMapper.selectCrnIo();
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0e0de48..66fc17d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -38,18 +38,18 @@
   enable: false
 
 wms:
-  url: 127.0.0.1:8080/rqdzasrs
+  url: 127.0.0.1:8080/zjhlasrs
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
   #
   isToOrigin: false
   # 鍙屾繁
-  doubleDeep: true
+  doubleDeep: false
   # 鍙屾繁搴撲綅鎺掑彿
   doubleLocs: 1,4
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
-  groupCount: 4
+  groupCount: 2
   # 鍫嗗灈鏈�1
   crn[0]:
     id: 1
@@ -88,6 +88,44 @@
       row: 3
       bay: 1
       lev: 1
+  # 鍫嗗灈鏈�2
+  crn[1]:
+    id: 2
+    ip: 10.10.10.110
+    port: 102
+    rack: 0
+    slot: 0
+    # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝璐ф灦浠�2寮�濮嬶紝鍔�1
+    offset: 0
+    demo: false
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[0]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 101
+      row: 2
+      bay: 1
+      lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 105
+      row: 3
+      bay: 1
+      lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[0]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 101
+      row: 2
+      bay: 1
+      lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 105
+      row: 3
+      bay: 1
+      lev: 1
   # plc
   devp[0]:
     id: 1
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7821af2..c9513af 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -55,7 +55,7 @@
     </select>
 
     <select id="queryDemoLoc" resultMap="BaseResultMap">
-        select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts = 'O'
+        select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts = 'O' and loc_type2 =#{locType2}
         ORDER BY NEWID()
     </select>
 
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index aede40c..2a45d7e 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/rqdzwcs";
+var baseUrl = "/wcs";
 
 // 璧嬪��
 function setVal(el, val) {
diff --git a/src/main/webapp/static/js/console.js b/src/main/webapp/static/js/console.js
index 2b381f8..65cf70f 100644
--- a/src/main/webapp/static/js/console.js
+++ b/src/main/webapp/static/js/console.js
@@ -32,7 +32,7 @@
         let bLen
         let interval // 闂撮殧鏁�
 
-        if (maxBayNo<35) {
+        if (maxBayNo<40) {
             interval = 1
             bLen = maxBayNo / interval // 搴撲綅涓暟
         } else {
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index b24107a..3553834 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -1,5 +1,5 @@
 mapInfo ={
-    "mapName": "rqdzwcs",
+    "mapName": "wcs",
     "rackCount": 8,
     "crnCount": 4,
     "stbCount": 120,
@@ -9,58 +9,49 @@
         {
             "type": "rack",
             "id": "rack1",
-            "top": 130,
-            "left": 500,
-            "width": 800,
-            "height": 23,
-            "minBayNo": 2,
-            "maxBayNo": 19
-        },
-        {
-            "type": "rack",
-            "id": "rack2",
             "top": 160,
             "left": 500,
             "width": 800,
             "height": 23,
-            "minBayNo": 2,
-            "maxBayNo": 19
+            "minBayNo": 1,
+            "maxBayNo": 26
         },
         {
             "type": "rack",
-            "id": "rack3",
+            "id": "rack2",
             "top": 210,
             "left": 500,
             "width": 800,
             "height": 23,
-            "minBayNo": 2,
-            "maxBayNo": 19
+            "minBayNo": 1,
+            "maxBayNo": 27
+        },
+        {
+            "type": "rack",
+            "id": "rack3",
+            "top": 300,
+            "left": 500,
+            "width": 800,
+            "height": 23,
+            "minBayNo": 1,
+            "maxBayNo": 35
         },
         {
             "type": "rack",
             "id": "rack4",
-            "top": 240,
+            "top": 350,
             "left": 500,
             "width": 800,
             "height": 23,
-            "minBayNo": 2,
-            "maxBayNo": 19
-        }
+            "minBayNo": 1,
+            "maxBayNo": 35
+        },
     ],
     "rackDescs": [
         {
             "type": "rackDescs",
-            "id": "lb_desc1",
-            "text": "#1",
-            "top": 130,
-            "left": 460,
-            "width": 30,
-            "height": 23
-        },
-        {
-            "type": "rackDescs",
             "id": "lb_desc2",
-            "text": "#2",
+            "text": "#1",
             "top": 160,
             "left": 460,
             "width": 30,
@@ -69,7 +60,7 @@
         {
             "type": "rackDescs",
             "id": "lb_desc3",
-            "text": "#3",
+            "text": "#2",
             "top": 210,
             "left": 460,
             "width": 30,
@@ -78,8 +69,17 @@
         {
             "type": "rackDescs",
             "id": "lb_desc4",
+            "text": "#3",
+            "top": 300,
+            "left": 460,
+            "width": 30,
+            "height": 23
+        },
+        {
+            "type": "rackDescs",
+            "id": "lb_desc4",
             "text": "#4",
-            "top": 240,
+            "top": 350,
             "left": 460,
             "width": 30,
             "height": 23
@@ -103,6 +103,24 @@
             "left": 500,
             "width": 800,
             "height": 2
+        },
+        {
+            "type": "crane",
+            "id": "crn-2",
+            "text": "1",
+            "top": 327,
+            "left": 1250,
+            "width": 100,
+            "height": 22
+        },
+        {
+            "type": "track",
+            "id": "lb_track2",
+            "text": "",
+            "top": 337,
+            "left": 500,
+            "width": 800,
+            "height": 2
         }
     ],
     "areas": [
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 45f8220..1bc78a6 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -24,6 +24,16 @@
             <!--                <img src="../static/images/zy-logo.png" alt="寰愬伐姹変簯" height="44" width="80">-->
         </div>
     </div>
+    <div class="layui-inline"  style="width:31%;">
+        <label class="layui-form-label"><span class="not-null"></span>褰撳墠浠诲姟妯″紡</label>
+        <div class="layui-input-inline">
+            <select id="value" lay-verify="required">
+                <option value="1">鍏ュ簱浼樺厛</option>
+                <option value="2">鍑哄簱浼樺厛</option>
+                <option value="3">鍑哄叆搴撲氦鏇挎墽琛�</option>
+            </select>
+        </div>
+    </div>
     <!-- 璐ф灦 + 鍫嗗灈鏈� + 鍏ュ簱绔欑偣 -->
     <div class="main-part">
 
@@ -47,11 +57,10 @@
                 <span>鍫嗗灈鏈� 1</span>
                 <span class="state-ss machine-put-flag	">鍏ュ簱</span>
             </div>
-<!--            <div class="state">-->
-<!--                <span>鍫嗗灈鏈� 2</span>-->
-<!--                <span class="state-ss machine-auto-flag	">鑷姩</span>-->
-
-<!--            </div>-->
+            <div class="state">
+                <span>鍫嗗灈鏈� 2</span>
+                <span class="state-ss machine-auto-flag	">鑷姩</span>
+            </div>
             <div class="button"><span>鎵�鏈夌姸鎬�</span></div>
             <div class="button item-group">
                 <span class="machine-put-flag">鍏ュ簱</span>
diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html
index dba0d58..7f6e736 100644
--- a/src/main/webapp/views/crn.html
+++ b/src/main/webapp/views/crn.html
@@ -59,12 +59,12 @@
                     <!--            <span>&nbsp;</span>-->
                     <input id="crn1" disabled="disabled">
                 </div>
-<!--                <div class="crn-command-item">-->
-<!--                    <label>2#</label>-->
-<!--                    <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
-<!--                    &lt;!&ndash;            <span>&nbsp;</span>&ndash;&gt;-->
-<!--                    <input id="crn2" disabled="disabled">-->
-<!--                </div>-->
+                <div class="crn-command-item">
+                    <label>2#</label>
+                    <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+                    <!--            <span>&nbsp;</span>-->
+                    <input id="crn2" disabled="disabled">
+                </div>
 <!--                <div class="crn-command-item">-->
 <!--                    <label>3#</label>-->
 <!--                    <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->

--
Gitblit v1.9.1