From f4645599f341a039673939fbe2699387ea5b48d2 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 10 一月 2024 17:22:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/enums/RgvStatusType.java          |    2 
 src/main/java/com/zy/core/thread/BarcodeThread.java         |    2 
 src/main/java/com/zy/asrs/utils/RouteUtils.java             |   77 ++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  238 +++++++++++++++++++--
 src/main/webapp/static/js/console.map.js                    |   42 +-
 src/main/resources/mapper/WrkMastStaMapper.xml              |    2 
 version/BarcodeThread2.java                                 |    2 
 src/main/java/com/zy/core/thread/RgvThread.java             |   29 +-
 src/main/java/com/zy/asrs/controller/ConsoleController.java |   13 
 src/main/java/com/zy/asrs/entity/WrkMastSta.java            |    2 
 src/main/java/com/zy/asrs/entity/BasRgvErrLog.java          |    2 
 src/main/java/com/zy/core/model/protocol/RgvProtocol.java   |    4 
 src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java      |    2 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   76 +++++-
 src/main/resources/application.yml                          |  153 +++++++++++--
 src/main/java/com/zy/core/enums/RgvTaskModeType.java        |   12 
 version/BarcodeThread1.java                                 |    2 
 17 files changed, 533 insertions(+), 127 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index e80ae94..6d22e0a 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -28,14 +28,12 @@
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
+import com.zy.core.model.RgvSlave;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.properties.SystemProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.MelsecCrnThread;
-import com.zy.core.thread.ScaleThread;
-import com.zy.core.thread.SiemensCrnThread;
+import com.zy.core.thread.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -102,6 +100,13 @@
                 stations.putAll(devpThread.getStation());
             }
         }
+
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            if (null != rgvThread) {
+//                stations.putAll(rgvThread.getStation());
+            }
+        }
         for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) {
             SiteLatestDataVo vo = new SiteLatestDataVo();
             StaProtocol staProtocol = entry.getValue();
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
index 149170a..1d57f34 100644
--- a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
+++ b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
@@ -18,7 +18,7 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value= "")
-    @TableId(value = "id", type = IdType.INPUT)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
index f3a2b96..ee2bcee 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -100,7 +100,7 @@
     /**
      * 宸ヤ綔绫诲瀷
      */
-    @ApiModelProperty(value= "宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭斁 3锛氬彇鏀� 4锛氭媶鐩�")
+    @ApiModelProperty(value= "宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�")
     @TableField("wrk_type")
     private Integer wrkType;
 
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index cf94005..7ece0f1 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -27,7 +27,7 @@
     /*
     * 鏌ヨ鎸囧畾宸ヤ綔鍙蜂换鍔�
     * */
-    WrkMastSta selectByWrkNo(@Param("workNo") Integer workNo);
+    WrkMastSta selectByWrkNo(@Param("workNo") Long workNo);
 
     /*
     * 鏌ヨ涓嶅共娑夌殑鍙墽琛屼换鍔�
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 f81702f..7c55bb3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -119,7 +119,7 @@
                 String barcode = barcodeThread.getBarcode();
 
                 if (!Cools.isEmpty(barcode)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
                     if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                         continue;
                     }
@@ -322,7 +322,7 @@
 
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
 //                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
                         continue;
@@ -449,7 +449,7 @@
 
                         // 涓嬪彂绔欑偣淇℃伅
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(wrkMast.getStaNo());
+                        staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
                         if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
                             continue;
                         }
@@ -1393,7 +1393,7 @@
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
-                if(crnStn1.getStaNo() == wrkMast.getStaNo()){
+                if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
                     crnStn = crnStn1;
                     break;
                 } else {
@@ -1665,7 +1665,7 @@
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
-                if(crnStn1.getStaNo() == wrkMast.getSourceStaNo()){
+                if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
                     crnStn = crnStn1;
                     break;
                 } else {
@@ -3838,11 +3838,12 @@
                 }
 
                 // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
-                if (rgvProtocol.getStatusType() == RgvStatusType.WAITING
+                if (rgvProtocol.getStatusType() == RgvStatusType.WORKING
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING )
                 ) {
                     log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
-                    if (rgvProtocol.getTaskNo1()!=0){
+                    if (rgvProtocol.getTaskNo1()!=0&&rgvProtocol.getStatusType1()==RgvStatusType.WAITING){
                         if (rgvProtocol.getTaskNo1()==9999){
                             boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
                             if (!rgvComplete){
@@ -3853,7 +3854,7 @@
                             rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                             break;
                         }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
@@ -3868,7 +3869,7 @@
                         BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                         basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                         rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                    }else if (rgvProtocol.getTaskNo2()!=0){
+                    }else if (rgvProtocol.getTaskNo2()!=0 && rgvProtocol.getStatusType2()==RgvStatusType.WAITING){
                         if (rgvProtocol.getTaskNo2()==9999){
                             boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
                             if (!rgvComplete){
@@ -3879,7 +3880,7 @@
                             rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                             break;
                         }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().intValue());
+                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
@@ -3966,7 +3967,7 @@
     /**
      * 鎵ц灏忚溅鎼繍浠诲姟
      */
-    public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
+    public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
         try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -3983,7 +3984,7 @@
                 // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
                 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded2()==1  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+                        && (rgvProtocol.getLoaded2()==3  || rgvProtocol.getLoaded2()==1 )////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛�3  1銆�2灞傞兘鏈夌墿
                 ) {
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     if (basRgvMap == null) {
@@ -3994,12 +3995,12 @@
                     List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
                     List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
                     for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘  2:鏀� 4锛氭媶鐩�
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
                             continue;
                         }
                         boolean sign = false;
                         if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
-                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
                         }else {
                             continue;
                         }
@@ -4029,7 +4030,73 @@
         }
     }
 
-    public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
+    /**
+     * 鎵ц灏忚溅鎼繍浠诲姟
+     */
+    public synchronized void rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
+        try{
+            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+                if (basRgv == null) {
+                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+                    continue;
+                }
+
+                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                        && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        &&  (rgvProtocol.getLoaded2()==2  || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
+                ) {
+                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+                    if (basRgvMap == null) {
+                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+                        continue;
+                    }
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
+                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
+                    for (WrkMastSta wrkMastSta : wrkMastStaList){
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
+                            continue;
+                        }
+                        boolean sign = false;
+                        if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//婊℃斁
+                            sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
+                        }else {
+                            continue;
+                        }
+                        if (sign){
+                            boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
+                            if (signMap){
+                                wrkMastSta.setWrkSts(2);
+                                try{
+                                    wrkMastStaMapper.updateById(wrkMastSta);
+                                }catch (Exception e){
+                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+                                }
+                                return;
+                            }else {
+                                log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+                            }
+                        }else {
+                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+                        }
+                        break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
+            log.error("3933琛�"+e);
+        }
+    }
+
+    public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙犵洏
         try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4046,7 +4113,7 @@
                 // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
                 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded2()==0  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+                        &&  (rgvProtocol.getLoaded2()==0  || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
                 ) {
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     if (basRgvMap == null) {
@@ -4057,12 +4124,75 @@
                     basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
                     List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
                     for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘  1:鍙�
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
                             continue;
                         }
                         boolean sign = false;
                         if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
-                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
+                        }else {
+                            continue;
+                        }
+                        if (sign){
+                            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
+                            if (signMap){
+                                wrkMastSta.setWrkSts(1);
+                                try{
+                                    wrkMastStaMapper.updateById(wrkMastSta);
+                                }catch (Exception e){
+                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+                                }
+                                return;
+                            }else {
+                                log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+                            }
+                        }else {
+                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+                        }
+                        break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
+            log.error("3989琛�"+e);
+        }
+    }
+
+    public synchronized void rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
+        try{
+            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+                if (basRgv == null) {
+                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+                    continue;
+                }
+
+                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
+                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                        && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        &&  rgvProtocol.getLoaded2()==0  //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
+                ) {
+                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+                    if (basRgvMap == null) {
+                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+                        continue;
+                    }
+                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+                    for (WrkMastSta wrkMastSta : wrkMastStaList){
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
+                            continue;
+                        }
+                        boolean sign = false;
+                        if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
+                            sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
                         }else {
                             continue;
                         }
@@ -4174,14 +4304,16 @@
      * */
     public synchronized boolean rgvAvoidanceXY(Integer rgvId){
         try{
+            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
             //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
             RgvCommand rgvCommand = new RgvCommand();
             rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
             rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
             rgvCommand.setTaskNo1((short)9999); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 宸ヤ綅1浠诲姟妯″紡:  鍥炲師鐐�
+            rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡:  鍥炲師鐐�
+            rgvCommand.setDestinationStaNo1(basRgvMap.getLockStartRoute().shortValue());
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(9, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(9, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�   step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4209,7 +4341,7 @@
             rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
             rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4234,7 +4366,7 @@
             rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡:  鍙栬揣
             rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4259,7 +4391,7 @@
             rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡:  鏀捐揣
             rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4272,7 +4404,7 @@
     }
 
     /*
-     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
+     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  鍙犵洏
      * */
     public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
         try{
@@ -4284,7 +4416,7 @@
             rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡:  鍙栬揣
             rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
             rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4297,7 +4429,7 @@
     }
 
     /*
-     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
+     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //鎷嗙洏
      * */
     public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
         try{
@@ -4309,7 +4441,57 @@
             rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡:  鏀捐揣
             rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
             rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
+                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+    /*
+     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  婊″彇
+     * */
+    public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            RgvCommand rgvCommand = new RgvCommand();
+            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+            rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡:  婊″彇
+            rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
+            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
+                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+    /*
+     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //婊℃斁
+     * */
+    public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            RgvCommand rgvCommand = new RgvCommand();
+            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+            rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡:  婊℃斁
+            rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
+            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4359,7 +4541,7 @@
             BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
             List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
             Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
-            basRgvMapOther.setStartRoute(lockEndRoute);
+            basRgvMapOther.setEndRoute(lockEndRoute);
             basRgvMapMapper.updateById(basRgvMapOther);
             return true;
         }catch (Exception e){
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index 863b279..c8cbe52 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -29,11 +29,11 @@
 
 //    姝e簭
     public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{
-        add(101);add(102);add(104);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(114);add(116);add(117);
+        add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(123);add(114);add(116);add(117);
     }};
 //    鍙嶅簭
     public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{
-        add(117);add(116);add(114);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(104);add(102);add(101);
+        add(117);add(116);add(114);add(113);add(123);add(121);add(111);add(120);add(110);add(119);add(108);add(107);add(118);add(105);add(104);add(122);add(102);add(101);
     }};
 
     public static String zerofill(String msg, Integer count){
@@ -268,4 +268,77 @@
         }
     }
 
+    public static short RgvPosSta(Integer rgvId,Short posId){
+        switch (rgvId){
+            case 1:
+                return RgvPosStaOne(posId);
+            case 2:
+                return RgvPosStaTwo(posId);
+            default:
+                return 1;
+        }
+    }
+
+    public static short RgvPosStaOne(Short posId){
+        return 1;
+    }
+
+    public static short RgvPosStaTwo(Short posId){
+        switch (posId.intValue()){
+            case 1:
+            case 2:
+                return 116;
+            case 3:
+            case 4:
+                return 114;
+            case 5:
+                return 123;
+            case 6:
+            case 7:
+            case 8:
+                return 113;
+            case 9:
+            case 10:
+                return 121;
+            case 11:
+            case 12:
+            case 13:
+            case 14:
+                return 120;
+            case 15:
+                return 110;
+            case 16:
+            case 17:
+            case 18:
+                return 119;
+            case 19:
+                return 108;
+            case 20:
+            case 21:
+            case 22:
+                return 107;
+            case 23:
+            case 24:
+                return 105;
+            case 25:
+                return 104;
+            default:
+                return 0;
+        }
+    }
+
+    public static Integer CrnStaEnd(Integer endSta,Integer souSta) {
+        switch (souSta) {
+            case 100:
+            case 103:
+            case 106:
+            case 109:
+            case 112:
+            case 115:
+                return souSta + 1;
+            default:
+                return endSta;
+        }
+    }
+
 }
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 52a3179..ad2271a 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -10,6 +10,8 @@
     PUTTING(12, "鏀捐揣涓�"),
     WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"),
     FETCHWAITING(91, "鍙栬揣浠诲姟瀹屾垚绛夊緟WCS纭"),
+    SOS99(99, "鎶ヨ99"),
+    SOS100(100, "鎶ヨ100")
     ;
 
     public Integer id;
diff --git a/src/main/java/com/zy/core/enums/RgvTaskModeType.java b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
index 290b43d..01c0649 100644
--- a/src/main/java/com/zy/core/enums/RgvTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
@@ -3,13 +3,13 @@
 public enum RgvTaskModeType {
 
     NONE(0),    // 鏃�
-    FETCH(1),    // 鍙栬揣
-    PUT(2),    // 鏀捐揣
+    FETCH(1),    // 鍙栬揣 锛堢┖鏉匡級鍗曞彇
+    PUT(2),    // 鏀捐揣 锛堢┖鏉匡級鍗曟斁
     FETCH_PUT(3),    // 鍙栨斁璐�
-//    X_MOVE(4),    // 绔欎綅绉昏浆
-//    Y_MOVE(5),    // 绔欎綅绉昏浆
-//    XY_MOVE(6),    // 绔欎綅绉昏浆
-    GO_ORIGIN(7),    // 鍥炲師鐐�
+    X_MOVE(4),    // 绔欎綅绉昏浆
+    FETCH_5(5),    // 锛堢┖鏉匡級婊″彇
+    PUT_6(6),    // 锛堢┖鏉匡級婊℃斁
+//    GO_ORIGIN(7),    // 鍥炲師鐐�
 //    BACK_ORIGIN(8),      // 鍥炲弽鍘熺偣
 //    CLEAR(9),       // 娓呴敊
     ;
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index aace472..63ba1c2 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -57,7 +57,7 @@
     /**
      * 宸ヤ綅1鏈夌墿
      */
-    public Short loaded1;
+    public Short loaded1;//0 鏃犵墿锛�1 鏈夌墿
 
     /**
      * RGV褰撳墠浣嶇疆
@@ -94,7 +94,7 @@
     /**
      * 宸ヤ綅2鏈夌墿
      */
-    public Short loaded2;
+    public Short loaded2;  //0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
     ///////////////////////////////////////////////////////////////////////////////////////
 
     /**
diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java
index 00ffb2a..e261b2b 100644
--- a/src/main/java/com/zy/core/thread/BarcodeThread.java
+++ b/src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -34,7 +34,7 @@
         this.barcode.delete(0, this.barcode.length());
         this.barcode.append(barcode);
         if(!Cools.isEmpty(barcode)) {
-            log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+//            log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
             jsonObject.put("barcode", barcode);
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 94d8059..7f04510 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -11,6 +11,7 @@
 import com.zy.asrs.entity.BasRgvOpt;
 import com.zy.asrs.service.BasRgvOptService;
 import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.utils.RouteUtils;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -108,14 +109,14 @@
                         commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿
                         commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙�
                         commandAvoidanceXY.setAckFinish1((short) 1);  // 浠诲姟瀹屾垚纭浣�
-                        commandAvoidanceXY.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+                        commandAvoidanceXY.setTaskMode1(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
                         commandAvoidanceXY.setSourceStaNo1((short)0);     // 婧愮珯
-                        commandAvoidanceXY.setDestinationStaNo1((short)0);     // 鐩爣绔�
+                        commandAvoidanceXY.setDestinationStaNo1(slave.getId()==1? (short) 101:(short)117);     // 鐩爣绔�
                         commandAvoidanceXY.setTaskNo2((short) 0); // 宸ヤ綔鍙�
                         commandAvoidanceXY.setAckFinish2((short) 1);  // 浠诲姟瀹屾垚纭浣�
-                        commandAvoidanceXY.setTaskMode2(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+                        commandAvoidanceXY.setTaskMode2(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
                         commandAvoidanceXY.setSourceStaNo2((short)0);     // 婧愮珯
-                        commandAvoidanceXY.setDestinationStaNo2((short)0);     // 鐩爣绔�
+                        commandAvoidanceXY.setDestinationStaNo2(slave.getId()==1? (short) 101:(short)117);     // 鐩爣绔�
                         commandAvoidanceXY.setCommand((short)0);
                         write(commandAvoidanceXY);
                         break;
@@ -178,7 +179,7 @@
      */
     private void readStatus(){
         try {
-            OperateResultExOne<byte[]> result = siemensNet.Read("DB1.0", (short) 34);
+            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 34);
             if (result.IsSuccess) {
                 if (null == rgvProtocol) {
                     rgvProtocol = new RgvProtocol();
@@ -189,7 +190,7 @@
                 rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 4));
                 rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6));
                 rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8));
-                rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+                rgvProtocol.setRgvPos(RouteUtils.RgvPosSta(slave.getId(),siemensNet.getByteTransform().TransInt16(result.Content, 10)));
                 rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
                 rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt16(result.Content, 14));
                 rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
@@ -333,10 +334,10 @@
         short[] array = new short[5];
         array[0] = command.getAckFinish1();
         array[1] = command.getTaskNo1();
-        array[2] = command.getTaskMode1();
+        array[2] = command.getTaskMode1();//浠诲姟妯″紡
         array[3] = command.getSourceStaNo1();
         array[4] = command.getDestinationStaNo1();
-        siemensNet.Write("DB100.20", command.getCommand());
+//        siemensNet.Write("DB100.20", 0);
 
         OperateResult result = siemensNet.Write("DB100.0", array);
 
@@ -390,12 +391,12 @@
 
         command.setRgvNo(slave.getId());
         short[] array = new short[6];
-        array[0] = command.getAckFinish2();
-        array[1] = command.getTaskNo2();
-        array[2] = command.getTaskMode2();
-        array[3] = command.getSourceStaNo2();
-        array[4] = command.getDestinationStaNo2();
-        array[5] = command.getCommand();
+        array[0] = command.getAckFinish2();//浠诲姟瀹屾垚纭浣�
+        array[1] = command.getTaskNo2();//浠诲姟鍙�
+        array[2] = command.getTaskMode2();//浠诲姟妯″紡
+        array[3] = command.getSourceStaNo2();//婧愮珯
+        array[4] = command.getDestinationStaNo2();//鐩爣绔�
+        array[5] = command.getCommand();//浠诲姟涓嬪彂纭
 
         OperateResult result = siemensNet.Write("DB100.10", array);
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 7389f6f..f446c91 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -49,7 +49,7 @@
         add(112);add(113);add(114);add(115);
         add(116);add(117);add(118);add(119);
         add(120);add(121);add(122);add(123);
-        add(124);add(125);add(126);add(127);
+//        add(124);add(125);add(126);add(127);
         add(130);add(131);
         add(132);add(133);add(134);add(135);
         add(136);add(137);add(138);add(139);
@@ -65,7 +65,7 @@
         add(212);
         add(213);add(214);add(215);add(216);
         add(217);add(218);add(219);add(220);
-        add(221);add(222);
+        add(221);add(222);add(2000);
     }};
 
     /**
@@ -121,6 +121,10 @@
                     case 2:
                         write((StaProtocol)task.getData());
                         break;
+                    // 鍐欐暟鎹� ID+鐩爣绔� 鐮佸灈瀹屾垚  缁欒緭閫佺嚎鍐欎换鍔″畬鎴�
+                    case 3:
+                        write3((StaProtocol)task.getData());
+                        break;
                     default:
                         break;
                 }
@@ -173,7 +177,7 @@
                 }
                 staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8));     // 宸ヤ綔鍙�
 
-                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8 + 4));   // 鐩爣绔�
+                staProtocol.setStaNo((int)siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4));   // 鐩爣绔�
 
                 boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
                 staProtocol.setAutoing(status[0]);  // 鑷姩
@@ -231,7 +235,7 @@
         OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10));
         if (result2.IsSuccess) {
             for (int i = 0; i < barcodeSize; i++) {
-                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,10, "UTF-8");
+                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8");
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                 if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                     barcodeThread.setBarcode(barcode);
@@ -292,14 +296,63 @@
         }
         ArrayList<Integer> staNos = getStaNo();
         int index = staNos.indexOf(staProtocol.getSiteId());
-        int[] array = new int[2];
-        array[0] = staProtocol.getWorkNo();
-        array[1] = staProtocol.getStaNo();
-        OperateResult write = siemensS7Net.Write("DB100." + index*8, array);
+//        int[] array = new int[2];
+//        array[0] = staProtocol.getWorkNo();
+//        array[1] = staProtocol.getStaNo();
+//        OperateResult write = siemensS7Net.Write("DB100." + index*8, array);
 
-//        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-//        Thread.sleep(500);
-//        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
+        OperateResult write = null;
+        OperateResult write1 = null;
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        do {
+            write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            Thread.sleep(500);
+            write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
+            if(write.IsSuccess || write1.IsSuccess){
+                writeCount=6;
+            }else {
+                writeCount++;
+                log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+        }while (writeCount<5);
+
+        if (!write.IsSuccess || !write1.IsSuccess) {
+            staProtocol = station.get(staProtocol.getSiteId());
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+                staProtocol.setPakMk(true);
+            }
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+            log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+        } else {
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  slave.getId(), JSON.toJSON(staProtocol));
+        }
+    }
+
+
+    /**
+     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�   鐮佸灈瀹屾垚  缁欒緭閫佺嚎鍐欎换鍔″畬鎴�
+     */
+    private void write3(StaProtocol staProtocol) throws InterruptedException {
+        if (null == staProtocol) {
+            return;
+        }
+        ArrayList<Integer> staNos = getStaNo();
+        int index = staNos.indexOf(staProtocol.getSiteId());
+
+        OperateResult write = null;
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        do {
+            write = siemensS7Net.Write("DB100." + index*6, (short)1);    // 宸ヤ綔鍙�
+            if(write.IsSuccess){
+                writeCount=6;
+            }else {
+                writeCount++;
+                log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+        }while (writeCount<5);
 
         if (!write.IsSuccess) {
             staProtocol = station.get(staProtocol.getSiteId());
@@ -313,7 +366,6 @@
             log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  slave.getId(), JSON.toJSON(staProtocol));
         }
     }
-
     // 鏇存柊鍏ュ嚭搴撴ā寮�
     private void updateIoMode() throws InterruptedException {
         if (this.ioModeOf2F != IoModeType.NONE) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8db6b40..477b377 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://192.168.4.15:1433;databasename=srjtasrs
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=srjtasrs
     username: sa
     password: sa@123
   mvc:
@@ -49,7 +49,7 @@
   # 鍫嗗灈鏈�1
   crn[0]:
     id: 1
-    ip: 192.168.4.250
+    ip: 192.168.18.13
     port: 102
     rack: 0
     slot: 0
@@ -59,21 +59,35 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 007
+      staNo: 102
       row: 3
       bay: 1
       lev: 1
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 201
+      row: 3
+      bay: 1
+      lev: 2
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 008
+      staNo: 100
       row: 2
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 200
+      row: 2
+      bay: 1
+      lev: 2
   # 鍫嗗灈鏈�2
   crn[1]:
     id: 2
-    ip: 192.168.4.250
+    ip: 192.168.18.21
     port: 102
     rack: 0
     slot: 0
@@ -83,21 +97,35 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 005
+      staNo: 105
       row: 7
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 203
+      row: 7
+      bay: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 006
+      staNo: 103
+      row: 6
+      bay: 1
+      lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 202
       row: 6
       bay: 1
       lev: 1
   # 鍫嗗灈鏈�3
   crn[2]:
     id: 3
-    ip: 192.168.4.250
+    ip: 192.168.18.29
     port: 102
     rack: 0
     slot: 0
@@ -107,21 +135,35 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 003
+      staNo: 108
       row: 11
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 205
+      row: 11
+      bay: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 004
+      staNo: 106
       row: 10
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 204
+      row: 10
+      bay: 1
+      lev: 2
   # 鍫嗗灈鏈�4
   crn[3]:
     id: 4
-    ip: 192.168.4.250
+    ip: 192.168.18.37
     port: 102
     rack: 0
     slot: 0
@@ -131,21 +173,35 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 001
+      staNo: 111
       row: 15
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 207
+      row: 15
+      bay: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 002
+      staNo: 109
       row: 14
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 206
+      row: 14
+      bay: 1
+      lev: 2
   # 鍫嗗灈鏈�5
   crn[4]:
     id: 5
-    ip: 192.168.4.250
+    ip: 192.168.18.45
     port: 102
     rack: 0
     slot: 0
@@ -155,21 +211,35 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 001
-      row: 15
+      staNo: 114
+      row: 19
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 209
+      row: 19
+      bay: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 002
-      row: 14
+      staNo: 112
+      row: 18
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 208
+      row: 18
+      bay: 1
+      lev: 2
   # 鍫嗗灈鏈�6
   crn[5]:
     id: 6
-    ip: 192.168.4.250
+    ip: 192.168.18.53
     port: 102
     rack: 0
     slot: 0
@@ -179,22 +249,36 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 001
-      row: 15
+      staNo: 117
+      row: 23
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 211
+      row: 23
+      bay: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 002
-      row: 14
+      staNo: 115
+      row: 22
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 210
+      row: 22
+      bay: 1
+      lev: 2
 
   # RGV绌挎杞�1
   rgv[0]:
     id: 1
-    ip: 10.10.10.40
+    ip: 192.168.18.77
     port: 502
     rack: 0
     slot: 0
@@ -222,7 +306,7 @@
   # RGV绌挎杞�2
   rgv[1]:
     id: 2
-    ip: 192.168.4.15
+    ip: 192.168.18.79
     port: 502
     rack: 0
     slot: 0
@@ -251,7 +335,7 @@
   # 杈撻�佺嚎
   devp[0]:
     id: 1
-    ip: 192.168.4.250
+    ip: 192.168.18.71
     port: 102
     rack: 0
     slot: 0
@@ -309,23 +393,30 @@
   # 杈撻�佺嚎
   devp[1]:
     id: 2
-    ip: 192.168.4.250
+    ip: 192.168.18.81
     port: 102
     rack: 0
     slot: 0
     # 鍏ュ簱鍙�1
     inSta[0]:
-      staNo: 15
+      staNo: 217
       barcode: ${wcs-slave.barcode[0].id}
+    # 鍏ュ簱鍙�1
+    inSta[1]:
+      staNo: 221
+      barcode: ${wcs-slave.barcode[1].id}
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
-      staNo: 12
+      staNo: 212
     # 鍑哄簱鍙�1
     outSta[0]:
-      staNo: 11
+      staNo: 212
+    # 鍑哄簱鍙�1
+    outSta[1]:
+      staNo: 213
     # 鎷f枡鍏ュ簱鍙�1
     pickSta[0]:
-      staNo: 11
+      staNo: 212
       barcode: ${wcs-slave.barcode[0].id}
 
   # 鏉$爜鎵弿浠�
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index adfcb7a..6650f59 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -33,7 +33,7 @@
     <select id="selectByWrkNo" resultMap="BaseResultMap">
         select top 1 * from asr_wrk_mast_sta
         where 1=1
-        and wrk_no = #{wrkNo}
+        and wrk_no = #{workNo}
     </select>
 
     <select id="selectNoInterfere" resultMap="BaseResultMap">
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index ae62f51..9cbe55e 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -533,7 +533,7 @@
                 "type": "stn",
                 "id": "site-130",
                 "text": "130",
-                "top": 380,
+                "top": 297,
                 "left": 266,
                 "width": 100,
                 "height": 20
@@ -541,15 +541,15 @@
                 "type": "stn",
                 "id": "site-131",
                 "text": "131",
-                "top": 402,
+                "top": 319,
                 "left": 266,
                 "width": 100,
-                "height": 20
+                "height": 34
             }, {
                 "type": "stn",
                 "id": "site-132",
                 "text": "132",
-                "top": 424,
+                "top": 355,
                 "left": 266,
                 "width": 100,
                 "height": 20
@@ -557,15 +557,15 @@
                 "type": "stn",
                 "id": "site-133",
                 "text": "133",
-                "top": 446,
+                "top": 377,
                 "left": 266,
                 "width": 100,
-                "height": 20
+                "height": 42
             }, {
                 "type": "stn",
                 "id": "site-134",
                 "text": "134",
-                "top": 468,
+                "top": 421,
                 "left": 266,
                 "width": 100,
                 "height": 20
@@ -573,26 +573,26 @@
                 "type": "stn",
                 "id": "site-135",
                 "text": "135",
-                "top": 490,
+                "top": 443,
                 "left": 266,
                 "width": 100,
-                "height": 20
+                "height": 34
             }, {
                 "type": "stn",
                 "id": "site-136",
                 "text": "136",
-                "top": 512,
+                "top": 479,
                 "left": 266,
                 "width": 100,
-                "height": 20
+                "height": 39
             }, {
                 "type": "stn",
                 "id": "site-137",
                 "text": "137",
-                "top": 534,
+                "top": 520,
                 "left": 266,
                 "width": 100,
-                "height": 20
+                "height": 34
             }, {
                 "type": "stn",
                 "id": "site-138",
@@ -653,7 +653,7 @@
                 "type": "stn",
                 "id": "site-118",
                 "text": "118",
-                "top": 380,
+                "top": 297,
                 "left": 368,
                 "width": 100,
                 "height": 20
@@ -661,7 +661,7 @@
                 "type": "stn",
                 "id": "site-119",
                 "text": "119",
-                "top": 424,
+                "top": 355,
                 "left": 368,
                 "width": 100,
                 "height": 20
@@ -669,7 +669,7 @@
                 "type": "stn",
                 "id": "site-120",
                 "text": "120",
-                "top": 468,
+                "top": 421,
                 "left": 368,
                 "width": 100,
                 "height": 20
@@ -677,7 +677,7 @@
                 "type": "stn",
                 "id": "site-121",
                 "text": "121",
-                "top": 512,
+                "top": 479,
                 "left": 368,
                 "width": 100,
                 "height": 20
@@ -685,7 +685,7 @@
                 "type": "stn",
                 "id": "site-122",
                 "text": "122",
-                "top": 534,
+                "top": 183,
                 "left": 368,
                 "width": 100,
                 "height": 20
@@ -710,7 +710,7 @@
                 "type": "stn",
                 "id": "site-130",
                 "text": "130",
-                "top": 380,
+                "top": 297,
                 "left": 266,
                 "width": 100,
                 "height": 20
@@ -885,8 +885,8 @@
                 "height": 684
             }, {
                 "type": "stn",
-                "id": "site-3",
-                "text": "3",
+                "id": "site-2000",
+                "text": "2000",
                 "top": 457,
                 "left": 469,
                 "width": 69,
diff --git a/version/BarcodeThread1.java b/version/BarcodeThread1.java
index 38ce936..04f585b 100644
--- a/version/BarcodeThread1.java
+++ b/version/BarcodeThread1.java
@@ -47,7 +47,7 @@
                     String s = new String(read);
                     if (!Cools.isEmpty(s)) {
                         barcode = new String(read);
-                        log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+//                        log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
                         JSONObject jsonObject = new JSONObject();
                         jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
                         jsonObject.put("barcode", barcode);
diff --git a/version/BarcodeThread2.java b/version/BarcodeThread2.java
index 3f2fb52..5f97060 100644
--- a/version/BarcodeThread2.java
+++ b/version/BarcodeThread2.java
@@ -32,7 +32,7 @@
     public void setBarcode(String barcode) {
         this.barcode.delete(0, this.barcode.length());
         this.barcode.append(barcode);
-        log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+//        log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
         jsonObject.put("barcode", barcode);

--
Gitblit v1.9.1