From 7cefeee8ebf28abf429c3654a0520da2469207f1 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期二, 14 十月 2025 14:24:00 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/param/CombParam.java       |    1 
 src/main/java/com/zy/core/thread/RgvThread.java             |    4 
 src/main/java/com/zy/asrs/entity/BasArmMast.java            |   11 +
 src/main/java/com/zy/asrs/entity/BasArm.java                |    4 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  146 ++++++++++++++++----
 src/main/resources/mapper/BasArmMastMapper.xml              |    1 
 src/main/java/com/zy/core/MainProcess.java                  |    2 
 src/main/java/com/zy/core/model/protocol/RgvProtocol.java   |   13 +
 src/main/resources/mapper/BasArmMapper.xml                  |    1 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   99 ++++++++-----
 src/main/resources/application.yml                          |   56 ++++---
 src/main/java/com/zy/asrs/utils/PostMesDataUtils.java       |   65 +++++++-
 12 files changed, 298 insertions(+), 105 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasArm.java b/src/main/java/com/zy/asrs/entity/BasArm.java
index db08561..82b0541 100644
--- a/src/main/java/com/zy/asrs/entity/BasArm.java
+++ b/src/main/java/com/zy/asrs/entity/BasArm.java
@@ -62,6 +62,10 @@
     @ApiModelProperty(value= "")
     private Integer status;
 
+    @ApiModelProperty(value= "杈撻�丳LCId")
+    @TableField("devp_id")
+    private Integer devpId;
+
     public BasArm() {}
 
     public BasArm(Integer armNo,Integer staNo,Integer sortingLine,Integer status) {
diff --git a/src/main/java/com/zy/asrs/entity/BasArmMast.java b/src/main/java/com/zy/asrs/entity/BasArmMast.java
index 95ce84b..3e37352 100644
--- a/src/main/java/com/zy/asrs/entity/BasArmMast.java
+++ b/src/main/java/com/zy/asrs/entity/BasArmMast.java
@@ -56,7 +56,7 @@
      */
     @ApiModelProperty(value= "缁戝畾鏍囪")
     @TableField("binding_tags")
-    private Integer bindingTags;
+    private Long bindingTags;
 
     /**
      * 浼樺厛绾�
@@ -119,9 +119,16 @@
     @TableField("arm_msg")
     private String armMsg;
 
+    /**
+     * 寮傚父淇℃伅
+     */
+    @ApiModelProperty(value= "寮傚父淇℃伅")
+    @TableField("barcode")
+    private String barcode;
+
     public BasArmMast() {}
 
-    public BasArmMast(Integer armNo,Integer armDirection,Integer staNo,Integer sortingLine,Integer bindingTags,Long priority,Integer status,String matnr,String sku,String po,String upc,String supplier,String orderNo,Integer ctns,Long createTime,Long armError,String armMsg) {
+    public BasArmMast(Integer armNo,Integer armDirection,Integer staNo,Integer sortingLine,Long bindingTags,Long priority,Integer status,String matnr,String sku,String po,String upc,String supplier,String orderNo,Integer ctns,Long createTime,Long armError,String armMsg) {
         this.armNo = armNo;
         this.armDirection = armDirection;
         this.staNo = staNo;
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index 65ddcd2..c485ceb 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -78,6 +78,7 @@
     public CombParam(List<BasArmMast> basArmMastList) {
         this.orderNo = basArmMastList.get(0).getOrderNo();
         this.combMats = new ArrayList<>();
+        this.barcode = basArmMastList.get(0).getBarcode();
         List<BasArmMast> basArmMasts = new ArrayList<>();
         for (BasArmMast basArmMast : basArmMastList) {
             if (basArmMasts.isEmpty()){
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 7eb0fb0..67919d7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -107,6 +107,8 @@
     private BasArmService basArmService;
     @Autowired
     private BasArmMastService basArmMastService;
+    @Autowired
+    private ApiLogService apiLogService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -116,7 +118,7 @@
     @Value("${inventory.number}")
     private Integer inventoryNumber;
 
-    public Integer wrkNo = 10000;
+    public Integer wrkNo = 10001;
     public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
     /**
      * 缁勬墭
@@ -214,6 +216,7 @@
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk()
                         && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo() == 0
                 ) {
                     if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
 //                        News.error(JSON.toJSONString(staProtocol));
@@ -3432,12 +3435,15 @@
                     News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
                     continue;
                 }
+                if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
+                    //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
+                    wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
+                }
 
-                wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
             }
-//            if(rgvProtocol.getTaskNo2() > 9999){
-//                continue;
-//            }
+            if(rgvProtocol.getTaskNo2() > 9999 && staProtocol.getWorkNo() < 10000){
+                continue;
+            }
 
             if (staProtocol == null) {
                 News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
@@ -3468,7 +3474,8 @@
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
             basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+            basRgvMapService.updateById(basRgvMap);
+            WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
                 News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
                 continue;
@@ -4044,7 +4051,7 @@
     /*
      * arm浠诲姟瀹屾垚鑷姩缁勬墭
      * */
-    public synchronized void armMissionAccomplished() {
+    public synchronized void  armMissionAccomplished() {
         try{
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -4058,17 +4065,16 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
-                    String barcode = staProtocol.getBarcode();
-                    if(!Cools.isEmpty(barcode)) {
-                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                            log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�");
-                            continue;
-                        }
-                    } else {
-                        log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�");
-                        continue;
-                    }
-
+//                    String barcode = staProtocol.getBarcode();
+//                    if(!Cools.isEmpty(barcode)) {
+//                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                            armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+//                            continue;
+//                        }
+//                    } else {
+//                        armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+//                        continue;
+//                    }
                     List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>()
                             .eq("arm_no", armSta.getArmNo())
                             .eq("sta_no_sou", armSta.getStaNo())
@@ -4088,16 +4094,17 @@
                                 continue;
                             }
                             CombParam combParam = new CombParam(basArmMastList);
-                            combParam.setBarcode(barcode);
                             //arm浠诲姟瀹屾垚鑷姩缁勬墭
                             ReturnT<String> result = new PostMesDataUtils().postMesData("arm浠诲姟瀹屾垚鑷姩缁勬墭",wmsUrl, wmsComb, combParam);
                             if (result.getCode()==200){
                                 basArmMastService.updateArmMastStatus(basArm.getArmNo(),basArm.getSortingLineSou(),3,4);
                             } else {
-                                log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
+                                armTaskAssignmentCallApiLogSave(staProtocol, "鑷姩缁勬墭澶辫触", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false);
+//                                log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
                             }
                         }  catch (Exception e){
-                            log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage());
+                            armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔″畬鎴愬紓甯�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false);
+//                            log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage());
                         }
                         break;
                     }
@@ -4131,7 +4138,6 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
-
 //                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
 //                        int workNo = commonService.getWorkNo(6);//寰呭畬鍠�
 //                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
@@ -4163,6 +4169,56 @@
                     continue;
                 }
                 try{
+                    // 鑾峰彇绔欑偣淇℃伅
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basArm.getDevpId());
+                    StaProtocol staProtocol = devpThread.getStation().get(basArm.getStaNoSou());
+                    if (staProtocol == null || !staProtocol.isLoading()) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+
+                    String barcode = staProtocol.getBarcode();
+                    if(!Cools.isEmpty(barcode)) {
+                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                            armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+//                            log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�");
+                            continue;
+                        }
+                    } else {
+                        armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+
+//                        log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�");
+                        continue;
+                    }
+
+                    if(barcode.length()!=6){
+                        armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜闀垮害涓嶆槸6浣�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode, false);
+//                        log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode);
+                        continue;
+//                        throw new CoolException(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode);
+                    }
+
+                    int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode));
+                    int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode));
+                    int countwait = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode));
+                    if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+//                        throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode);
+                        armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode, false);
+
+//                        log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode);
+                        continue;
+                    }
+
+                    List<BasArmMast> basArmMastListRuningBarCode = basArmMastService.selectList(
+                            new EntityWrapper<BasArmMast>()
+                                    .eq("barcode", barcode)
+                                    .eq("status", 3)
+                    );
+                    if (!basArmMastListRuningBarCode.isEmpty()){
+                        armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�,姝e湪鑷姩缁勬墭锛侊紒锛�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
+                        continue;
+                    }
                     List<BasArmMast> basArmMastListError = basArmMastService.selectList(
                             new EntityWrapper<BasArmMast>()
                                     .eq("arm_no", basArm.getArmNo())
@@ -4170,7 +4226,9 @@
                                     .eq("status", 9)
                     );
                     if (!basArmMastListError.isEmpty()){
-                        log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒");
+                        armTaskAssignmentCallApiLogSave(staProtocol, "瀛樺湪寮傚父鏈烘鑷備换鍔�", basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒", false);
+
+//                        log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒");
                         continue;
                     }
                     List<BasArmMast> basArmMastListRuning = basArmMastService.selectList(
@@ -4196,7 +4254,9 @@
                             continue;
                         }
                         if (basArmMastList.size()>1){
-                            log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
+                            armTaskAssignmentCallApiLogSave(staProtocol, "浠诲姟寰呮墽琛屾暟閲忓ぇ浜�1", "arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�", false);
+
+//                            log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
                             continue;
                         }
                         BasArmMast basArmMast = basArmMastList.get(0);
@@ -4219,13 +4279,17 @@
 //                                璁㈠崟涓嬪彂(SKU+璁㈠崟)
                                 ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_ADAPTOR, armOrderAssignmentParam);
                                 if (result.getCode()==200){
-                                    basArmMast.setStatus(1);
-                                    basArmMastService.updateById(basArmMast);
+//                                    basArmMast.setStatus(1);
+//                                    basArmMast.setBarcode(barcode);
+//                                    basArmMastService.updateById(basArmMast);
                                 } else {
-                                    log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
+                                    armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+
+//                                    log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
                                 }
                             } catch (Exception e){
-                                log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
+                                armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+//                                log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
                                 continue;
                             }
                         }
@@ -4234,9 +4298,11 @@
                         ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam);
                         if (result.getCode()==200){
                             basArmMast.setStatus(1);
+                            basArmMast.setBarcode(barcode);
                             basArmMastService.updateById(basArmMast);
                         } else {
-                            log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
+                            armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔′俊鎭笅鍙戝け璐�", "arm缂栧彿锛�"+basArm.getArmNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+//                            log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
                         }
                     }
                 }  catch (Exception e){
@@ -4248,4 +4314,26 @@
         }
     }
 
+    public void armTaskAssignmentCallApiLogSave(StaProtocol staProtocol ,String tableName, String response, Boolean bool) {
+        ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
+                .eq("namespace", "鏈烘鑷備换鍔$浉鍏�")
+                .eq("request", "绔欑偣鍙�:" + staProtocol.getSiteId())
+                .eq("response", response)
+                .eq("url", tableName)
+                .eq("client_ip", staProtocol.getBarcode())
+                .eq("result", 0)
+                .orderBy("create_time", false)
+        );
+
+        if (!Cools.isEmpty(apiLog)){
+            long parseLong = Long.parseLong(apiLog.getTimestamp());
+            if (new Date().getTime()-parseLong<5*1000*60){
+                return;
+            }
+        }
+        apiLogService.save("鏈烘鑷備换鍔$浉鍏�", tableName, "null", staProtocol.getBarcode(),
+                "绔欑偣鍙�:" + staProtocol.getSiteId() ,
+                response, bool);
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
index 920cfe0..6fd078e 100644
--- a/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
+++ b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -2,14 +2,19 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.ApiLog;
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.utils.core.AbstractHandler;
 import com.zy.asrs.utils.core.ReturnT;
 import com.zy.common.utils.HttpHandler;
+import com.zy.core.model.protocol.StaProtocol;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.Date;
 import java.util.Map;
 
 @Slf4j
@@ -92,17 +97,21 @@
                 return FAIL.setMsg(e.getMessage());
             } finally {
                 try {
-                    // 淇濆瓨鎺ュ彛鏃ュ織
-                    ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
-                    apiLogService.save(
-                            name,
-                            URL +"/"+ mesPath,
-                            null,
-                            "127.0.0.1",
-                            JSON.toJSONString(combParam),
-                            response,
-                            success
-                    );
+                    if (success){
+                        // 淇濆瓨鎺ュ彛鏃ュ織
+                        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+                        apiLogService.save(
+                                name,
+                                URL +"/"+ mesPath,
+                                null,
+                                "127.0.0.1",
+                                JSON.toJSONString(combParam),
+                                response,
+                                success
+                        );
+                    } else {
+                        postMesDataCallApiLogSave(response,success,name, URL, mesPath, combParam);
+                    }
                 } catch (Exception e) {
                     log.error("", e); }
             }
@@ -160,4 +169,38 @@
         }
         return SUCCESS;
     }
+
+
+
+
+
+
+    public void postMesDataCallApiLogSave(String response,boolean success,String name, String URL, String mesPath, Object combParam) {
+        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+
+        ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
+                .eq("namespace", name)
+                .eq("response", response)
+                .eq("url", URL +"/"+ mesPath)
+                .eq("result", success? 1:0)
+                .orderBy("create_time", false)
+        );
+
+        if (!Cools.isEmpty(apiLog)){
+            long parseLong = Long.parseLong(apiLog.getTimestamp());
+            if (new Date().getTime()-parseLong<5*1000*60){
+                return;
+            }
+        }
+        // 淇濆瓨鎺ュ彛鏃ュ織
+        apiLogService.save(
+                name,
+                URL +"/"+ mesPath,
+                null,
+                "127.0.0.1",
+                JSON.toJSONString(combParam),
+                response,
+                success
+        );
+    }
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 1502c9b..7939396 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -90,7 +90,7 @@
 
 //                    mainService.outOfDevp(11);
 
-                if (i>2){
+                if (i>10){
                     //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
 //                    mainService.autoEmptyOut();
                     //绌烘墭鐩樿嚜鍔ㄥ叆搴�
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 ddfcc52..c7d06a2 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -352,7 +352,18 @@
         posMap.put(1024, 219684);
         posMap.put(1028, 246724);
         posMap.put(1031, 288194);
-        posMap.put(1035, 315204);
+        posMap.put(2003, 314954);
+        posMap.put(2006, 288094);
+        posMap.put(2009, 246574);
+        posMap.put(2012, 219584);
+        posMap.put(2015, 177934);
+        posMap.put(2018, 138126);
+        posMap.put(2021, 102124);
+        posMap.put(2024, 75174);
+        posMap.put(2027, 33748);
+        posMap.put(2030, 6449);
+
+
         int tolerance = 200; // 鍏佽璇樊鑼冨洿
 
         for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 988a264..3d88efe 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -127,9 +127,10 @@
         }
     }
     private static final Set<Integer> specialSites = new HashSet<>(
-            Arrays.asList(1004,1014,1018,1028,1035));
+            Arrays.asList(1004,1014,1018,1028,1035,2006,2012,2018,2024,2030));
     public static final Map<Integer, Integer> StaPosition = new HashMap<Integer, Integer>() {{
         put(1004, 1001);put(1014, 1011);put(1018, 1015);put(1028, 1025);put(1035, 1032);
+        put(2006, 2004);put(2012, 2010);put(2018, 2016);put(2024, 2022);put(2030, 2028);
 
     }};
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
@@ -278,7 +279,6 @@
      */
     private void readStatus(){
         try {
-            ArrayList<Integer> staNos = getStaNo();
 
             OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 38);
             if (result.IsSuccess) {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 45dafed..8624f3f 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -81,14 +81,15 @@
         add(2016);add(2018);
         add(2019);add(2021);
         add(2022);add(2024);
+        add(2028);add(2030);
         add(2025);add(2027);
         add(2031);add(2033);
         add(2034);add(2035);add(2037);
-        add(2041);add(2042);add(2043);add(2044);
-        add(2045);add(2046);add(2047);add(2048);
-        add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110);
-        add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120);
-        add(4001);add(4003);add(4004);add(4006);
+//        add(2041);add(2042);add(2043);add(2044);
+//        add(2045);add(2046);add(2047);add(2048);
+//        add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110);
+//        add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120);
+//        add(4001);add(4003);add(4004);add(4006);
     }};
 
     // 绔欑偣鍋忕Щ閲忔槧灏勮〃
@@ -126,13 +127,13 @@
     }};
 
     public static final Map<Integer, Integer> siteErrOffsetMap = new HashMap<Integer, Integer>() {{
-        put(1036, 512);put(1103, 476);put(1047, 452);
+        put(1036, 512);put(1103, 476);put(1047, 452);put(2037, 270);
 
     }};
 
     // 鐗规畩绔欑偣闆嗗悎
     private static final Set<Integer> specialSites = new HashSet<>(
-            Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039,2004,2001,2007,2010,2016,2013,2019,2022,2025,2030,4001,4004));
+            Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039,2004,2001,2007,2010,2016,2013,2019,2022,2025,4001,4004));
 
     // 鐗规畩绔欑偣闆嗗悎
     private static final Set<Integer> specialSites2 = new HashSet<>(
@@ -145,8 +146,8 @@
     public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
         add(0); add(1); add(2);
     }};
-    public static final ArrayList<Integer> BarcodeListMat = new ArrayList<Integer>() {{
-        add(3); add(4);
+    public static final ArrayList<Integer> BarcodeList2 = new ArrayList<Integer>() {{
+        add(3); add(4); add(5);
     }};
     public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
         add(1103);add(1036);add(1047);
@@ -203,6 +204,17 @@
                 return staNos1;
             case 2:
                 return staNos2;
+            default:
+                throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
+        }
+    }
+
+    private ArrayList<Integer> getBarcodeList() {
+        switch (slave.getId()) {
+            case 1:
+                return BarcodeList;
+            case 2:
+                return BarcodeList2;
             default:
                 throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
         }
@@ -306,18 +318,20 @@
         OperateResultExOne<byte[]> result3 = null;//1042-1053
         OperateResultExOne<byte[]> result4 = null;//1054-1079
         OperateResultExOne<byte[]> result5 = null;//1080-1110
-        OperateResultExOne<byte[]> resultErr = null;//1080-1110
+        OperateResultExOne<byte[]> resultErr = null;
         if(staNoSize == 99){
             result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
             result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
             result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
             result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
             result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
-            resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
+            resultErr = siemensS7Net.Read("DB3.0", (short) (536));
         }else{
             result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
             result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
             result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
+            resultErr = siemensS7Net.Read("DB3.0", (short) (354));
+
         }
 
 
@@ -332,6 +346,7 @@
                     staProtocol.setSiteId(siteId);
                     station.put(siteId, staProtocol);
                 }
+                staProtocol.setSiteId(siteId);
                 if (staNoSize == 99) {
                     if (siteId < 1029) {
                         result = result1;
@@ -410,40 +425,50 @@
             }
         }
         //鏉$爜鎵弿鍣�
-        ArrayList<Integer> barcodeList = BarcodeList;
+
+        ArrayList<Integer> barcodeList = getBarcodeList();
         OperateResultExOne<byte[]> reasultBarcode1 = siemensS7Net.Read("DB101.780", (short) 8);//1036
         OperateResultExOne<byte[]> reasultBarcode2 = siemensS7Net.Read("DB104.548", (short) 8);//1047
         OperateResultExOne<byte[]> reasultBarcode3 = siemensS7Net.Read("DB102.2780", (short) 8);//1103
-//        OperateResultExOne<byte[]> reasultBarcode4 = siemensS7Net.Read("DB104.180", (short) 184);
-        if(reasultBarcode1.IsSuccess){
-            Integer barcodeId = barcodeList.get(0);
-            String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode1.Content, 0));
-            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
-            if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                barcodeThread.setBarcode(barcode);
-            }
-//            News.error(JSON.toJSONString(barcode+"绾跨▼"+barcodeId));
+        OperateResultExOne<byte[]> reasultBarcode4 = siemensS7Net.Read("DB201.344", (short) 8);
+        if(barcodeList.get(0) == 0){
+            if(reasultBarcode1.IsSuccess){
+                Integer barcodeId = barcodeList.get(0);
+                String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode1.Content, 0));
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
+                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                    barcodeThread.setBarcode(barcode);
+                }
 
-        }
-        if(reasultBarcode2.IsSuccess){
-            Integer barcodeId = barcodeList.get(1);
-            String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode2.Content, 0));
-            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
-            if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                barcodeThread.setBarcode(barcode);
             }
-//            News.error(JSON.toJSONString(barcode+"绾跨▼"+barcodeId));
+            if(reasultBarcode2.IsSuccess){
+                Integer barcodeId = barcodeList.get(1);
+                String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode2.Content, 0));
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
+                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                    barcodeThread.setBarcode(barcode);
+                }
 
-        }
-        if(reasultBarcode3.IsSuccess){
-            Integer barcodeId = barcodeList.get(2);
-            String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode3.Content, 0));
-            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
-            if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                barcodeThread.setBarcode(barcode);
             }
-//            News.error(JSON.toJSONString(barcode+"绾跨▼"+barcodeId));
+            if(reasultBarcode3.IsSuccess){
+                Integer barcodeId = barcodeList.get(2);
+                String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode3.Content, 0));
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
+                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                    barcodeThread.setBarcode(barcode);
+                }
 
+            }
+        }else{
+            if(reasultBarcode4.IsSuccess){
+                Integer barcodeId = barcodeList.get(0);
+                String barcode = String.valueOf(siemensS7Net.getByteTransform().TransInt32(reasultBarcode3.Content, 0));
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + +1);
+                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                    barcodeThread.setBarcode(barcode);
+                }
+
+            }
         }
 
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index a53a9ec..05f2a46 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -317,7 +317,7 @@
   # RGV绌挎杞�2
   rgv[1]:
     id: 2
-    ip: 10.10.10.63
+    ip: 10.10.10.193
     port: 502
     rack: 0
     slot: 0
@@ -477,17 +477,16 @@
   # 杈撻�佺嚎1
   devp[1]:
     id: 2
-    ip: 10.10.10.61
+    ip: 10.10.10.71
     port: 102
     rack: 0
     slot: 0
     # 鍏ュ簱鍙�1
     inSta[0]:
       staNo: 2035
-      barcode: ${wcs-slave.barcode[0].id}
-      barcodeMat: ${wcs-slave.barcode[3].id}
+      barcode: ${wcs-slave.barcode[3].id}
       backSta: 2034
-      led: ${wcs-slave.led[1].id}
+      led: ${wcs-slave.led[5].id}
 #    # 绌烘澘鍏ュ簱鍙�1
 #    emptyInSta[0]:
 #      staNo: 106
@@ -503,10 +502,9 @@
     # 鍏ュ簱鍙�1
     inSta[1]:
       staNo: 4001
-      barcode: ${wcs-slave.barcode[1].id}
-      barcodeMat: ${wcs-slave.barcode[4].id}
+      barcode: ${wcs-slave.barcode[4].id}
       backSta: 4003
-      led: ${wcs-slave.led[2].id}
+      led: ${wcs-slave.led[6].id}
 #    # 绌烘澘鍏ュ簱鍙�1
 #    emptyInSta[1]:
 #      staNo: 107
@@ -528,10 +526,10 @@
     # 鍑哄簱鍙�1
     outSta[0]:
       staNo: 2033
-      led: ${wcs-slave.led[0].id}
+#      led: ${wcs-slave.led[0].id}
     outSta[1]:
       staNo: 4006
-      led: ${wcs-slave.led[3].id}
+      led: ${wcs-slave.led[7].id}
 #    outSta[2]:
 #      staNo: 156
 #      led: ${wcs-slave.led[4].id}
@@ -555,57 +553,71 @@
   # 鏉$爜鎵弿浠�1mat
   barcode[3]:
     id: 4
-    ip: 10.10.10.121
+    ip: 10.10.10.124
     port: 51236
   # 鏉$爜鎵弿浠�2mat
   barcode[4]:
     id: 5
-    ip: 10.10.10.122
+    ip: 10.10.10.125
     port: 51236
   # 鏉$爜鎵弿浠�3mat
   barcode[5]:
     id: 6
-    ip: 10.10.10.123
+    ip: 10.10.10.126
     port: 51236
    # LED1
   led[0]:
     id: 1
-    ip: 10.10.10.101
+    ip: 10.10.10.212
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 100
+    staArr: 1036
   # LED2
   led[1]:
     id: 2
-    ip: 10.10.10.102
+    ip: 10.10.10.213
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 106
+    staArr: 1041
   # LED3
   led[2]:
     id: 3
-    ip: 10.10.10.103
+    ip: 10.10.10.214
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 107
+    staArr: 1103
   # LED4
   led[3]:
     id: 4
-    ip: 10.10.10.104
+    ip: 10.10.10.215
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 152
   # LED5
   led[4]:
     id: 5
-    ip: 10.10.10.105
+    ip: 10.10.10.216
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 156
   # LED6
   led[5]:
     id: 6
-    ip: 10.10.10.106
+    ip: 10.10.10.217
+    port: 5005
+    devpPlcId: ${wcs-slave.devp[0].id}
+    staArr: 160,159
+  # LED6
+  led[6]:
+    id: 7
+    ip: 10.10.10.218
+    port: 5005
+    devpPlcId: ${wcs-slave.devp[0].id}
+    staArr: 160,159
+  # LED6
+  led[7]:
+    id: 8
+    ip: 10.10.10.219
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 160,159
\ No newline at end of file
diff --git a/src/main/resources/mapper/BasArmMapper.xml b/src/main/resources/mapper/BasArmMapper.xml
index 2cf9611..cac6db3 100644
--- a/src/main/resources/mapper/BasArmMapper.xml
+++ b/src/main/resources/mapper/BasArmMapper.xml
@@ -11,6 +11,7 @@
         <result column="sta_no_sou" property="staNoSou" />
         <result column="sorting_line_sou" property="sortingLineSou" />
         <result column="status" property="status" />
+        <result column="devp_id" property="devpId" />
 
     </resultMap>
 
diff --git a/src/main/resources/mapper/BasArmMastMapper.xml b/src/main/resources/mapper/BasArmMastMapper.xml
index 79ea6d3..016069c 100644
--- a/src/main/resources/mapper/BasArmMastMapper.xml
+++ b/src/main/resources/mapper/BasArmMastMapper.xml
@@ -22,6 +22,7 @@
         <result column="create_time" property="createTime" />
         <result column="arm_error" property="armError" />
         <result column="arm_msg" property="armMsg" />
+        <result column="barcode" property="barcode" />
 
     </resultMap>
 

--
Gitblit v1.9.1