From df2c9631337b19a6fe08d15203186b8c5393a808 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期一, 13 三月 2023 13:07:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 636 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 433 insertions(+), 203 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 9077584..6bee175 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -19,7 +19,6 @@
import com.zy.common.model.SearchLocParam;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.News;
import com.zy.core.CrnThread;
@@ -40,16 +39,14 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
+import net.bytebuddy.asm.Advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -98,6 +95,8 @@
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
*/
public synchronized void generateStoreWrkFile() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
@@ -119,15 +118,15 @@
String barcode = barcodeThread.getBarcode();
//9998閫�鍥烇紝9996绌烘澘
if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
- News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ String errorMsg = "15绔欐壂鐮佸け璐ワ紝宸查��鍥�14绔�";
staProtocol.setWorkNo((short) 9998);
staProtocol.setStaNo((short) 14);
devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
// led 寮傚父鏄剧ず
if (ledThread != null) {
- String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+ News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
continue;
@@ -135,16 +134,6 @@
} else {
continue;
}
-
- // 鑾峰彇鍏ュ簱绔欎俊鎭�
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
-
- // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-// continue;
-// }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing()
@@ -170,7 +159,11 @@
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
if (wrkMast != null) {
- News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ News.error(methodName + ":宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ if (ledThread != null) {
+ News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={" + wrkMast.getWrkNo() + "}, 璇锋墜鍔ㄥ彇娑堝凡瀛樺湪宸ヤ綔妗�"));
+ }
continue;
}
@@ -206,22 +199,25 @@
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
+ News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
- String successMsg = "鍏ュ簱宸ヤ綔妗�--宸ヤ綔鍙�:" + dto.getWorkNo() + " 鐩爣搴撲綅:" + dto.getLocNo();
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, successMsg));
+
+
} else {
staProtocol.setWorkNo((short) 9998);
staProtocol.setStaNo((short) 14);
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
if (!Cools.isEmpty(errorMsg)) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
}
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽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);
}
@@ -301,6 +297,8 @@
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
*/
public synchronized void generateStoreWrkFile0() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
@@ -315,9 +313,9 @@
}
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
- if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
- continue;
- }
+// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
+// continue;
+// }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
@@ -341,10 +339,10 @@
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+ News.error(methodName + ":鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
}
} else {
- News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ News.error(methodName + ":鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
}
@@ -359,6 +357,8 @@
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
*/
public synchronized void stnToCrnStnPick() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
for (DevpSlave.Sta pickSta : devp.getPickSta()) {
@@ -380,7 +380,7 @@
String barcode = barcodeThread.getBarcode();
if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
- News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+ log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
staProtocol.setWorkNo((short) 9998);
staProtocol.setStaNo((short) 14);
@@ -389,6 +389,7 @@
// led 寮傚父鏄剧ず
if (ledThread != null) {
String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+ News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
}
continue;
@@ -436,17 +437,22 @@
.eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
- News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+ News.error(methodName + ":鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
continue;
}
try {
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+ News.error(methodName + ":淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
}
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+
if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+ News.error(methodName + "-1:" + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+
throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
}
@@ -463,6 +469,8 @@
wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.error(methodName + ":鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+
throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
}
// 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
@@ -472,6 +480,8 @@
locMast.setLocSts("Q");
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)) {
+ News.error(methodName + ":淇敼搴撲綅鐘舵�佸け璐�");
+
throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
}
} catch (Exception e) {
@@ -486,7 +496,9 @@
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
- News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ News.error(methodName + ":鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+
+ News.error(methodName + ":鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
}
@@ -500,6 +512,8 @@
* 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
*/
public synchronized void crnStnToOutStn() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
// 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
@@ -549,7 +563,7 @@
// 澶嶄綅鍫嗗灈鏈�
crnThread.setResetFlag(true);
} else {
- News.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ News.error(methodName + ":鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
}
}
@@ -563,6 +577,8 @@
* 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
*/
public synchronized void crnIoExecute() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -572,7 +588,7 @@
}
BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
if (basCrnp == null) {
- News.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ News.error(methodName + ":{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
continue;
}
@@ -673,8 +689,17 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
+ * 鏍规嵁鍏ュ簱鏃堕棿杩涜鎺掑簭鍏ュ簱
*/
public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+ List<WrkMast> wrkMasts= new ArrayList<>();
+ //鎸囬拡
+ int count=-1;
+ int i=0;
+
+ WrkMast wrkMast=null;
+ CrnSlave.CrnStn crnStn1=null;
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
boolean flag = false;
// 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
@@ -688,7 +713,138 @@
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.error(methodName + ":鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ continue;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ flag = true;
+ // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+ wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+ if (null == wrkMast) {
+// News.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+ continue;
+ }
+ //鎵撴搨鍙�
+ wrkMasts.add(wrkMast);
+ count++;
+ if(count==0) continue;
+ if(wrkMast.getWrkDate().getTime()<wrkMasts.get(i).getWrkDate().getTime())
+ i=count;
+ crnStn1=crnStn;
+ }
+ if (!flag) {
+ continue;
+ }
+ }
+ if(!Cools.isEmpty(wrkMasts)){
+ wrkMast=wrkMasts.get(i);
+ // 鑾峰彇搴撲綅淇℃伅
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ if (locMast != null) {
+ if (locMast.getLocSts().equals("S") && locMast.getLocSts().equals("Q")) {
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) == null) {
+ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+// if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null == waitWrkMast) {
+// News.error(methodName + ":{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+// } else {
+// waitWrkMast.setIoPri(15D);
+// waitWrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+// News.error(methodName + ":璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+// }
+// continue;
+// }
+//
+// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+// wrkMast.setUpdMk("Y");
+// wrkMast.setIoPri(14D);
+// wrkMastMapper.updateById(wrkMast);
+// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+// moveLocForDeepLoc(slave, shallowLoc);
+// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+//// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
+// }
+// continue;
+// } else if (shallowLoc.getLocSts().equals("Q")) {
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+// continue;
+// }
+// }
+// }
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(crnStn1.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn1.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn1.getLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ News.error(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+
+// long startTime = System.currentTimeMillis();
+// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
+//
+// if (true) {
+// break;
+// }
+//
+// try{
+// Thread.sleep(500);
+// }catch(Exception ignore){}
+// }
+
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(3L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.error(methodName + ":淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+ }else News.error(methodName + ":鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+ }else News.error(methodName + ":鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+ }
+ }
+
+ public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol) {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
+ for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+ boolean flag = false;
+ // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+ 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) {
+ News.error(methodName + ":鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
@@ -707,11 +863,11 @@
// 鑾峰彇搴撲綅淇℃伅
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (locMast == null) {
- News.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+ News.error(methodName + ":鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
continue;
}
if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
- News.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+ News.error(methodName + ":鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
continue;
}
@@ -733,12 +889,12 @@
if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null == waitWrkMast) {
- News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ News.error(methodName + ":{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
waitWrkMast.setIoPri(15D);
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ News.error(methodName + ":璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
continue;
}
@@ -776,7 +932,7 @@
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));
+ News.error(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// long startTime = System.currentTimeMillis();
@@ -797,7 +953,7 @@
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error(methodName + ":淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
}
@@ -808,23 +964,38 @@
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
- for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
- // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
- List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+ //鎸夌収宸ヤ綔妗e嚭搴�
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("crn_no", slave.getId())
+ .and()
+ .gt("io_type", 100)
+ .orderBy("appe_time")
+ );
+ if (!Cools.isEmpty(wrkMasts)) {
for (WrkMast wrkMast : wrkMasts) {
- if (wrkMast == null) {
+ CrnSlave.CrnStn crnStn = null;
+ for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()) {
+ if (crnStn1.getStaNo() == wrkMast.getSourceStaNo()) {
+ crnStn = crnStn1;
+ break;
+ } else {
+ continue;
+ }
+ }
+ if (Cools.isEmpty(crnStn)) {
continue;
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
- if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
- News.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+ if (wrkMast.getSourceStaNo() == null) {
+ log.error("鏌ヨ宸ヤ綔妗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("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ News.error(methodName + ":鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
continue;
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -839,14 +1010,14 @@
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
- if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
- continue;
- }
+// if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+// continue;
+// }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- News.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.error(methodName + ":鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
break;
// continue;
}
@@ -869,13 +1040,13 @@
if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null == waitWrkMast) {
- News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ News.error(methodName + ":{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
if (waitWrkMast.getWrkSts() == 11) {
waitWrkMast.setIoPri(15D);
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ News.error(methodName + ":璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
continue;
} else {
@@ -895,7 +1066,7 @@
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
moveLocForDeepLoc(slave, shallowLoc);
}
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+ News.error(methodName + ": {}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
continue;
} else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
@@ -924,7 +1095,7 @@
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ News.error(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -932,11 +1103,12 @@
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error(methodName + ":淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
break;
}
}
+
}
}
}
@@ -1062,6 +1234,8 @@
* 搴撲綅绉昏浆
*/
public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
// 鑾峰彇宸ヤ綔妗d俊鎭�
WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
if (null == wrkMast) {
@@ -1070,7 +1244,7 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (null == sourceSta) {
- News.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ News.error(methodName + "宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
return;
}
// 婧愬簱浣� 搴撲綅鐘舵�佸垽鏂�
@@ -1080,7 +1254,7 @@
// 鑾峰彇鐩爣搴撲綅淇℃伅
LocMast sta = locMastService.selectById(wrkMast.getLocNo());
if (null == sta) {
- News.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ News.error(methodName + ":宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
return;
}
// 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
@@ -1102,13 +1276,13 @@
if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null == waitWrkMast) {
- News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ News.error(methodName + ":{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
if (waitWrkMast.getWrkSts() == 11) {
waitWrkMast.setIoPri(15D);
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ News.error(methodName + ":璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
return;
} else {
@@ -1128,7 +1302,7 @@
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
moveLocForDeepLoc(slave, shallowLoc);
}
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+ News.error(methodName + ":{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
return;
} else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
@@ -1156,7 +1330,7 @@
crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ News.error(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -1164,7 +1338,7 @@
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error(methodName + ":銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
@@ -1174,6 +1348,8 @@
* 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
*/
public synchronized void storeFinished() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -1190,7 +1366,7 @@
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
if (wrkMast == null) {
- News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ News.error(methodName + ":鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
continue;
}
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
@@ -1217,6 +1393,8 @@
* 鍫嗗灈鏈哄紓甯镐俊鎭褰�
*/
public synchronized void recCrnErr() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
Date now = new Date();
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -1263,7 +1441,7 @@
"浠诲姟涓紓甯�" // 澶囨敞
);
if (!basErrLogService.insert(basErrLog)) {
- News.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+ News.error(methodName + ":鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
}
}
} else {
@@ -1273,7 +1451,7 @@
latest.setUpdateTime(now);
latest.setStatus(2);
if (!basErrLogService.updateById(latest)) {
- News.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+ News.error(methodName + ":鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
}
}
}
@@ -1310,7 +1488,7 @@
"鏃犱换鍔″紓甯�" // 澶囨敞
);
if (!basErrLogService.insert(basErrLog)) {
- News.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+ News.error(methodName + ":鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
}
}
// 鏃犲紓甯�
@@ -1321,7 +1499,7 @@
latest.setUpdateTime(now);
latest.setStatus(2);
if (!basErrLogService.updateById(latest)) {
- News.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+ News.error(methodName + ":鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
}
}
}
@@ -1338,6 +1516,8 @@
* 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
*/
public synchronized void storeEmptyPlt() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
@@ -1381,10 +1561,12 @@
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
+ News.error(methodName + "鏇存柊plc绔欑偣淇℃伅澶辫触");
+
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
} else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽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);
}
} catch (Exception e) {
e.printStackTrace();
@@ -1456,107 +1638,144 @@
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
public synchronized void ledExecute() {
+// String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
for (LedSlave led : slaveProperties.getLed()) {
// 鑾峰彇杈撻�佺嚎plc绾跨▼
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
- // 鍛戒护闆嗗悎
- List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
- List<WrkMast> wrkMasts = new ArrayList<>();
+// // 鍛戒护闆嗗悎
+// List<LedCommand> commands = new ArrayList<>();
+// // 宸ヤ綔妗i泦鍚�
+// List<WrkMast> wrkMasts = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+ MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, ""));
continue;
} else {
staProtocol = staProtocol.clone();
}
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
-// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
if (null == wrkMast) {
+ MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, ""));
continue;
}
- wrkMasts.add(wrkMast);
- // 缁勮鍛戒护
+ ArrayList<MatDto> matDtos = new ArrayList<>();
+ Wrapper<WrkDetl> detlWrapper = new EntityWrapper<WrkDetl>()
+ .eq("wrk_no", wrkMast.getWrkNo());
LedCommand ledCommand = new LedCommand();
ledCommand.setWorkNo(wrkMast.getWrkNo());
+ ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
+ ledCommand.setLocNo(wrkMast.getLocNo());
+ ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setIoType(wrkMast.getIoType());
- // 鍑哄簱妯″紡
+ ledCommand.setTitle(wrkMast.getIoType$());
+
switch (wrkMast.getIoType()) {
- case 1:
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- break;
case 10:
- ledCommand.setTitle("绌烘澘鍏ュ簱");
- break;
- case 101:
- ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
- break;
- case 103:
- ledCommand.setTitle("鎷f枡鍑哄簱");
- break;
- case 104:
- ledCommand.setTitle("骞舵澘鍑哄簱");
- break;
- case 107:
- ledCommand.setTitle("鐩樼偣鍑哄簱");
- break;
case 110:
- ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
break;
default:
- News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ ledCommand.setBarcode(wrkMast.getBarcode());
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(detlWrapper);
+ for (WrkDetl wrkDetl : wrkDetls) {
+ MatDto matDto = new MatDto();
+ matDto.setMaknx(wrkDetl.getMaktx());
+ matDto.setMatNo(wrkDetl.getMatnr());
+ matDto.setCount(wrkDetl.getAnfme());
+ matDtos.add(matDto);
+ }
break;
+
+
}
- ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
- ledCommand.setLocNo(wrkMast.getLocNo());
- ledCommand.setStaNo(wrkMast.getStaNo());
-// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
- if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
- List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
- }
- commands.add(ledCommand);
- }
- Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
- // 鑾峰彇LED绾跨▼
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
- // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
-// if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
-// continue;
+ ledCommand.setMatDtos(matDtos);
+ MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, ledCommand.toString()));
+
+// wrkMasts.add(wrkMast);
+// // 缁勮鍛戒护
+// LedCommand ledCommand = new LedCommand();
+// ledCommand.setWorkNo(wrkMast.getWrkNo());
+// ledCommand.setIoType(wrkMast.getIoType());
+// // 鍑哄簱妯″紡
+// switch (wrkMast.getIoType()) {
+// case -1:
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// break;
+// case 10:
+// ledCommand.setTitle("绌烘澘鍏ュ簱");
+// break;
+// case 10-1:
+// ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+// break;
+// case 103:
+// ledCommand.setTitle("鎷f枡鍑哄簱");
+// break;
+// case 104:
+// ledCommand.setTitle("骞舵澘鍑哄簱");
+// break;
+// case 107:
+// ledCommand.setTitle("鐩樼偣鍑哄簱");
+// break;
+// case 110:
+// ledCommand.setTitle("绌烘澘鍑哄簱");
+// ledCommand.setEmptyMk(true);
+// break;
+// default:
+// News.error(methodName + ":浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+// break;
+// }
+// ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+// ledCommand.setLocNo(wrkMast.getLocNo());
+// ledCommand.setStaNo(wrkMast.getStaNo());
+//// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
+// if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+// List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+// wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
+// }
+// commands.add(ledCommand);
// }
- // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
- if (!commands.isEmpty()) {
- String errMsg = "";
- if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
- News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
- continue;
- } else {
- ledThread.setLedMk(false);
- }
-
-
+// Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+// // 鑾峰彇LED绾跨▼
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+// // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
+//// if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
+//// continue;
+//// }
+// // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
+// if (!commands.isEmpty()) {
+// String errMsg = "";
+// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
+// News.error(methodName + ":{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// continue;
+// } else {
+// ledThread.setLedMk(false);
+// }
+//
+//
}
-
- try {
- // 淇敼涓绘。led鏍囪
- for (WrkMast wrkMast : wrkMasts) {
- wrkMast.setOveMk("Y");
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
- }
- }
-
- // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
- ledThread.setWorkNos(workNos);
-
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
+//
+// try {
+// // 淇敼涓绘。led鏍囪
+// for (WrkMast wrkMast : wrkMasts) {
+// wrkMast.setOveMk("Y");
+// wrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+// }
+// }
+//
+// // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
+// ledThread.setWorkNos(workNos);
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
}
}
@@ -1829,6 +2048,7 @@
* 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
*/
public synchronized void crnDemoOfLocMove1() {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
try {
for (CrnSlave crn : slaveProperties.getCrn()) {
if (!crn.getDemo()) {
@@ -1880,6 +2100,7 @@
wrkMast.setModiTime(new Date());
int res = wrkMastMapper.insert(wrkMast);
if (res == 0) {
+ News.error(methodName + ":淇濆瓨宸ヤ綔妗eけ璐�");
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 宸ヤ綔妗f槑缁嗕繚瀛�
@@ -1901,9 +2122,13 @@
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiTime(new Date());
if (!locMastService.updateById(sourceLoc)) {
+ News.error(methodName + ":鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
+ News.error(methodName + ":婧愬簱浣嶅嚭搴撳け璐�");
+
throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
}
// 淇敼鐩爣搴撲綅鐘舵��
@@ -1911,16 +2136,20 @@
loc.setLocSts("S"); // S.鍏ュ簱棰勭害
loc.setModiTime(new Date());
if (!locMastService.updateById(loc)) {
+ News.error(methodName + ":鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
}
} else {
+ News.error(methodName + ":绉昏浆澶辫触");
+
throw new CoolException("绉昏浆澶辫触");
}
}
}
} catch (Exception e) {
- News.error("鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e);
+ News.error(methodName + ":鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e);
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
@@ -1979,66 +2208,65 @@
/**
* 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
*/
- 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()) {
- if (inSta.getStaNo() == 2) {
- continue;
- }
- WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
- switch (inSta.getStaNo()) {
- case 203://1F
- 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;
- case 401://1F
- if (pakout != null) {
- if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
- // 鍑哄簱鍒囨崲涓�
- devpThread.ioModeOf4F = 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.ioModeOf4F = IoModeType.PAKOUT_MODE;
- }
- }
- } else {
- // 鍏ュ簱妯″紡
- devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
- }
- break;
- }
- }
-
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- }
-
+// 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()) {
+// if (inSta.getStaNo() == 2) {
+// continue;
+// }
+// WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
+// switch (inSta.getStaNo()) {
+// case 203://1F
+// 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;
+// case 401://1F
+// if (pakout != null) {
+// if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf4F = 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.ioModeOf4F = IoModeType.PAKOUT_MODE;
+// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// }
+// }
+//
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+//
+//
+// }
public synchronized void outOfDevp() {
List<WrkMast> wrkMasts = wrkMastMapper.selectPick();
for (WrkMast wrkMast : wrkMasts) {
@@ -2055,6 +2283,8 @@
public synchronized void autoEmptyOut() {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
Integer autoOutSite = 12;
//濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
StaProtocol staProtocol = devpThread.getStation().get(autoOutSite);
@@ -2083,7 +2313,7 @@
JSONObject data = (JSONObject) jsonObject.get("data");
News.info((String) data.get("msg"));
} else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response);
+ News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response);
}
} catch (Exception e) {
e.printStackTrace();
--
Gitblit v1.9.1