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