From 6fcad8a10aab91b9a0825b0465b7e21d37df2332 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期三, 22 十月 2025 11:53:13 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 616 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 441 insertions(+), 175 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 d770187..1a0084f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -107,6 +107,8 @@
private BasArmService basArmService;
@Autowired
private BasArmMastService basArmMastService;
+ @Autowired
+ private ApiLogService apiLogService;
@Value("${wms.url}")
private String wmsUrl;
@@ -116,7 +118,7 @@
@Value("${inventory.number}")
private Integer inventoryNumber;
- public Integer wrkNo = 10000;
+ public Integer wrkNo = 10001;
public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
/**
* 缁勬墭
@@ -137,6 +139,9 @@
continue;
} else {
staProtocol = staProtocol.clone();
+ }
+ if(!staProtocol.isLoading()){
+ continue;
}
if (barcodeThread == null) {
@@ -180,7 +185,7 @@
}
// 閫�鍥�
if (back) {
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+ News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
if (!staProtocol.isLoading()){
@@ -194,10 +199,11 @@
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
}
staProtocol.setWorkNo(wrkNo);
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+ News.info("寮傚父鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ staProtocol.setBarcode(barcode);
staProtocol.setPakMk(false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
System.out.println(staProtocol);
@@ -209,7 +215,9 @@
&& staProtocol.isLoading()
&& staProtocol.isInEnable()
&& !staProtocol.isEmptyMk()
- && staProtocol.isPakMk()) {
+ && staProtocol.isPakMk()
+ && staProtocol.getWorkNo() == 0
+ ) {
if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
// News.error(JSON.toJSONString(staProtocol));
News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
@@ -219,9 +227,10 @@
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
staProtocol.setWorkNo(wrkNo);
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+ News.info("鏉$爜鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ staProtocol.setBarcode(barcode);
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
@@ -248,9 +257,11 @@
if (wrkNo1 != 0){
News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
StaProtocol staProtocolNew = new StaProtocol();
- staProtocolNew.setWorkNo(wrkNo1);
+ staProtocolNew.setWorkNo(wrkMast.getWrkNo());
staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
staProtocolNew.setSiteId(staProtocol.getSiteId());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ staProtocolNew.setBarcode(barcode);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew));
if (ledThread != null) {
News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
@@ -261,6 +272,8 @@
barcodeThread.setBarcode("");
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
+ staProtocol.setBarcode(barcode);
+
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
@@ -271,10 +284,9 @@
if (!result) {
News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
-
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
continue;
}
+ continue;
}
WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
@@ -315,41 +327,14 @@
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
- }
-// else if (jsonObject.getInteger("code").equals(700)) {
-// SearchLocParam param2 = new SearchLocParam();
-// param2.setBarcode(barcode);
-// param2.setBarcodeMat(barcodeMat);
-// param2.setSourceStaNo(inSta.getStaNo());
-// param2.setLocType1(locTypeDto.getLocType1());
-// String response2 = new HttpHandler.Builder()
-// .setUri(wmsUrl)
-// .setPath("/rpc/pakin/yk/loc/v33")
-// .setJson(JSON.toJSONString(param2))
-// .build()
-// .doPost();
-// JSONObject jsonObject2 = JSON.parseObject(response2);
-// if (jsonObject2.getInteger("code").equals(200)) {
-// log.info("鑷姩缁勬墭鎴愬姛锛侊紒");
-// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "鑷姩缁勬墭鎴愬姛"));
-// } else {
-// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "鑷姩缁勬墭澶辫触锛侊紒锛乥arcodeMat==>"+barcodeMat));
-// News.error(methodName + "==>缁勬墭澶辫触:璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2);
-// }
-// try{
-// Thread.sleep(500);
-// } catch (Exception e){
-//
-// }
-// }
- else {
+ } else {
News.error(JSON.toJSONString(staProtocol));
staProtocol.setWorkNo(wrkNo);
- wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
+ News.info("浠诲姟涓嬪彂鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛岄敊璇紪鍙穥},浠诲姟鍙凤細{}", inSta.getStaNo(), errMsg,jsonObject.getInteger("code"),wrkNo);
+ wrkNo++;
// if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
if (!Cools.isEmpty(errorMsg)) {
@@ -762,6 +747,101 @@
staProtocol = staProtocol.clone();
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ WrkMast wrkMast9997 = wrkMastMapper.selectPakOutStep9997(staProtocol.getSiteId());
+ WrkMast wrkMast9996 = wrkMastMapper.selectPakOutStep9996(staProtocol.getSiteId());
+
+ if(crnSlave.getId() == 3 && wrkMast9997 != null){
+ WrkMast wrkMast107 = wrkMastMapper.selectPakOutStep107(wrkMast9997.getBarcode());
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast107.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast107.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+ log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast107.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast107.getStaNo(),wrkMast107.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+ continue;
+ }else {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast9997.setWrkSts(14L);
+ wrkMast9997.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast9997) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast9997.getWrkNo());
+ crnThread.setResetFlag(true);
+ } else {
+ News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast9997.getWrkNo());
+ }
+
+ }else {
+ News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+ +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
+ +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast9997.getWrkNo().shortValue()
+ +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+ +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+ }
+ }
+ if(crnSlave.getId() == 3 && wrkMast9996 != null){
+ WrkMast wrkMast107 = wrkMastMapper.selectPakOutStep107(wrkMast9996.getBarcode());
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast107.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast107.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+ log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast107.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast107.getStaNo(),wrkMast107.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+ continue;
+ }else {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast9996.setWrkSts(14L);
+ wrkMast9996.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast9996) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast9996.getWrkNo());
+ crnThread.setResetFlag(true);
+ } else {
+ News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast9996.getWrkNo());
+ }
+
+ }else {
+ News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+ +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
+ +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast9996.getWrkNo().shortValue()
+ +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+ +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+ }
+ }
// 鏌ヨ宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
if (wrkMast == null) {
@@ -834,7 +914,7 @@
} else {
staProtocolIn = staProtocolIn.clone();
}
- int[] outStaNos = {1015, 2016};
+ int[] outStaNos = {1015, 2016}; //琛旀帴鍏ュ簱鐐�
for (int outStaNo : outStaNos) {
StaProtocol staProtocolOut = devpThread.getStation().get(outStaNo);// 鐩樼偣鍑哄簱琛旀帴绔欑偣锛堝彲鑳芥槸 1015锛屼篃鍙兘鏄� 2016锛�
if (staProtocolOut == null) {
@@ -843,14 +923,17 @@
staProtocolOut = staProtocolOut.clone();
}
- if (staProtocolOut.getWorkNo() != null && staProtocolOut.getStaNo() == 4006) {
- WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
+ WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
+ if(wrkMastOut == null ){
+ continue;
+ }
+ if (staProtocolOut.getWorkNo() != null && wrkMastOut.getStaNo() == 4006) {
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9997);
if (wrkMastOut == null) {
continue;
}
if (wrkMast != null) {
- News.info("宸插瓨鍦ㄦ枩琛椾换鍔★紝绛夊緟浠诲姟瀹屾垚");
+// News.info("宸插瓨鍦ㄦ枩琛椾换鍔★紝绛夊緟浠诲姟瀹屾垚");
continue;
}
try {
@@ -1055,61 +1138,62 @@
} else {
staProtocol = staProtocol.clone();
}
-// if (slave.getId() == 3) {
-// SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-// StaProtocol staProtocol2 = devpThread1.getStation().get(4001);
-// if (staProtocol2 == null) {
-// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
-// break;
-// } else {
-// staProtocol2 = staProtocol2.clone();
-// }
-// WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9996);
-// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-// if (staDetl == null) {
-// News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-// break;
-//// continue;
-// }
-// if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){
-// // 鍫嗗灈鏈烘帶鍒惰繃婊�
-// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//// continue;
-// break;
-// }
-// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-// break;
-//// return;
-// }
-// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙�
-//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓
-// crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
-// crnCommand.setSourcePosZ((short) 4); // 婧愬簱浣嶅眰
-// crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
-// crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
-// crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
-//// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
-// if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) {
-// News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand));
-// } else {
-// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-// Date now = new Date();
-// wrkMast9999.setWrkSts(3L);
-// wrkMast9999.setCrnStrTime(now);
-// wrkMast9999.setModiTime(now);
-// if (wrkMastMapper.updateById(wrkMast9999) == 0) {
-// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
-// }
-// break;
-// }
-// }
-// }
+ WrkMast wrkMast9996 = wrkMastMapper.selectByWrkNo9996(9996);
+
+ if (slave.getId() == 3 && wrkMast9996 != null) {
+ SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol2 = devpThread1.getStation().get(4001);
+ if (staProtocol2 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+ break;
+ } else {
+ staProtocol2 = staProtocol2.clone();
+ }
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ if( staProtocol2.isAutoing() && staProtocol2.isLoading() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX((short) 9); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 3); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 9); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 2); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9996.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9996.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast9996.setWrkSts(3L);
+ wrkMast9996.setCrnStrTime(now);
+ wrkMast9996.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9996) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9996.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -1254,8 +1338,10 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
- if (slave.getId() == 3) {
- SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ WrkMast wrkMast9997 = wrkMastMapper.selectByWrkNo9997(9997);
+
+ if (slave.getId() == 3 && wrkMast9997 != null) {
+ SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol2 = devpThread1.getStation().get(1015);
if (staProtocol2 == null) {
News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
@@ -1263,14 +1349,21 @@
} else {
staProtocol2 = staProtocol2.clone();
}
- WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997);
+ SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol3 = devpThread2.getStation().get(2016);
+ if (staProtocol3 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+ break;
+ } else {
+ staProtocol3 = staProtocol3.clone();
+ }
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
break;
// continue;
}
- if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){
+ if(staProtocol2.isLoading() && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
// continue;
@@ -1287,23 +1380,61 @@
crnCommand.setTaskNo((short) 9997); // 宸ヤ綔鍙�
// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosX((short) 9); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 4); // 鐩爣搴撲綅灞�
+ crnCommand.setDestinationPosX((short) 11); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 3); // 鐩爣搴撲綅灞�
// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand));
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9997.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9997.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
- wrkMast9999.setWrkSts(12L);
- wrkMast9999.setCrnStrTime(now);
- wrkMast9999.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast9999) == 0) {
- News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
+ wrkMast9997.setWrkSts(12L);
+ wrkMast9997.setCrnStrTime(now);
+ wrkMast9997.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9997) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9997.getWrkNo());
+ }
+ break;
+ }
+ }
+ if(staProtocol3.isLoading() && staProtocol3.isAutoing()){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9997); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX((short) 11); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 2); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 11); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 3); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9997.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9997.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast9997.setWrkSts(12L);
+ wrkMast9997.setCrnStrTime(now);
+ wrkMast9997.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9997) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9997.getWrkNo());
}
break;
}
@@ -2569,18 +2700,18 @@
public synchronized void autoEmptyOut() {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
List<Integer> list = new ArrayList<>();
- list.add(1109);list.add(2031);
+ list.add(1108);list.add(2031);
for (Integer site:list){
Integer emptyCount = wrkMastMapper.countPakOutEmpty(site);
StaProtocol staProtocol = null;
- if(emptyCount >= 2 && site == 1109){
+ if(emptyCount >= 1 && site == 1108){
continue;
}else if(emptyCount == 1 && site == 2031){
continue;
}
//濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
switch (site){
- case 1109:staProtocol = devpThread.getStation().get(site - 2);break;
+ case 1108:staProtocol = devpThread.getStation().get(site - 2);break;
case 2031:staProtocol = devpThread.getStation().get(site);break;
}
if (staProtocol == null) {
@@ -2590,7 +2721,7 @@
}
if (staProtocol.isAutoing() //鑷姩
&& !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
+// && staProtocol.isOutEnable() //鍙嚭淇″彿
&& staProtocol.getWorkNo() == 0
) {
Short loctype1 = 1;
@@ -3063,6 +3194,7 @@
}
if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
rgvThread.setPaking(true);
+ continue;
}
//灏忚溅鏃犱换鍔℃椂璺宠繃
if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
@@ -3106,26 +3238,31 @@
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- Integer workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); //鍏ュ簱鏀捐揣浼樺厛宸ヤ綅2鎵ц
+ Integer workNo = 0;
+ if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){
+ workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2();
+ }else{
+ workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1();
+ }
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo);
if( null == wrkMastSta ) {
News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
-
-
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
try{
rgvThread.setPaking(false);
- wrkMast.setSheetNo("2");
+ if(wrkMast != null){
+ wrkMast.setSheetNo("2");
+ wrkMastMapper.updateById(wrkMast);
+ }
wrkMastSta.setWrkSts(2);
wrkMastStaMapper.updateById(wrkMastSta);
- wrkMastMapper.updateById(wrkMast);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
}catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触"+ e);
}
} else {
log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
@@ -3175,6 +3312,7 @@
}
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo);
if( null == wrkMastSta ) {
News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
@@ -3184,6 +3322,10 @@
if (sign){
try{
rgvThread.setPaking(false);
+ if(wrkMast != null){
+ wrkMast.setSheetNo("2");
+ wrkMastMapper.updateById(wrkMast);
+ }
wrkMastSta.setWrkSts(2);
wrkMastStaMapper.updateById(wrkMastSta);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
@@ -3329,7 +3471,7 @@
if(wrkMastSta1 != null && wrkMastSta2 != null){
rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
-// if(!rgvThread.isPakToCrn()){
+// if(basRgv.getPakToCrn().equals("0")){
// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
// }
// if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
@@ -3412,7 +3554,14 @@
News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
continue;
}
- wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
+ if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
+ //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
+ wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
+ }
+
+ }
+ if(rgvProtocol.getTaskNo2() > 9999 && staProtocol.getWorkNo() < 10000){
+ continue;
}
if (staProtocol == null) {
@@ -3444,7 +3593,8 @@
case 2: route = RouteUtils.getRouteTwo();break;
}
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ basRgvMapService.updateById(basRgvMap);
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
if( null == wrkMastSta ) {
News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
@@ -3469,24 +3619,25 @@
boolean sign = false;
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
- if(wrkMastSta3 != null){
- wrkMastSta3.setMk(1);
- basRgv.setPakAll("0");
- basRgvService.updateById(basRgv);
- try{
- wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+ if(wrkMastSta3 != null ){
+ List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
+ if(wrkMastStaPaking.size() < 1){//宸叉湁鏍囪涓嶅啀鏍囪
+ wrkMastSta3.setMk(1);
+ basRgv.setPakAll("0");
+ basRgvService.updateById(basRgv);
+
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta3);
+ log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+ }catch (Exception e){
+ log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+ }
}
-
}
- basRgv.setPakOut("0");
+ basRgv.setPakOut("0");//鍑哄簱涓嶅厑璁�
basRgvService.updateById(basRgv);
- rgvThread.setPaking(false);
-// rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
-// basRgvService.updateById(basRgv);
+ rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾
try{
wrkMastSta.setWrkSts(1);
@@ -3568,12 +3719,16 @@
case 2: route = RouteUtils.getRouteTwo();break;
}
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ basRgvMapService.updateById(basRgvMap);
WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
if( null == wrkMastSta ) {
News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
+ if(basRgv.getPakToCrn().equals("0")){
+ wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));
+ }
boolean result = false;
if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
@@ -3582,7 +3737,6 @@
basRgv.setPakRgv("0");
basRgvService.updateById(basRgv);
-// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
@@ -3593,18 +3747,26 @@
if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
basRgv.setPakToCrn("0");
basRgvService.updateById(basRgv);
-
-// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
- }
- if(wrkMastSta3 != null){
- wrkMastSta3.setMk(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+ if(wrkMastSta3 != null){
+ if(!LEFT_POSITION.contains(wrkMastSta3.getStaEnd())){
+ wrkMastSta3 = null;//鑻ユ帴椹崇浜屼綅涓嶆帴椹虫椂鍙栨秷杩炵画鍙栬揣
+ }
}
+ }
+ if(wrkMastSta3 != null ){
+ List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
+ if(wrkMastStaPaking.size() < 1){
+ wrkMastSta3.setMk(1);
+ basRgv.setPakAll("0");
+ basRgvService.updateById(basRgv);
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta3);
+ log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+ }catch (Exception e){
+ log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+ }
+ }
}
basRgv.setPakIn("0");
basRgvService.updateById(basRgv);
@@ -4013,7 +4175,7 @@
/*
* arm浠诲姟瀹屾垚鑷姩缁勬墭
* */
- public synchronized void armMissionAccomplished() {
+ public synchronized void armMissionAccomplished() {
try{
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -4027,17 +4189,16 @@
} else {
staProtocol = staProtocol.clone();
}
- String barcode = staProtocol.getBarcode();
- if(!Cools.isEmpty(barcode)) {
- if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�");
- continue;
- }
- } else {
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�");
- continue;
- }
-
+// String barcode = staProtocol.getBarcode();
+// if(!Cools.isEmpty(barcode)) {
+// if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+// continue;
+// }
+// } else {
+// armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+// continue;
+// }
List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>()
.eq("arm_no", armSta.getArmNo())
.eq("sta_no_sou", armSta.getStaNo())
@@ -4057,16 +4218,17 @@
continue;
}
CombParam combParam = new CombParam(basArmMastList);
- combParam.setBarcode(barcode);
//arm浠诲姟瀹屾垚鑷姩缁勬墭
ReturnT<String> result = new PostMesDataUtils().postMesData("arm浠诲姟瀹屾垚鑷姩缁勬墭",wmsUrl, wmsComb, combParam);
if (result.getCode()==200){
basArmMastService.updateArmMastStatus(basArm.getArmNo(),basArm.getSortingLineSou(),3,4);
} else {
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
+ armTaskAssignmentCallApiLogSave(staProtocol, "鑷姩缁勬墭澶辫触", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false);
+// log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
}
} catch (Exception e){
- log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage());
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔″畬鎴愬紓甯�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false);
+// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage());
}
break;
}
@@ -4100,7 +4262,6 @@
} else {
staProtocol = staProtocol.clone();
}
-
// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
// int workNo = commonService.getWorkNo(6);//寰呭畬鍠�
// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
@@ -4132,6 +4293,56 @@
continue;
}
try{
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basArm.getDevpId());
+ StaProtocol staProtocol = devpThread.getStation().get(basArm.getStaNoSou());
+ if (staProtocol == null || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ String barcode = staProtocol.getBarcode();
+ if(!Cools.isEmpty(barcode)) {
+ if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�");
+ continue;
+ }
+ } else {
+ armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+
+// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�");
+ continue;
+ }
+
+ if(barcode.length()!=6){
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜闀垮害涓嶆槸6浣�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode, false);
+// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode);
+ continue;
+// throw new CoolException(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode);
+ }
+
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode));
+ int countwait = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode));
+ if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+// throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode);
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode, false);
+
+// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode);
+ continue;
+ }
+
+ List<BasArmMast> basArmMastListRuningBarCode = basArmMastService.selectList(
+ new EntityWrapper<BasArmMast>()
+ .eq("barcode", barcode)
+ .eq("status", 3)
+ );
+ if (!basArmMastListRuningBarCode.isEmpty()){
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�,姝e湪鑷姩缁勬墭锛侊紒锛�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
+ continue;
+ }
List<BasArmMast> basArmMastListError = basArmMastService.selectList(
new EntityWrapper<BasArmMast>()
.eq("arm_no", basArm.getArmNo())
@@ -4139,7 +4350,9 @@
.eq("status", 9)
);
if (!basArmMastListError.isEmpty()){
- log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒");
+ armTaskAssignmentCallApiLogSave(staProtocol, "瀛樺湪寮傚父鏈烘鑷備换鍔�", basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒", false);
+
+// log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒");
continue;
}
List<BasArmMast> basArmMastListRuning = basArmMastService.selectList(
@@ -4151,7 +4364,9 @@
List<BasArmMast> basArmMastListRuning3 = basArmMastService.selectList(
new EntityWrapper<BasArmMast>()
.eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
+ .eq(
+
+ "sorting_line", basArm.getSortingLineSou())
.eq("status", 3)
);
if (basArmMastListRuning.isEmpty() && basArmMastListRuning3.isEmpty()){
@@ -4165,7 +4380,9 @@
continue;
}
if (basArmMastList.size()>1){
- log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
+ armTaskAssignmentCallApiLogSave(staProtocol, "浠诲姟寰呮墽琛屾暟閲忓ぇ浜�1,鏃犳硶鍒嗚鲸寰呮墽琛屼换鍔�", "arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�", false);
+
+// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
continue;
}
BasArmMast basArmMast = basArmMastList.get(0);
@@ -4175,26 +4392,51 @@
.eq("sorting_line", basArm.getSortingLineSou())
.eq("sku", basArmMast.getSku())
.eq("order_no", basArmMast.getOrderNo())
+ .eq("binding_tags", basArmMast.getBindingTags())
);
if (basArmMastListOrder.size()==1){
+ Thread.sleep(100);
+
+
+ List<BasArmMast> basArmMastListRuningBarCode2 = basArmMastService.selectList(
+ new EntityWrapper<BasArmMast>()
+ .eq("barcode", barcode)
+ );
+ if (!basArmMastListRuningBarCode2.isEmpty()){
+ int binding_tags = basArmMastService.selectCount(
+ new EntityWrapper<BasArmMast>()
+ .eq("status", 2)
+ .eq("binding_tags", basArmMast.getBindingTags())
+ );
+ if (binding_tags<2){
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦紒锛侊紒", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
+ continue;
+ }
+ }
OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku());
if (Cools.isEmpty(orderDetlValueResultUtil)){
continue;
}
+ Double anfmeSign = basArmMastService.selectBasArmMastSignValue(basArmMast.getOrderNo(), basArmMast.getSku(),basArmMast.getBindingTags());
+ orderDetlValueResultUtil.setAnfme(anfmeSign);
//璁㈠崟涓嬪彂
try{
ArmOrderAssignmentParam armOrderAssignmentParam = new ArmOrderAssignmentParam(basArmMast,orderDetlValueResultUtil);
// 璁㈠崟涓嬪彂(SKU+璁㈠崟)
ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_ADAPTOR, armOrderAssignmentParam);
if (result.getCode()==200){
- basArmMast.setStatus(1);
- basArmMastService.updateById(basArmMast);
+// basArmMast.setStatus(1);
+// basArmMast.setBarcode(barcode);
+// basArmMastService.updateById(basArmMast);
} else {
- log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+
+// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
}
} catch (Exception e){
- log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
continue;
}
}
@@ -4203,9 +4445,11 @@
ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam);
if (result.getCode()==200){
basArmMast.setStatus(1);
+ basArmMast.setBarcode(barcode);
basArmMastService.updateById(basArmMast);
} else {
- log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
+ armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔′俊鎭笅鍙戝け璐�", "arm缂栧彿锛�"+basArm.getArmNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+// log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
}
}
} catch (Exception e){
@@ -4217,4 +4461,26 @@
}
}
+ public void armTaskAssignmentCallApiLogSave(StaProtocol staProtocol ,String tableName, String response, Boolean bool) {
+ ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
+ .eq("namespace", "鏈烘鑷備换鍔$浉鍏�")
+ .eq("request", "绔欑偣鍙�:" + staProtocol.getSiteId())
+ .eq("response", response)
+ .eq("url", tableName)
+ .eq("client_ip", staProtocol.getBarcode())
+ .eq("result", 0)
+ .orderBy("create_time", false)
+ );
+
+ if (!Cools.isEmpty(apiLog)){
+ long parseLong = Long.parseLong(apiLog.getTimestamp());
+ if (new Date().getTime()-parseLong<5*1000*60){
+ return;
+ }
+ }
+ apiLogService.save("鏈烘鑷備换鍔$浉鍏�", tableName, "null", staProtocol.getBarcode(),
+ "绔欑偣鍙�:" + staProtocol.getSiteId() ,
+ response, bool);
+ }
+
}
--
Gitblit v1.9.1