From df968a12b712ea472c3dff384953a77724449dc6 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期四, 16 十月 2025 16:52:09 +0800
Subject: [PATCH] 联调
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 144 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 132 insertions(+), 12 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 1af808d..fd7c8aa 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -216,7 +216,7 @@
}
continue;
}
- WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).in("io_type", 107, 103, 57));
+ WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).in("io_type", 107, 103, 57 ,104));
if (!Cools.isEmpty(checkPick)) {
continue;
}
@@ -500,6 +500,7 @@
wrkMast.setStaNo(staNo); // 鐩爣绔�
wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setPltType(0);// 鐩樼偣/鎷f枡宸ヤ綅鍙风疆0
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
@@ -854,6 +855,7 @@
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) {
+ News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏃犵墿");
//鍫嗗灈鏈烘病鏈夌墿鏂�
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
if (crnProtocol.getLastIo().equals("I")) {
@@ -879,11 +881,12 @@
}
} else if (crnProtocol.getLoaded() == 1 && crnProtocol.getLoadedTwo() == 1) {
+ News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏈夌墿");
// 鍫嗗灈鏈烘湁鐗╂枡
WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 1);
if (wrkMast != null) {
if (wrkMast.getIoType() >= 100) {
- this.outPut(crn, crnProtocol, mark);
+ this.outPutAll(crn, crnProtocol, mark);
} else {
this.inPut(crn, crnProtocol, mark);
}
@@ -891,6 +894,7 @@
log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗� ===銆嬪紓甯�");
}
} else if (crnProtocol.getLoaded() == 1 && crnProtocol.getLoadedTwo() == 0) {
+ News.error("宸ヤ綅1鏈夌墿锛屽伐浣�2鏃犵墿");
// 鍫嗗灈鏈哄伐浣�1鏈夌墿鏂�
WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 1);
if (wrkMast != null) {
@@ -899,6 +903,10 @@
if (wrkMast.getIoType() >= 100) {
WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep1(crn.getId(), wrkMast.getSourceStaNo());
if (wrkMast1 != null) {
+ if (Integer.parseInt(wrkMast1.getSourceLocNo().substring(2,5)) == 1){
+ this.outPut(crn, crnProtocol, mark);
+ continue;
+ }
this.outTake(crn, crnProtocol, 2, mark);
} else {
this.outPut(crn, crnProtocol, mark);
@@ -915,6 +923,7 @@
log.error("" + mark + " - 1" + " - 鏈夌墿鏂欐棤宸ヤ綔妗� ===銆嬪紓甯�");
}
} else if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 1) {
+ News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏈夌墿");
// 鍫嗗灈鏈哄伐浣�2鏈夌墿鏂�
WrkMast wrkMast = wrkMastMapper.selectByPltType(crn.getId(), 2);
if (wrkMast != null) {
@@ -923,6 +932,10 @@
if (wrkMast.getIoType() >= 100) {
WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep1(crn.getId(), wrkMast.getSourceStaNo());
if (wrkMast1 != null) {
+ if (Integer.parseInt(wrkMast1.getSourceLocNo().substring(2,5)) == 29){
+ this.outPut(crn, crnProtocol, mark);
+ continue;
+ }
this.outTake(crn, crnProtocol, 1, mark);
} else {
this.outPut(crn, crnProtocol, mark);
@@ -1019,7 +1032,7 @@
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0 || crnProtocol.getTaskNoTwo() != 0) {
// News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo());
continue;
}
@@ -2038,6 +2051,7 @@
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
wrkMast.setWrkSts(12L);
+ wrkMast.setPltType(crnStation);
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -2089,7 +2103,9 @@
} else if (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11) {
wrkMast.setWrkSts(4L);
wrkMast.setPltType(0);
- } else {
+ }else if (wrkMast.getWrkSts() == 108){
+ crnThread.setResetFlag(true);
+ }else {
continue;
}
Date now = new Date();
@@ -2128,6 +2144,8 @@
} else if (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11) {
wrkMast.setWrkSts(4L);
wrkMast.setPltType(0);
+ }else if (wrkMast.getWrkSts() == 108){
+ crnThread.setResetFlag(true);
} else {
continue;
}
@@ -2145,7 +2163,7 @@
}
-// News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
+ News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
}
/**
@@ -2440,6 +2458,9 @@
case 53:
ledCommand.setTitle("鎷f枡鍐嶅叆搴�");
break;
+ case 54:
+ ledCommand.setTitle("骞舵澘鍐嶅叆搴�");
+ break;
case 57:
ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
break;
@@ -2478,10 +2499,13 @@
} else {
total = locDetl.getAnfme();
}
- if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57 || wrkMast.getIoType() == 54) {
ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(), wrkDetl.getOutOrderNo(), wrkDetl.getUnit(), wrkDetl.getWeight(), wrkDetl.getSupp(), wrkDetl.getLength(), wrkDetl.getTemp1(), wrkDetl.getProType(), wrkDetl.getAnfme(), wrkDetl.getTemp2(), total));
}
if (wrkMast.getIoType() == 103) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(), wrkDetl.getOutOrderNo(), wrkDetl.getUnit(), wrkDetl.getWeight(), wrkDetl.getSupp(), wrkDetl.getLength(), wrkDetl.getTemp1(), wrkDetl.getProType(), wrkDetl.getAnfme(), wrkDetl.getTemp2(), total));
+ }
+ if (wrkMast.getIoType() == 104) {
ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(), wrkDetl.getOutOrderNo(), wrkDetl.getUnit(), wrkDetl.getWeight(), wrkDetl.getSupp(), wrkDetl.getLength(), wrkDetl.getTemp1(), wrkDetl.getProType(), wrkDetl.getAnfme(), wrkDetl.getTemp2(), total));
}
if (wrkMast.getIoType() == 107) {
@@ -2555,7 +2579,7 @@
continue;
}
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
- News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
}
}
}
@@ -3779,8 +3803,8 @@
continue;
}
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- if (crnProtocol.getCrnNo() == 1 && crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getStatusTypeTwo()== CrnStatusType.IDLE) {
+ if (crnProtocol.getBay() == 11 && crnProtocol.getLevel() == 1) {
continue;
}
Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false));
@@ -3807,12 +3831,12 @@
crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
// crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
- crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE);//浣欏閿愰簰鍥炲師鐐逛换鍔℃ā寮�: 绔欎綅杞Щ
+ crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE);
crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosY((short) 11); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 14); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
crnCommand.setCommand((short) 1);//浠诲姟纭浣�
if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
@@ -3827,4 +3851,100 @@
}
}
}
+
+ /**
+ * 宸ヤ綅1鍜屽伐浣�2閮芥湁鐗� 鍑哄簱鏀捐揣
+ */
+ public synchronized void outPutAll(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
+ News.warnNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
+ for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
+ // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
+ List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep107(slave.getId(), crnStn.getStaNo());
+ for (WrkMast wrkMast : wrkMasts) {
+ if (wrkMast == null || wrkMast.getPltType() == 2) {
+ continue;
+ }
+ // 宸ヤ綔妗g姸鎬佸垽鏂�
+ if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
+ News.error("" + mark + " - 2" + " - 1" + " - 鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+ continue;
+ }
+ // 鑾峰彇婧愬簱浣嶄俊鎭�
+ LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
+ News.error("" + mark + " - 2" + " - 2" + " - 鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ continue;
+ }
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+ break;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ News.error("" + mark + " - 2" + " - 5" + " - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ if (wrkMastMapper.selectByPltType(slave.getId(), wrkMast.getPltType()) == null) {
+ News.error("" + mark + " - 1" + " - 9" + " - 鍫嗗灈鏈烘敼宸ヤ綅瀛樺湪宸ヤ綔妗�,宸ヤ綅={}", wrkMast.getPltType());
+ }
+
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+
+ News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue());
+
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setPltType(wrkMast.getPltType());
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.PUT); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+// crnCommand.setSourcePosX((short) (sourceSta.getRow1() + slave.getOffset())); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY((short) (sourceSta.getBay1() + slave.getOffset())); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ((short) (sourceSta.getLev1() + slave.getOffset())); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(108L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
+ }
+ News.infoNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍑哄簱鎵ц瀹屾瘯");
+ }
}
--
Gitblit v1.9.1