From d014ca67872527703ef949b6874984df0208f17b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 17 四月 2023 09:42:36 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 314 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 269 insertions(+), 45 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 38c181f..5053466 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -105,7 +105,7 @@
// 閬嶅巻鍏ュ簱鍙�
for (DevpSlave.Sta inSta : devp.getInSta()) {
// 鑾峰彇鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
if (staProtocol == null) {
continue;
@@ -113,6 +113,29 @@
staProtocol = staProtocol.clone();
}
Short workNo = staProtocol.getWorkNo();
+
+ //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+ if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+ if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)100);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)200);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ }
+
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
@@ -303,15 +326,20 @@
continue;
}
short staNo;
+ List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
+ List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
+
switch (wrkMast.getSourceStaNo()) {
case 104:
case 108:
staNo = 103;
- List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
- if (basDevps1.size()!=0){
+ if (basDevps1.size()!=0 && basDevps2.size()!=0){
continue;
+ } else if (basDevps1.size()!=0){
+ staNo = 203;
}
- List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType(103);
+
+ List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
if (wrkMasts1.size()!=0){
boolean flag = false;
for (WrkMast wrkMast1:wrkMasts1){
@@ -320,17 +348,25 @@
break;
}
}
- if (flag) continue;
+ if (flag) {
+ News.error("MainServiceImpl 324琛�"+"104绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+ continue;
+ }
}
break;
case 204:
case 208:
staNo = 203;
- List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
- if (basDevps2.size()!=0){
+ if (basDevps1.size()!=0 && basDevps2.size()!=0){
continue;
+ } else if (basDevps2.size()!=0){
+ staNo = 103;
}
- List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType(203);
+
+// if (basDevps2.size()!=0){
+// continue;
+// }
+ List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
if (wrkMasts2.size()!=0){
boolean flag = false;
for (WrkMast wrkMast1:wrkMasts2){
@@ -339,7 +375,10 @@
break;
}
}
- if (flag) continue;
+ if (flag) {
+ News.error("MainServiceImpl 346琛�"+"204绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+ continue;
+ }
}
break;
default:
@@ -464,7 +503,7 @@
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
+ News.info("鍐嶅叆搴撹幏鍙栨柊搴撲綅鎴愬姛锛岃繑鍥炴暟鎹�===>>", JSON.toJSON(dto));
// // 鑾峰彇鐩爣绔�
// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
// .eq("type_no", wrkMast.getIoType() - 50)
@@ -492,6 +531,7 @@
// 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setIoPri(13D);
wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
wrkMast.setCrnNo(dto.getCrnNo());
@@ -535,6 +575,9 @@
ledThread.errorReset();
+ if(wrkMast.getIoType()>100){
+ throw new CoolException("鍐嶅叆搴撴洿鏂板伐浣滄。澶辫触锛屼笉鑳界粰PLC涓嬪彂浠诲姟===>>" + wrkMast.getWrkNo());
+ }
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
@@ -715,6 +758,7 @@
// 鏇存柊宸ヤ綔妗g姸鎬佷负 17.鍑哄簱瀹屾垚
wrkMast.setWrkSts(17L);
wrkMast.setSteNo(0);
+ wrkMast.setIoPri(15D);
wrkMast.setCrnEndTime(new Date());
if (wrkMastMapper.updateById(wrkMast) != 0) {
// 澶嶄綅鍫嗗灈鏈�
@@ -805,18 +849,18 @@
continue;
}
- //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
- WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
- if(!Cools.isEmpty(one)){
- News.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
- continue;
- }
-
// 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
if(null == wrkMast) {
// News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
continue;
+ }
+
+ //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
+ WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
+ if(!Cools.isEmpty(one)){
+ News.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
+// continue;
}
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔�
@@ -1020,12 +1064,53 @@
continue;
}
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
if (wrkMast.getCrnNo().equals(2)){
+ if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"103闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+ return false;
+ }
+ if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"203闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+ return false;
+ }
+
if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
Integer sour = wrkMast.getSourceStaNo();
List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
if (wrkMasts.size() > 0){
- continue;
+ News.error("MainServiceImpl 1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
+ return false;
+ }
+
+ //濡傛灉瀛樺湪鐩爣绔�300涓旀鍦ㄦ墽琛岀殑鎷f枡/鐩樼偣浠诲姟锛屽垯2鍙峰爢鍨涙満涓嶅厑璁稿仛鎷f枡/鐩樼偣鍑哄簱
+ WrkMast one = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("sta_no",300)
+ .last(" and wrk_sts>11 and io_type in (103,107) "));
+ if(!Cools.isEmpty(one)){
+ News.error("MainServiceImpl 1099琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
+ return false;
+ }
+ }
+
+ if (wrkMast.getWrkSts() == 11 && wrkMast.getIoType() == 101){
+ Integer sour = wrkMast.getSourceStaNo();
+ List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour);
+ if (wrkMasts.size() > 0){
+ for (WrkMast one : wrkMasts){
+ if(one.getWrkNo().equals(wrkMast.getWrkNo())){
+ News.error("MainServiceImpl 1028琛�"+"204瀛樺湪鍏ㄦ澘鍑哄簱涓揣鐗╋紝2鍙峰爢鍨涙満鏆傛椂绂佹鍏ㄦ澘鍑哄簱锛侊紒锛�");
+ return false;
+ }
+ }
}
}
}
@@ -1038,7 +1123,7 @@
.last(" and wrk_sts < 10"));
if(one1 != null){
News.error("{}鍑哄簱浠诲姟鏃犳硶浣滀笟锛屽洜鍏ュ簱浠诲姟宸茬粦瀹氬皬杞�!", wrkMast.getWrkNo());
- continue;
+ return false;
}
//鍔犲己鍒ゆ柇锛岀‘淇濆洜鍑哄簱瀵艰嚧鐨勭Щ搴撴暣濂椾换鍔″叏閮ㄧ粨鏉熷悗锛屾墠鑳芥墽琛屼笅涓�绗斿嚭搴撲换鍔°�傚彧鏈夊簱浣嶅畬鎴愮Щ搴撳洖鍘诲叏閮ㄤ换鍔″悗锛屾墠璁や负褰撶粍鍑哄簱浠诲姟瀹屾垚
@@ -1048,13 +1133,13 @@
if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo())
|| Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getSourceLocNo())
|| Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getSourceLocNo()))){
- continue;
+ return false;
}
//瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍥炰腑锛屼笖绉诲簱鐩爣搴撲綅涓庡緟鍑哄簱搴撲綅涓嶅湪鍚屼竴搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗�
if(one.getWrkSts() < 11 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo())
|| Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getLocNo())
|| Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getLocNo()))){
- continue;
+ return false;
}
}
@@ -1082,7 +1167,9 @@
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
- flag = true;
+ if (waitWrkMast.getWrkSts() != 17) {
+ flag = true;
+ }
break;
}
}
@@ -1095,6 +1182,8 @@
.last(" and wrk_sts in (12,13,14,15,16)"));
if(one2==null) {
moveLocForDeepLoc(slave, shallowLoc);
+ } else {
+ News.error("娴呭簱浣嶉樆濉炴椂锛屼笖娴呭簱浣嶅瓨鍦ㄤ綔涓氫腑鍑哄簱浠诲姟锛佸伐浣滃彿={}", one2.getWrkNo());
}
flag = true;
break;
@@ -1112,11 +1201,17 @@
break;
}
+ //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
+ if(shallowLoc!=null && !shallowLoc.getLocSts().equals("O")){
+ News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
+ flag = true;
+ break;
+ }
}
}
}
if(flag){
- continue;
+ return false;
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
@@ -1127,17 +1222,10 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
- News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
continue;
}
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
+
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -1542,8 +1630,12 @@
if(deepLoc != null && !deepLoc.getLocSts().equals("F")
&& !deepLoc.getLocSts().equals("D")
&& !deepLoc.getLocSts().equals("O")
- && (waitWrkMast!=null && waitWrkMast.getWrkSts()<17)){
+ && (waitWrkMast!=null && waitWrkMast.getWrkSts()<18)){
News.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts());
+ if(waitWrkMast.getIoPri()<9999) {//璋冮珮浼樺厛绾�
+ waitWrkMast.setIoPri(waitWrkMast.getIoPri() + 1);
+ wrkMastService.updateById(waitWrkMast);
+ }
flag = true;
break;
}
@@ -1568,7 +1660,7 @@
}
}
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
- if(sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D")){
+ if(sourceLoc.getLocSts().equals("R") || sourceLoc.getLocSts().equals("D")){
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiTime(new Date());
if (!locMastService.updateById(sourceLoc)) {
@@ -1576,6 +1668,11 @@
}
}
break;
+// } else {
+// LocMast curLoc = locMastService.selectById(locNo);
+// if(curLoc != null && curLoc.getLocSts().equals("O")){
+//
+// }
}
}
}
@@ -2242,6 +2339,10 @@
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
SteProtocol steProtocol = steThread.getSteProtocol();
if (steProtocol == null) { return; }
+ if(steProtocol.getLoad() == 1){
+ News.error("灏忚溅涓婃柟鏈夎揣锛屾棤娉曚笅鍙戜换鍔�===>>{}", steNo);
+ return;
+ }
if (steProtocol.isIdle() && steProtocol.getLoad() == 0) {
// 鍫嗗灈鏈虹┖闂�
if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
@@ -2262,18 +2363,35 @@
crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
+
+ if( crnCommand.getSourcePosX() == crnCommand.getDestinationPosX()
+ && crnCommand.getSourcePosY() == crnCommand.getDestinationPosY()
+ && crnCommand.getSourcePosZ() == crnCommand.getDestinationPosZ()){
+ //鎵撹ˉ涓侊紝濡傛灉鍑虹幇婧愭帓鍒楀眰 鍜岀洰鏍囨帓鍒楀眰瀹屽叏鐩稿悓鏃讹紝涓嶇粰鍫嗗灈鏈哄彂浠诲姟锛岀姸鎬佺洿鎺ョ敱3 ==>> 6
// 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅
+ // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 6.灏忚溅寰呭叆
Date now = new Date();
- wrkMast.setWrkSts(4L);
+ wrkMast.setWrkSts(6L);
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ } else {
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+ steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
+ // 淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅
+ Date now = new Date();
+ wrkMast.setWrkSts(4L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
}
}
// 鍑哄簱鎼�
@@ -2632,7 +2750,7 @@
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙�
steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+ steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘诲緟鏈轰綅閬胯
// steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
// steCommand.setBay(steProtocol.getBay());
// steCommand.setLev(steProtocol.getLev());
@@ -2661,7 +2779,7 @@
String locSts = "";
// 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
if (wrkMast.getEmptyMk().equals("N")) {
- locSts = "F";
+ locSts = "R";
// 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
News.error("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
@@ -3196,13 +3314,36 @@
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
if (staProtocol == null) {
continue;
} else {
staProtocol = staProtocol.clone();
}
+
+ //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+ if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
+ if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)100);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)200);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ }
+
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing()
&& staProtocol.isLoading()
@@ -3329,6 +3470,7 @@
}
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
if (wrkMast.getIoType() != 110) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
wrkDetls.forEach(wrkDetl -> {
@@ -3778,8 +3920,31 @@
if(Utils.getGroupRow(one.getLocNo()) != Utils.getGroupRow(shallowLoc.getLocNo())
|| Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
|| Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
- loc = one;
- break;
+
+ boolean success = true;
+ List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo());
+ for (String inside : insideLoc) {
+ LocMast locMast = locMastService.selectById(inside);
+ if(Cools.isEmpty(locMast)){
+ continue;
+ }
+ if (locMast.getLocSts().equals("P")
+ || locMastService.selectById(inside).getLocSts().equals("R")
+ || locMastService.selectById(inside).getLocSts().equals("S")
+ || locMastService.selectById(inside).getLocSts().equals("Q")) {
+ success = false; break;
+ }
+ }
+
+ Integer steNo = this.hasCar(one.getLocNo());
+ if (steNo != null) {
+ continue;
+ }
+
+ if (success) {
+ loc = one;
+ break;
+ }
}
}
@@ -3856,4 +4021,63 @@
}
}
+ /**
+ * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+ */
+ public synchronized void ioConvert() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
+ WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
+ switch (inSta.getStaNo()) {
+ case 103://1F
+ if (pakout != null) {
+ if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf1F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf1F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ case 203://2F
+ if (pakout != null) {
+ if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ }
+ }
+
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
}
--
Gitblit v1.9.1