From e7543347b5065d0047ec7706dbdb7281c3ae4463 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 24 十二月 2025 15:29:03 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 100 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 65 insertions(+), 35 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 b2bc20e..8d1d625 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}")
@@ -1171,11 +1173,14 @@
new EntityWrapper<BasCrnp>().eq("crn_no", crnProtocol.getCrnNo())
);
boolean result = true;
- if(crnProtocol.getCrnNo() != 5){
+ if(crnProtocol.getCrnNo() != 3 ){
return;
}
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ if(crnStn.getStaNo() == 4001){
+ continue;
+ }
StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo2());
if (staProtocol == null) {
News.infoNoLog(" - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц)锛歴taProtocol="+staProtocol);
@@ -1203,10 +1208,6 @@
return;
}
}
- if(crnProtocol.getCrnNo() != 5){
- return;
- }
-
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
return;
@@ -1669,9 +1670,9 @@
}
if (wrkMast.getIoType() == 107){
int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", wrkMast.getIoType()).eq("wrk_sts", 14));
- if (count >= inventoryNumber) {
- continue;
- }
+// if (count >= inventoryNumber) {
+// continue;
+// }
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
@@ -2433,7 +2434,7 @@
} else {
total = locDetl.getAnfme();
}
- if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 ||wrkMast.getIoType() == 57 || wrkMast.getIoType() == 53) {
ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total));
}
if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
@@ -3721,7 +3722,29 @@
rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
+ }
+ }
+ public synchronized void rgvIoExecuteScheduling() {
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
+ continue;
+ }
+ if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+ rgvThread.setPaking(true);
+ }
+
+ if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
+ }
if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
&& rgvThread.isPaking() && basRgv.getPakAll().equals("1")){
@@ -3989,7 +4012,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);
}
@@ -4043,6 +4066,8 @@
//閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2());
+ StaProtocol staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo());
+
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
BasRgv basRgv = basRgvService.selectById(slave.getId());
if (basRgv == null) {
@@ -4052,7 +4077,9 @@
if(staProtocol.getWorkNo() == 0){
continue;
}
- StaProtocol staProtocol2 = null;
+ if(staProtocol2.getWorkNo() != 0 ){
+ continue;
+ }
WrkMastSta wrkMastSta3 = null;
// if(rgvStn.getStaNo2()!= null ){
@@ -4601,6 +4628,21 @@
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())); // 宸ヤ綅宸ヤ綔鍙�
rgvCommand.setTaskStatus(type); // 宸ヤ綅浠诲姟妯″紡: 鍙栬揣
@@ -4796,11 +4838,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 +4862,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 +5157,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 +5425,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 +5484,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