From 5b1a1d32abc8441bf73b7e2dc609def87e5a580a Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 05 二月 2026 08:57:36 +0800
Subject: [PATCH] 删除不用的方法
---
src/main/java/com/zy/service/impl/MainServiceImpl.java | 333 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 218 insertions(+), 115 deletions(-)
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index f1f75ca..dea54f0 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -27,9 +27,13 @@
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
+import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.protocol.RgvProtocol;
import com.zy.entity.*;
import com.zy.mapper.*;
+import com.zy.mapper.BasRgvErrMapper;
import com.zy.service.*;
import com.zy.utils.*;
import lombok.extern.slf4j.Slf4j;
@@ -50,6 +54,7 @@
*/
@Slf4j
@Service("mainService")
+@Transactional
public class MainServiceImpl {
@Autowired
@@ -93,6 +98,9 @@
@Resource
private BasDevpErrLogService basDevpErrLogService;
+ @Autowired
+ private BasRgvErrMapper basRgvErrMapper;
+
@Value("${wms.url}")
private String wmsUrl;
@@ -105,7 +113,6 @@
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
*/
- @Transactional(rollbackFor = Exception.class)
public synchronized void generateStoreWrkFile() {
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
@@ -161,13 +168,12 @@
// 閫�鍥�
if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk() && !staProtocol.isEmptyMk() ) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+ News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, staProtocol.getWorkNo());
+ staProtocol.setWorkNo(9999);
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("杈撻�佺嚎涓嬪彂1锛�"+staProtocol.getWorkNo()+","+inSta.getBackSta());
return;
}
@@ -222,23 +228,12 @@
ledThread.errorReset();
}
} else {
- // WMS杩斿洖閿欒鏃讹紝鍏堟鏌ユ槸鍚︽槸鎷f枡鍏ュ簱锛屽鏋滄槸鍒欒烦杩囧洖閫�锛岃鎷f枡鍏ュ簱娴佺▼澶勭悊
- WrkMast pickWrkMast = wrkMastMapper.selectPickStep(barcode);
- if (pickWrkMast != null) {
- // 鏄嫞鏂欏叆搴擄紝璺宠繃鍥為��锛岃鎷f枡鍏ュ簱娴佺▼澶勭悊
- News.info("鏉$爜{}鏄嫞鏂欏叆搴擄紙宸ヤ綔鍙凤細{}锛屽伐浣滅姸鎬侊細{}锛屽叆鍑哄簱绫诲瀷锛歿}锛夛紝璺宠繃鏅�氬叆搴撳洖閫�锛屼氦鐢辨嫞鏂欏叆搴撴祦绋嬪鐞�",
- barcode, pickWrkMast.getWrkNo(), pickWrkMast.getWrkSts(), pickWrkMast.getIoType());
- continue;
- }
-
- // 涓嶆槸鎷f枡鍏ュ簱锛屾墽琛屽洖閫�
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
String errorMsg = jsonObject.getString("msg");
- log.error("鍏ㄧ増鍏ュ簱鍥為��,"+wrkNo+","+errorMsg);
+ log.error("鍏ㄧ増鍏ュ簱鍥為��,"+staProtocol.getWorkNo()+","+errorMsg);
if (!Cools.isEmpty(errorMsg)) {
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
@@ -259,7 +254,6 @@
/**
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
*/
- @Transactional(rollbackFor = Exception.class)
public synchronized void stnToCrnStnPick(Integer mark) {
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -287,52 +281,31 @@
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() //鑷姩
- && staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆
- && staProtocol.isPakMk() //閿佸畾鏍囪
-// && staProtocol.getWorkNo() == 9999
-
- ) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
continue;
}
- // 鍒ゆ柇宸ヤ綔妗g被鍨嬶細鏈浆鎹㈢姸鎬�(103/104/107)鎴栧凡杞崲鐘舵��(53/54/57)
- boolean isValidIoType = (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 104 || wrkMast.getIoType() == 107)
- || (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 57);
- if (!isValidIoType || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
+ if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
+ || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
continue;
}
- // 鍒ゆ柇宸ヤ綔妗f槸鍚﹀凡杞崲锛氬凡杞崲鐘舵��(53/54/57)鎴栨湭杞崲鐘舵��(103/104/107)
- boolean isConverted = (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 57);
-
- // 瀵逛簬宸茶浆鎹㈢姸鎬佺殑宸ヤ綔妗o紝妫�鏌ユ槸鍚﹀凡缁忎笅鍙戣繃锛堥伩鍏嶉噸澶嶅鐞嗭級
- if (isConverted && staProtocol.getWorkNo() != null && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())) {
- // 宸ヤ綔鍙峰凡鍖归厤锛岃鏄庡凡缁忎笅鍙戣繃锛岃烦杩�
- News.info("鎷f枡鍏ュ簱宸ヤ綔妗}宸蹭笅鍙戯紝璺宠繃閲嶅澶勭悊", wrkMast.getWrkNo());
- continue;
- }
-
- Integer typeNo = isConverted ? wrkMast.getIoType() : (wrkMast.getIoType() - 50);
-
// 鑾峰彇鐩爣绔�
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", typeNo)
+ .eq("type_no", wrkMast.getIoType() - 50)
.eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
.eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
- News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", typeNo, pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+ staProtocol.setWorkNo(9999);
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锛�"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1));
+ log.error("杈撻�佺嚎涓嬪彂4锛�"+staProtocol.getWorkNo()+","+(pickSta.getStaNo().shortValue()-(short)1));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -343,9 +316,6 @@
continue;
}
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
- Integer staNo = staDesc.getCrnStn();
-
try {
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
@@ -357,32 +327,28 @@
}
Date now = new Date();
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
// 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
wrkMast.setIoTime(now);
- // 濡傛灉鏈浆鎹紝鍒欒浆鎹负鍏ュ簱绫诲瀷锛涘鏋滃凡杞崲锛屽垯淇濇寔涓嶅彉
- if (!isConverted) {
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
- wrkMast.setStaNo(staNo); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- }
- // 瀵逛簬宸茶浆鎹㈢姸鎬侊紝鍙洿鏂版椂闂达紝涓嶄慨鏀瑰叾浠栧瓧娈碉紙閬垮厤瑕嗙洊宸叉湁淇℃伅锛�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
}
// 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴擄紙濡傛灉搴撲綅鐘舵�佷笉鏄疩锛�
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- if (locMast != null && !"Q".equals(locMast.getLocSts())) {
- locMast.setLocSts("Q");
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
}
} catch (Exception e) {
e.printStackTrace();
@@ -390,14 +356,12 @@
continue;
}
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护锛堝弬鑰冨叏鐗堝叆搴撶殑鏂瑰紡锛�
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
- // 瀵逛簬宸茶浆鎹㈢姸鎬侊紝浣跨敤宸ヤ綔妗d腑宸叉湁鐨勭洰鏍囩珯锛涘浜庢湭杞崲鐘舵�侊紝浣跨敤鏂拌绠楃殑鐩爣绔�
- Integer targetStaNo = isConverted ? wrkMast.getStaNo() : staNo;
- staProtocol.setStaNo(targetStaNo.shortValue()); // 鐩爣绔欙細鍫嗗灈鏈虹珯鐐瑰彿
+ staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+targetStaNo);
+ log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
if (!result) {
News.error(""+mark+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
@@ -499,11 +463,6 @@
continue;
}
-// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
-// if(crnThread.isBackHpFlag()){
-// continue;
-// }
-
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
&& crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
@@ -534,10 +493,8 @@
// 搴撲綅绉昏浆
//mark - 3 - ....
this.locToLoc(crn, crnProtocol,mark);
-// this.crnRebackHp(crnProtocol, crnThread);
}
-// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
}
/**
@@ -626,8 +583,7 @@
News.warnNoLog(""+mark+" - 1"+" - 12"+" - // F銆丏 搴撲綅鐘舵��={}",shallowLoc.getLocSts());
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-
- if (moveLocForDeepLoc(slave, shallowLoc,mark)){
+ if ( moveLocForDeepLoc(slave, shallowLoc,mark)){
wrkMast.setUpdMk("Y");
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
@@ -945,16 +901,9 @@
continue;
}
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
- // 鏀寔鏅�氬叆搴�(io_type=1/10)鍜屾嫞鏂欏叆搴�(io_type=53/54/57)鐨勭姸鎬�3瀹屾垚纭
- // 鏀寔搴撲綅绉昏浆(io_type=11)鐨勭姸鎬�12瀹屾垚纭
- boolean canFinish = (wrkMast.getWrkSts() == 3) || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11);
- if (canFinish) {
- News.info(""+mark+" - 1"+" - 鍏ュ簱浠诲姟瀹屾垚纭锛氬伐浣滃彿={}锛屽伐浣滅姸鎬�={}锛屽叆鍑哄簱绫诲瀷={}锛屽崟鎹紪鍙�={}锛屾墭鐩樼爜={}",
- wrkMast.getWrkNo(), wrkMast.getWrkSts(), wrkMast.getIoType(), wrkMast.getSheetNo(), wrkMast.getBarcode());
+ if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
wrkMast.setWrkSts(4L);
} else {
- News.warn(""+mark+" - 1"+" - 鍏ュ簱浠诲姟鐘舵�佷笉绗﹀悎瀹屾垚鏉′欢锛氬伐浣滃彿={}锛屽伐浣滅姸鎬�={}锛屽叆鍑哄簱绫诲瀷={}锛屽崟鎹紪鍙�={}锛岃烦杩�",
- wrkMast.getWrkNo(), wrkMast.getWrkSts(), wrkMast.getIoType(), wrkMast.getSheetNo());
continue;
}
Date now = new Date();
@@ -965,13 +914,6 @@
// 鍫嗗灈鏈哄浣�
News.warnNoLog(""+mark+" - 2"+" - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}",crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
-
- // 瀵逛簬鎷f枡鍏ュ簱锛坕o_type=53/54/57锛夛紝璁板綍瀹屾垚淇℃伅锛屾柟渚縒MS绯荤粺鏌ヨ璁㈠崟鐘舵��
- if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 57) {
- News.info(""+mark+" - 2"+" - 銆愭嫞鏂欏叆搴撳畬鎴愩�戝伐浣滃彿={}锛屽叆鍑哄簱绫诲瀷={}锛屽伐浣滅姸鎬�={}锛屽崟鎹紪鍙�={}锛屾墭鐩樼爜={}锛屽簱浣嶅彿={}锛屽畬鎴愭椂闂�={}",
- wrkMast.getWrkNo(), wrkMast.getIoType(), wrkMast.getWrkSts(),
- wrkMast.getSheetNo(), wrkMast.getBarcode(), wrkMast.getLocNo(), now);
- }
}
}
@@ -1101,12 +1043,17 @@
/**
* 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
*/
- @Transactional(rollbackFor = Exception.class)
public synchronized void storeEmptyPlt(Integer mark) {
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = null;
+ if (!Cools.isEmpty(emptyInSta.getBarcode())) {
+ barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode());
+ }
+
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
@@ -1125,6 +1072,16 @@
continue;
}
+ // 妫�鏌ユ潯鐮佹壂鎻忥細濡傛灉鎵弿鍒版潯鐮侊紝鍒欏瓨鍏ワ紝鎵弿涓嶅埌锛屽垯涓嶅瓨
+ String barcode = null;
+ if (barcodeThread != null) {
+ barcode = barcodeThread.getBarcode();
+ // 濡傛灉鏉$爜涓虹┖銆丯G銆丯oRead鎴�00000000
+ if (Cools.isEmpty(barcode) || barcode.endsWith("NG") || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+ barcode=null;
+ }
+ }
+
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() //鑷姩
&& staProtocol.isLoading() //鏈夌墿
@@ -1133,7 +1090,66 @@
&& staProtocol.isPakMk() //闃叉閲嶅涓嬪彂淇″彿 绔欑偣鏃犵墿 鏃犱换鍔″彿浼氳嚜鍔ㄥ彉鎴恡rue
) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ WrkMast wrkMast = null;
+ if (!Cools.isEmpty(barcode)) {
+ // 鏈夋潯鐮佹椂锛屾鏌ユ槸鍚︽湁鐩稿悓绔欑偣鍜屾潯鐮佺殑绌烘澘鍏ュ簱宸ヤ綔妗�
+ wrkMast = wrkMastMapper.selectPakInStep1(emptyInSta.getStaNo(), barcode);
+ } else {
+ // 鏃犳潯鐮佹椂锛屾鏌ユ槸鍚︽湁鐩稿悓绔欑偣涓斿伐浣滅姸鎬佷负2鐨勭┖鏉垮叆搴撳伐浣滄。
+ wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_sta_no", emptyInSta.getStaNo())
+ .eq("wrk_sts", 2)
+ .eq("io_type", 10));
+ }
+ if (wrkMast != null) {
+ News.info("{}绌烘澘鍏ュ簱閲嶅宸ヤ綔妗f鏌ワ細宸插瓨鍦ㄥ伐浣滄。锛屽伐浣滃彿锛歿}锛屾潯鐮侊細{}", emptyInSta.getStaNo(), wrkMast.getWrkNo(), barcode);
+ continue;
+ }
+
+ // 灏哄妫�娴嬪紓甯革紙澶嶅埢generateStoreWrkFile鐨勯�昏緫锛屼絾涓嶅寘鎷壂鐮佸け璐ワ級
+ boolean back = false;
+ String errMsg = "";
+ if (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;
+ }
+ // 閫�鍥烇紙绌烘墭鍏ュ簱鐨勬潯浠舵槸isEmptyMk涓簍rue锛�
+ if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.isEmptyMk()) {
+ Integer ledId = emptyInSta.getLed();
+ if (ledId != null) {
+ MessageQueue.offer(SlaveType.Led, ledId, new Task(3, errMsg));
+ }
+ News.info("{}绌烘澘鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", emptyInSta.getStaNo(), errMsg, staProtocol.getWorkNo());
+ staProtocol.setWorkNo(9999);
+ staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂1锛堢┖鏉匡級锛�"+staProtocol.getWorkNo()+","+emptyInSta.getBackSta());
+ continue;
+ }
+
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐э紝鏉$爜锛歿}", barcode);
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -1142,6 +1158,7 @@
param.setIoType(10);
param.setSourceStaNo(emptyInSta.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
+ param.setBarcode(barcode); // 璁剧疆鎵弿鍒扮殑鏉$爜
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/pakin/loc/v1")
@@ -1151,6 +1168,11 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ // 娓呯┖鏉$爜
+ if (barcodeThread != null) {
+ barcodeThread.setBarcode("");
+ }
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
@@ -1175,26 +1197,25 @@
ledCommand.setStaNo(dto.getStaNo());
commands.add(ledCommand);
MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(1, commands));
-// ledThread.errorReset();
+ }
+ // 鎴愬姛鏃堕噸缃甃ED閿欒
+ if (ledThread != null) {
+ ledThread.errorReset();
}
} else {
- staProtocol.setWorkNo(wrkNo);
- wrkNo++;
+ String errorMsg = jsonObject.getString("msg");
+ // 濡傛灉浠诲姟鍥為��锛屽苟涓旂珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝鍒欎笉瑙﹀彂鍥為��
+ if (!staProtocol.isAutoing()) {
+ log.error("绌烘澘鍏ュ簱鍥為��,"+staProtocol.getWorkNo()+","+errorMsg+"锛岀珯鐐逛笉鏄嚜鍔ㄧ姸鎬侊紝涓嶈Е鍙戝洖閫�");
+ continue;
+ }
+ staProtocol.setWorkNo(9999);
staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- String errorMsg = jsonObject.getString("msg");
- log.error("绌烘澘鍏ュ簱鍥為��"+wrkNo+","+errorMsg);
- if (!result) {
- News.errorNoLog(""+mark+" - 2"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
-
- if (ledThread != null) {
-
- if (!Cools.isEmpty(errorMsg)) {
- MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg));
- }
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("绌烘澘鍏ュ簱鍥為��,"+staProtocol.getWorkNo()+","+errorMsg);
+ if (!Cools.isEmpty(errorMsg)) {
+ MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg));
}
// News.error(""+mark+" - 3"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
}
@@ -1267,6 +1288,31 @@
);
if (!basDevpErrLogService.insert(basErrLog)) {
News.error("杈撻�佺嚎寮傚父淇℃伅鎻掑叆琛╝sr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+ }
+
+ // 杈撻�佺嚎鎶ヨ鏃舵墭鐩橀��鍥�
+ if (staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk() && !staProtocol.isEmptyMk()) {
+ Integer backSta = findBackSta(devp, siteNo);
+ if (backSta != null) {
+ log.info("銆愯緭閫佺嚎鎶ヨ閫�鍥炪�戠珯鐐癸細{}锛屽伐浣滃彿锛歿}锛屾姤璀︼細{}锛岄��鍥炵珯锛歿}", siteNo, workNo, plcErr, backSta);
+ // 鎺ㄩ�佸埌LED鏄剧ず鎶ヨ淇℃伅
+ Integer ledId = findLedId(devp, siteNo);
+ if (ledId != null) {
+ MessageQueue.offer(SlaveType.Led, ledId, new Task(3, plcErr));
+ }
+ // 璁剧疆閫�鍥炵珯
+ staProtocol.setWorkNo(9999);
+ staProtocol.setStaNo(backSta.shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ News.error("杈撻�佺嚎鎶ヨ閫�鍥炲け璐ワ紝绔欑偣锛歿}锛屽伐浣滃彿锛歿}", siteNo, workNo);
+ } else {
+ log.info("銆愯緭閫佺嚎鎶ヨ閫�鍥炪�戞垚鍔熶笅鍙戦��鍥炴寚浠わ紝绔欑偣锛歿}锛屽伐浣滃彿锛歿}锛岄��鍥炵珯锛歿}", siteNo, workNo, backSta);
+ }
+ } else {
+ log.warn("銆愯緭閫佺嚎鎶ヨ閫�鍥炪�戞湭鎵惧埌閫�鍥炵珯閰嶇疆锛岀珯鐐癸細{}锛屽伐浣滃彿锛歿}", siteNo, workNo);
+ }
}
}
} else {
@@ -1381,9 +1427,58 @@
}
/**
+ * 鏍规嵁绔欑偣鍙锋煡鎵鹃��鍥炵珯
+ */
+ private Integer findBackSta(DevpSlave devp, Integer siteNo) {
+ // 鏌ユ壘鍏ュ簱绔�
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ if (inSta.getStaNo().equals(siteNo)) {
+ return inSta.getBackSta();
+ }
+ }
+ // 鏌ユ壘鎷f枡绔�
+ for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+ if (pickSta.getStaNo().equals(siteNo)) {
+ return pickSta.getBackSta();
+ }
+ }
+ // 鏌ユ壘绌烘澘鍏ュ簱绔�
+ for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+ if (emptyInSta.getStaNo().equals(siteNo)) {
+ return emptyInSta.getBackSta();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 鏍规嵁绔欑偣鍙锋煡鎵綥ED ID
+ */
+ private Integer findLedId(DevpSlave devp, Integer siteNo) {
+ // 鏌ユ壘鍏ュ簱绔�
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ if (inSta.getStaNo().equals(siteNo)) {
+ return inSta.getLed();
+ }
+ }
+ // 鏌ユ壘鎷f枡绔�
+ for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+ if (pickSta.getStaNo().equals(siteNo)) {
+ return pickSta.getLed();
+ }
+ }
+ // 鏌ユ壘绌烘澘鍏ュ簱绔�
+ for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+ if (emptyInSta.getStaNo().equals(siteNo)) {
+ return emptyInSta.getLed();
+ }
+ }
+ return null;
+ }
+
+ /**
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
- @Transactional(rollbackFor = Exception.class)
public synchronized void ledExecute() {
for (LedSlave led : slaveProperties.getLed()) {
// 鑾峰彇杈撻�佺嚎plc绾跨▼
@@ -1534,6 +1629,14 @@
}
}
+ /**
+ * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
+ * tip锛氬悓姝�
+ */
+ /**
+ * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
+ * tip锛氬悓姝�
+ */
private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
try {
--
Gitblit v1.9.1