From fdcda0a22afbb0cdb1bd43474330e9b529ab8b68 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 16:48:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 150 ++++++++++++++++++++++++++-----------------------
1 files changed, 80 insertions(+), 70 deletions(-)
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 b94ec5b..7061c8b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -114,6 +114,8 @@
@Autowired
private BasDevpOptService basDevpOptService;
@Autowired
+ private BasRgvOptService basRgvOptService;
+ @Autowired
private MatService matService;
@Value("${wms.url}")
@@ -2970,7 +2972,7 @@
//濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
switch (site){
case 1108:staProtocol = devpThread.getStation().get(site - 2);break;
- case 2031:staProtocol = devpThread2.getStation().get(site);break;
+ case 2031:staProtocol = devpThread2.getStation().get(site + 1);break;
}
if (staProtocol == null) {
return;
@@ -3722,9 +3724,14 @@
}
- if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
- rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
- && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){
+ RgvThread rgvThread1 = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol1 = rgvThread.getRgvProtocol();
+ if (rgvProtocol1 == null) {
+ continue;
+ }
+ if(rgvProtocol1.getStatusType1() == RgvStatusType.IDLE &&
+ rgvProtocol1.getModeType() == RgvModeType.AUTO && rgvThread1.isPakMk()
+ && rgvThread1.isPaking() && basRgv.getPakAll().equals("1")){
if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){
rgvPreSchedulingIn(rgv, rgvProtocol);//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
if (rgvProtocol.getLastIo().equals("I")) {
@@ -3989,7 +3996,7 @@
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
- if(wrkMastSta.getMk() == 1){//鑻ュ凡鎵ц
+ if(wrkMastSta.getMk() != null && wrkMastSta.getMk() == 1){//鑻ュ凡鎵ц
basRgv.setPakAll("1");
basRgvService.updateById(basRgv);
}
@@ -4455,34 +4462,34 @@
}
//閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()); //鍊掓暟绗簩涓�
+ StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()==1043?1044:1103); //鍊掓暟绗簩涓�
StaProtocol staProtocol2 = null; //杩炵画鍙栬揣浠诲姟绔欑偣
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
- WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
- Integer staNo = null; //涓庤皟搴�
- switch (rgvStn.getStaNo2()){
- case 1043: staNo = 1044;break;
- case 1104: staNo = 1103;break;
- }
- if(staNo != null ){
- staProtocol2 = devpThread.getStation().get(staNo);
- if (staProtocol2 == null) {
- News.infoNoLog(" - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
- if (staDetl2 == null) {
- News.error(" - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
- if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
- //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
- wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
- }
-
- }
+// WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
+// Integer staNo = null; //涓庤皟搴�
+// switch (rgvStn.getStaNo2()){
+// case 1043: staNo = 1044;break;
+// case 1104: staNo = 1103;break;
+// }
+// if(staNo != null ){
+// staProtocol2 = devpThread.getStation().get(staNo);
+// if (staProtocol2 == null) {
+// News.infoNoLog(" - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+// continue;
+// } else {
+// staProtocol2 = staProtocol2.clone();
+// }
+// BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+// if (staDetl2 == null) {
+// News.error(" - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+// continue;
+// }
+// if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
+// //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
+// wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
+// }
+//
+// }
if(rgvProtocol.getTaskNo2() > 9999 && staProtocol.getWorkNo() < 10000){
continue;
}
@@ -4543,21 +4550,21 @@
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
- if(wrkMastSta3 != null ){
- List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
- if(wrkMastStaPaking.size() < 1 && !wrkMastSta3.getWrkNo().equals(wrkMastSta.getWrkNo())){//宸叉湁鏍囪涓嶅啀鏍囪
- wrkMastSta3.setMk(1);
- basRgv.setPakAll("0");
- basRgvService.updateById(basRgv);
-
- try{
- wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
- }
- }
- }
+// if(wrkMastSta3 != null ){
+// List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
+// if(wrkMastStaPaking.size() < 1 && !wrkMastSta3.getWrkNo().equals(wrkMastSta.getWrkNo())){//宸叉湁鏍囪涓嶅啀鏍囪
+// wrkMastSta3.setMk(1);
+// basRgv.setPakAll("0");
+// basRgvService.updateById(basRgv);
+//
+// try{
+// wrkMastStaMapper.updateById(wrkMastSta3);
+// log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+// }catch (Exception e){
+// log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+// }
+// }
+// }
basRgv.setPakOut("0");//鍑哄簱涓嶅厑璁�
basRgvService.updateById(basRgv);
rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾
@@ -4600,6 +4607,21 @@
if (targetPosition == 1038) {
System.out.println("灏忚溅涓嬪彂鍛戒护鏃堕棿锛�" +
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(now));
+ }
+ EntityWrapper<BasRgvOpt> entityWrapper = new EntityWrapper<>();
+ entityWrapper.eq("rgv_no", rgvId)
+ .orderBy("send_time");
+ BasRgvOpt basRgvOpt = basRgvOptService.selectOne(entityWrapper);
+ // 闃叉閲嶅涓嬪彂鍛戒护
+ if (basRgvOpt != null) {
+ // 鑾峰彇鏈�鏂拌褰曠殑 mode 瀵瑰簲鐨勪换鍔$被鍨�
+ RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode());
+ // 鍒ゆ柇褰撳墠鍛戒护涓庢渶鏂拌褰曟槸鍚︾浉鍚�
+ if (latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
+ // 濡傛灉鏈�鏂拌褰曠殑 mode 鍜� posSta 涓庡綋鍓嶅懡浠ょ浉鍚岋紝璁や负鏄噸澶嶅懡浠�
+ log.error("鍛戒护閲嶅涓嬪彂锛屽綋鍓嶅懡浠や笌鏈�鏂拌褰曠浉鍚岋紝浠诲姟涓嶄笅鍙戯紒");
+ return false;
+ }
}
rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅宸ヤ綔鍙�
@@ -4796,11 +4818,9 @@
continue;
}
List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo()));
- boolean sign = true;
+ BasArmMast basArmMastFinal = null;
+ Integer num = 0;
for (BasArm basArm : basArmList){
-// if (basArm.getStaNo()==2){//NG
-// continue;
-// }
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
continue;
@@ -4822,26 +4842,14 @@
basArmMast.setArmNo(basArm.getArmNo());
basArmMast.setStaNo(basArm.getStaNoSou());
basArmMast.setSortingLine(basArm.getSortingLineSou());
- basArmMastService.insert(basArmMast);
- sign = false;
+ if(basArmMastList2.size() > num){
+ basArmMastFinal = basArmMast;
+ }
+ }
+ if(basArmMastFinal != null){
+ basArmMastService.insert(basArmMastFinal);
break;
}
-// if (sign){
-// for (BasArm basArm : basArmList){
-// if (basArm.getStaNo()==2){//NG
-// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
-// if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
-// continue;
-// }
-// BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam);
-// basArmMast.setArmNo(basArm.getArmNo());
-// basArmMast.setStaNo(basArm.getStaNoSou());
-// basArmMast.setSortingLine(basArm.getSortingLineSou());
-// basArmMastService.insert(basArmMast);
-// break;
-// }
-// }
-// }
}
}
} catch (Exception e){
@@ -5129,11 +5137,11 @@
String barcode = locMastEnd.getBarcode();
if(!Cools.isEmpty(barcode)) {
if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode)) {
- armTaskAssignmentCallApiLogSave(locMastEnd, "鎵樼洏鏉$爜涓虹┖", basArm.getStaNoSou()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+ log.error( "鍙栬揣鏉$爜涓虹┖", basArm.getStaNoSou());
continue;
}
} else {
- armTaskAssignmentCallApiLogSave(locMastEnd, "鎵樼洏鏉$爜涓虹┖", basArm.getStaNoSou()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+ log.error( "鍙栬揣鏉$爜涓虹┖", basArm.getStaNoSou());
continue;
}
@@ -5397,6 +5405,7 @@
SearchLocParam param = new SearchLocParam();
param.setBarcode(staProtocol.getWorkNo().toString());
param.setIoType(1);
+ param.setOutArea(wrkMast.getCtnKind());
param.setSourceStaNo(outStaAgv.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
@@ -5455,6 +5464,7 @@
SearchLocParam param = new SearchLocParam();
param.setBarcode(wrkMast.getBarcode());
param.setIoType(1);
+ param.setOutArea(wrkMast.getCtnKind());
param.setSourceStaNo(outStaAgv.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
--
Gitblit v1.9.1