From f2b2132ded0de6e3e8e2ff65bfbd98d46caa148e Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期四, 13 十一月 2025 13:46:37 +0800
Subject: [PATCH] #1
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 377 +++++++++++++++++++++++++----------------------------
1 files changed, 178 insertions(+), 199 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 45e7d2c..a89b29e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -39,6 +39,7 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -97,6 +98,8 @@
private BasRgvMapService basRgvMapService;
@Autowired
private BasCrnOptService crnOptService;
+ @Autowired
+ private ConfigService configService;
@Value("${wms.url}")
private String wmsUrl;
@@ -104,6 +107,9 @@
private boolean isToOrigin;
public Integer wrkNo = 10000;
+
+ /*鍫嗗灈鏈哄叆鍑哄簱浠诲姟涓嬪彂鎺у埗鍙傛暟*/
+// Integer ioControl=configService.selectCrnIo(Integer mark);
/**
* 缁勬墭
@@ -133,6 +139,7 @@
// 灏哄妫�娴嬪紓甯�
boolean back = false;
String errMsg = "";
+ Integer outCount=wrkMastService.selectOutCount();
if (staProtocol.isFrontErr()) {
errMsg = "鍓嶈秴闄�";
back = true;
@@ -153,28 +160,22 @@
errMsg = "鍙宠秴闄�";
back = true;
}
- if (!back && staProtocol.getWeight() > 15000) {
- errMsg = "瓒呴噸鎴栨湭璇诲彇";
+ if (!back && staProtocol.isWeightErr()) {
+ errMsg = "瓒呴噸";
back = true;
}
if (!back && staProtocol.isBarcodeErr()) {
errMsg = "鎵爜澶辫触";
back = true;
}
-// if(staProtocol.getWeight() <= 0 ){
-// continue;
-// }
-// if (!back && staProtocol.getWeight() == 0.0) {
-// errMsg = "閲嶉噺鑾峰彇澶辫触";
-// back = true;
-// }
-
-// News.info("{}閲嶉噺", staProtocol.getWeight());
+ if (!back && outCount > 0) {
+ errMsg = "褰撳墠涓哄嚭搴撴椂娈�,鍏ュ簱鏆傚仠";
+ back = true;
+ }
// 閫�鍥�
if (back) {
log.info("errmsg: " + errMsg);
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
if (!staProtocol.isLoading()) {
@@ -185,11 +186,11 @@
}
staProtocol.setWorkNo(wrkNo);//閫�鍥� 宸ヤ綔鍙�:10000
News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
- wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+ log.error("杈撻�佺嚎涓嬪彂锛堣秴闄愬叏鏉块��鍥烇級锛�" + wrkNo + "," + inSta.getBackSta());
+ break;//瓒呴檺鎵樼洏閫�鍥炰笉鐢熸垚宸ヤ綔妗�
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
@@ -204,44 +205,25 @@
staProtocol.setWorkNo(wrkNo);
News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
- wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+ log.error("杈撻�佺嚎涓嬪彂锛堟壂鐮佸叏鏉块��鍥烇級锛�" + wrkNo + "," + inSta.getBackSta());
continue;
}
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
if (wrkMast != null) {
-// int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
-// if (wrkNo1 != 0){
-// if (ledThread != null) {
-// News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
-// }
-//
-// }
News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
continue;
-// barcodeThread.setBarcode("");
-// staProtocol.setWorkNo(wrkMast.getWrkNo());
-// staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
-//
-// ledThread.errorReset();
-// log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-//
-// if (!result) {
-// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-// log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-//// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// continue;
-// }
-
}
WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
.eq("barcode", barcode)
@@ -275,7 +257,7 @@
staProtocol.setStaNo(dto.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+ log.error("杈撻�佺嚎涓嬪彂锛堝叏鏉匡級锛�" + dto.getWorkNo() + "," + dto.getStaNo());
ledThread.errorReset();
log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
@@ -287,43 +269,19 @@
}
} else {
if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
-
- //宸ヤ綔妗e凡瀛樺湪 鍐嶆杩涘幓
-// wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
-// if (wrkMast != null) {
-// barcodeThread.setBarcode("");
-// staProtocol.setWorkNo(9999);
-// //staProtocol.setWorkNo(wrkMast.getWrkNo());
-// //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
-// staProtocol.setStaNo(inSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂2锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
-// ledThread.errorReset();
-// log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-// if (!result) {
-// News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-//
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// }
-// }
-
continue;
}
staProtocol.setWorkNo(wrkNo);
- wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+ log.error("杈撻�佺嚎涓嬪彂锛堝叏鏉块��鍥烇級锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
-// if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
if (!Cools.isEmpty(errorMsg)) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
-// }
-// News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+ News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
}
@@ -359,7 +317,7 @@
staProtocol = staProtocol.clone();
}
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+ // 鍏ュ嚭搴撴ā寮忓垽鏂�
if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
continue;
}
@@ -416,11 +374,11 @@
// 閬嶅巻鎷f枡鍏ュ簱鍙�
for (DevpSlave.Sta pickSta : devp.getPickSta()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
-// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-// if (barcodeThread == null) {
-// continue;
-// }
-// String barcode = barcodeThread.getBarcode();
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
// 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -431,66 +389,61 @@
continue;
}
// 灏哄妫�娴嬪紓甯�
-// boolean back = false;
-// String errMsg = "";
-// if (!back && staProtocol.isFrontErr()) {
-// errMsg = "鍓嶈秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isBackErr()) {
-// errMsg = "鍚庤秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isHighErr()) {
-// errMsg = "楂樿秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isLeftErr()) {
-// errMsg = "宸﹁秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isRightErr()) {
-// errMsg = "鍙宠秴闄�";
-// back = true;
-// }
-// if (!back && staProtocol.isWeightErr()) {
-// errMsg = "瓒呴噸";
-// back = true;
-// }
-// if (!back && staProtocol.isBarcodeErr()) {
-// errMsg = "鎵爜澶辫触";
-// back = true;
-// }
-// if(staProtocol.getSiteId() > 400){
-// back = false;
-// }
+ boolean back = false;
+ String errMsg = "";
+ if (!back && staProtocol.isFrontErr()) {
+ errMsg = "鍓嶈秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isBackErr()) {
+ errMsg = "鍚庤秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isHighErr()) {
+ errMsg = "楂樿秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isLeftErr()) {
+ errMsg = "宸﹁秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isRightErr()) {
+ errMsg = "鍙宠秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isWeightErr()) {
+ errMsg = "瓒呴噸";
+ back = true;
+ }
+ if (!back && staProtocol.isBarcodeErr()) {
+ errMsg = "鎵爜澶辫触";
+ back = true;
+ }
// 閫�鍥�
-// if (back) {
-// log.info("errmsg: " + errMsg);
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
-// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-// if (!staProtocol.isLoading()) {
-// continue;
-// }
-// if (!staProtocol.isPakMk()) {
-// continue;
-// }
-// staProtocol.setWorkNo(wrkNo);
-// News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
-// wrkNo++;
-// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
-// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-//
-// // led 寮傚父鏄剧ず
-// if (ledThread != null) {
-// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-// }
-// continue;
-// }
+ if (back) {
+ log.info("errmsg: " + errMsg);
+ News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", pickSta.getStaNo(), errMsg);
+ MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+ if (!staProtocol.isLoading()) {
+ continue;
+ }
+ if (!staProtocol.isPakMk()) {
+ continue;
+ }
+ staProtocol.setWorkNo(wrkNo);
+ News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
+ staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+ }
+ continue;
+ }
// if(staProtocol.getSiteId() < 400){
// if (!Cools.isEmpty(barcode)) {
// News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
@@ -525,11 +478,7 @@
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
-// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
-// if(staProtocol.getSiteId() > 400){
-// wrkMast = wrkMastMapper.selectPickStep3(staProtocol.getWorkNo());
-// }
+ WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
@@ -539,16 +488,6 @@
|| Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
continue;
}
-
- // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-// int stnNo = 0;
-// if (wrkMast.getStaNo() == 109) {
-// stnNo = 127;
-// } else if (wrkMast.getStaNo() == 113) {
-// stnNo = 128;
-// } else {
-// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-// }
// 鑾峰彇鐩爣绔�
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", wrkMast.getIoType() - 50)
@@ -556,12 +495,12 @@
.eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
-// News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-// staProtocol.setWorkNo(wrkNo++);
-// staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
+ News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+ staProtocol.setWorkNo(wrkNo);
+ staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂锛堢洏鐐广�佹嫞鏂欍�佸苟鏉块��鍥烇級锛�" + wrkNo + "," + pickSta.getBackSta());
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -614,12 +553,10 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
-// if(staProtocol.getSiteId() < 400){
- staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
-// }
+ staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂5锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
+ log.error("杈撻�佺嚎涓嬪彂锛堢洏鐐广�佹嫞鏂欍�佸苟鏉匡級锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
if (!result) {
News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
@@ -901,6 +838,9 @@
*/
public synchronized void crnIoExecute(Integer mark) {
+ /*鍫嗗灈鏈哄叆鍑哄簱浠诲姟涓嬪彂鎺у埗鍙傛暟*/
+ Integer ioControl=configService.selectCrnIo();
+
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -924,25 +864,68 @@
&& crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
- if (crnProtocol.getLastIo().equals("I")) {
- if (basCrnp.getInEnable().equals("Y")) {
+// if (crnProtocol.getLastIo().equals("I")) {
+// if (basCrnp.getInEnable().equals("Y")) {
+// //mark - 1 - ....
+// this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+// crnProtocol.setLastIo("O");
+// } else if (basCrnp.getOutEnable().equals("Y")) {
+// //mark - 2 - ....
+// this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+// crnProtocol.setLastIo("I");
+// }
+// }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+// else if (crnProtocol.getLastIo().equals("O")) {
+// if (basCrnp.getOutEnable().equals("Y")) {
+// this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+// crnProtocol.setLastIo("I");
+// } else if (basCrnp.getInEnable().equals("Y")) {
+// this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+// crnProtocol.setLastIo("O");
+// }
+// }
+ if (ioControl==1){
+ //鍏ュ簱浼樺厛 鍏堟墽琛屽叆搴撳啀鎵ц鍑哄簱
+ Integer inCount=wrkMastService.selectIn();
+ if (inCount == 0 && basCrnp.getOutEnable().equals("Y")){
+ this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+ }
+ if (basCrnp.getInEnable().equals("Y")){
+ this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+ }
+ }else if (ioControl==2){
+ //鍑哄簱浼樺厛 鍏堟墽琛屽嚭搴撳啀鎵ц鍏ュ簱
+ Integer outCount=wrkMastService.selectOut();
+ if (outCount==0 && basCrnp.getInEnable().equals("Y")){
+ this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
+ }
+ if (basCrnp.getOutEnable().equals("Y")){
+ this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
+ }
+ }else if(ioControl==3){
+ //鍏ュ嚭搴撲氦鏇挎墽琛� 涓嶅仛闄愬埗
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (crnProtocol.getLastIo().equals("I")) {
+ if (basCrnp.getInEnable().equals("Y")) {
//mark - 1 - ....
this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
crnProtocol.setLastIo("O");
- } else if (basCrnp.getOutEnable().equals("Y")) {
+ } else if (basCrnp.getOutEnable().equals("Y")) {
//mark - 2 - ....
this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
crnProtocol.setLastIo("I");
+ }
}
- }
- // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
- else if (crnProtocol.getLastIo().equals("O")) {
- if (basCrnp.getOutEnable().equals("Y")) {
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (crnProtocol.getLastIo().equals("O")) {
+ if (basCrnp.getOutEnable().equals("Y")) {
this.locToCrnStn(crn, crnProtocol, mark); // 鍑哄簱
crnProtocol.setLastIo("I");
- } else if (basCrnp.getInEnable().equals("Y")) {
+ } else if (basCrnp.getInEnable().equals("Y")) {
this.crnStnToLoc(crn, crnProtocol, mark); // 鍏ュ簱
crnProtocol.setLastIo("O");
+ }
}
}
}
@@ -952,7 +935,7 @@
// this.crnRebackHp(crnProtocol, crnThread);
}
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
+ News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
}
/**
@@ -1198,28 +1181,28 @@
} else {
staProtocol = staProtocol.clone();
}
- StaProtocol staProtocol1 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 1):devpThread.getStation().get(crnStn.getStaNo() - 1);
+// StaProtocol staProtocol1 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 1):devpThread.getStation().get(crnStn.getStaNo() - 1);
// StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() - 1);
// StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() + 1);
- if (staProtocol1 == null) {
- News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
- break;
- } else {
- staProtocol1 = staProtocol1.clone();
- }
- StaProtocol staProtocol2 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 2):devpThread.getStation().get(crnStn.getStaNo());
+// if (staProtocol1 == null) {
+// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+// break;
+// } else {
+// staProtocol1 = staProtocol1.clone();
+// }
+// StaProtocol staProtocol2 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 2):devpThread.getStation().get(crnStn.getStaNo());
// StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() - 2);
// StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() + 2);
- if (staProtocol2 == null) {
- News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
- break;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
+// if (staProtocol2 == null) {
+// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+// break;
+// } else {
+// staProtocol2 = staProtocol2.clone();
+// }
//鍑哄叆鍙h緭閫佺嚎鍙厑璁稿瓨鍦ㄤ竴涓墭鐩�
- if(staProtocol.isLoading() || staProtocol1.isLoading() || staProtocol2.isLoading() || staProtocol.getWorkNo() != 0 || staProtocol1.getWorkNo() != 0 || staProtocol2.getWorkNo() != 0) {
- break;
- }
+// if(staProtocol.isLoading() || staProtocol1.isLoading() || staProtocol2.isLoading() || staProtocol.getWorkNo() != 0 || staProtocol1.getWorkNo() != 0 || staProtocol2.getWorkNo() != 0) {
+// break;
+// }
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
@@ -1578,7 +1561,7 @@
}
-// News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
+ News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
}
/**
@@ -1700,7 +1683,7 @@
}
}
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
+ News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄紓甯镐俊鎭褰曟墽琛屽畬鎴�");
}
@@ -1765,7 +1748,7 @@
//staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂6锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
+ log.error("杈撻�佺嚎涓嬪彂锛堢┖鏉匡級锛�" + dto.getWorkNo() + "," + staProtocol.getSiteId());
if (!result) {
News.errorNoLog("" + mark + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -1858,6 +1841,9 @@
case 53:
ledCommand.setTitle("鎷f枡鍐嶅叆搴�");
break;
+ case 54:
+ ledCommand.setTitle("骞舵澘鍐嶅叆搴�");
+ break;
case 57:
ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
break;
@@ -1896,13 +1882,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() == 107) {
+ if (wrkMast.getIoType() == 107||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));
}
});
@@ -2206,7 +2192,7 @@
}
LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
- LocMast loc = locMastService.queryDemoLoc(crn.getId());
+ LocMast loc = locMastService.queryDemoLoc(crn.getId(),sourceLoc.getLocType2().toString());
if (null == sourceLoc || null == loc) {
continue;
}
@@ -3218,14 +3204,7 @@
}
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-
-// if ((crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4) && crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) {
-// continue;
-// }
-// if ((crnProtocol.getCrnNo()==1 || crnProtocol.getCrnNo()==2) && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
-// continue;
-// }
- if (crnProtocol.getCrnNo()==1 && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
+ if (crnProtocol.getBay()==0 && 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));
@@ -3270,12 +3249,12 @@
// crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
crnCommand.setTaskMode(CrnTaskModeType.X_MOVE);//浣欏閿愰簰鍥炲師鐐逛换鍔℃ā寮�: 绔欎綅杞Щ
crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- crnCommand.setCommand((short) 1);
+ crnCommand.setCommand((short) 1);//浠诲姟纭浣�
// }
if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
--
Gitblit v1.9.1