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