From 4403382cccf10ad69d540bb9f79bd8edc2c9bba7 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 20 十月 2025 16:10:00 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 775 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 493 insertions(+), 282 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 ff0b065..47e4f08 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
@@ -106,6 +107,8 @@
private BasArmService basArmService;
@Autowired
private BasArmMastService basArmMastService;
+ @Autowired
+ private ApiLogService apiLogService;
@Value("${wms.url}")
private String wmsUrl;
@@ -115,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);
/**
* 缁勬墭
@@ -136,6 +139,9 @@
continue;
} else {
staProtocol = staProtocol.clone();
+ }
+ if(!staProtocol.isLoading()){
+ continue;
}
if (barcodeThread == null) {
@@ -179,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()){
@@ -193,11 +199,14 @@
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);
log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
}
@@ -206,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);
@@ -216,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());
@@ -244,6 +256,13 @@
int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkNo1 != 0){
News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ StaProtocol staProtocolNew = new StaProtocol();
+ 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 + ":鎵爜澶辫触锛岃閲嶈瘯");
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo()));
@@ -253,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());
@@ -263,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>()
@@ -307,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)) {
@@ -826,7 +819,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) {
@@ -1246,61 +1239,61 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负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());
- StaProtocol staProtocol2 = devpThread1.getStation().get(1015);
- if (staProtocol2 == null) {
- News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
- break;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997);
- 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 (!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) 5); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 4); // 鐩爣搴撲綅灞�
-// 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(12L);
- wrkMast9999.setCrnStrTime(now);
- wrkMast9999.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast9999) == 0) {
- News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
- }
- break;
- }
- }
- }
+// if (slave.getId() == 3) {
+// SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+// StaProtocol staProtocol2 = devpThread1.getStation().get(1015);
+// if (staProtocol2 == null) {
+// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+// break;
+// } else {
+// staProtocol2 = staProtocol2.clone();
+// }
+// WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997);
+// 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 (!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) 5); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ((short) 4); // 鐩爣搴撲綅灞�
+//// 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(12L);
+// wrkMast9999.setCrnStrTime(now);
+// wrkMast9999.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast9999) == 0) {
+// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
+// }
+// break;
+// }
+// }
+// }
for (WrkMast wrkMast : wrkMasts) {
if (wrkMast == null) {
continue;
@@ -1348,10 +1341,10 @@
// continue;
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
- if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && !staProtocol.isLoading()
) {
// if (slave.getId() == 1 || slave.getId() == 2){
// if (staProtocol.isLoading() || staProtocol.getWorkNo() != 0 || !staProtocol.isOutEnable()){
@@ -2561,18 +2554,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) {
@@ -2582,7 +2575,7 @@
}
if (staProtocol.isAutoing() //鑷姩
&& !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
+// && staProtocol.isOutEnable() //鍙嚭淇″彿
&& staProtocol.getWorkNo() == 0
) {
Short loctype1 = 1;
@@ -2612,7 +2605,7 @@
}
public synchronized void autoEmptyIn() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
List<Integer> list = new ArrayList<>();
list.add(1038);
for (Integer site:list){
@@ -3045,7 +3038,7 @@
// 鑾峰彇RGV淇℃伅
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
+ if (rgvProtocol.getStatusType1() != RgvStatusType.IDLE && rgvProtocol.getModeType() != RgvModeType.AUTO) {
continue;
}
BasRgv basRgv = basRgvService.selectById(rgv.getId());
@@ -3053,12 +3046,22 @@
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
- //灏忚溅鏃犱换鍔℃椂璺宠繃
- if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0){
+ if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+ rgvThread.setPaking(true);
continue;
}
- //鍏ュ簱鏀捐揣
- if(rgvThread.isPakIn()){
+ //灏忚溅鏃犱换鍔℃椂璺宠繃
+ if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
+ continue;
+ }
+ if(!rgvThread.isPaking()){
+ continue;
+
+ }
+ if(!basRgv.getPakAll().equals("1")){
+ continue;
+ }
+ if(basRgv.getPakIn().equals("1")){
for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
boolean flag = false;
@@ -3089,34 +3092,42 @@
}
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{
- wrkMast.setSheetNo("2");
+ rgvThread.setPaking(false);
+ 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());
}
}
+ basRgv.setPakRgv("1");
+ basRgvService.updateById(basRgv);
}
//鍑哄簱鏀捐揣
- if( rgvThread.isPakOut()){
+ if( basRgv.getPakOut().equals("1")){
for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣
boolean flag = false;
@@ -3148,13 +3159,14 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
Integer workNo = 0;
- if(rgvThread.isPakToCrn()){
+ if(basRgv.getPakToCrn().equals("1")){
workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
}else{
workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1(); //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀�
}
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+ WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo);
if( null == wrkMastSta ) {
News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
@@ -3163,6 +3175,11 @@
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
try{
+ rgvThread.setPaking(false);
+ if(wrkMast != null){
+ wrkMast.setSheetNo("2");
+ wrkMastMapper.updateById(wrkMast);
+ }
wrkMastSta.setWrkSts(2);
wrkMastStaMapper.updateById(wrkMastSta);
log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
@@ -3175,8 +3192,9 @@
}
}
+ basRgv.setPakRgv("1");
+ basRgvService.updateById(basRgv);
}
- rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害
}
}
/**
@@ -3188,6 +3206,11 @@
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1());
@@ -3213,10 +3236,22 @@
&& rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
&& !rgvProtocol.isLoaded1ing()
&& !rgvProtocol.isLoaded2ing()){
- rgvThread.setPakRgv(true);
- rgvThread.setPakIn(true);
- rgvThread.setPakOut(true);
- rgvThread.setPakToCrn(true);
+ List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk();
+ List<WrkMastSta> wrkMastStaLockT = wrkMastStaService.selectLockWrkT();
+
+ if(wrkMastStaLock.size() > 0 && rgvProtocol.getRgvNo() == 1){
+ continue ;
+ }
+ if(wrkMastStaLockT.size() > 0 && rgvProtocol.getRgvNo() == 2){
+ continue ;
+ }
+ basRgv.setPakRgv("1");
+ basRgv.setPakToCrn("1");
+ basRgv.setPakIn("1");
+ basRgv.setPakOut("1");
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
+ rgvThread.setPakMk(true);
}
}
@@ -3234,35 +3269,53 @@
if (rgvProtocol == null) {
continue;
}
+
BasRgv basRgv = basRgvService.selectById(rgv.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
+ if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+ rgvThread.setPaking(true);
+ }
+ if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
+ }
// 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn()) {
+ if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
+ rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
+ && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
// rgvRunWrkMastInTest();
if (rgvProtocol.getLastIo().equals("I")) {
- if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
+ if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
//mark - 1 - ....
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ if (rgvProtocol.getTaskNo1()==0){
+ this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ }
rgvProtocol.setLastIo("O");
- } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
+ } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
//mark - 2 - ....
- this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ if (rgvProtocol.getTaskNo2()==0){
+ this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ }
rgvProtocol.setLastIo("I");
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
else if (rgvProtocol.getLastIo().equals("O")) {
- if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
- this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
+ if (rgvProtocol.getTaskNo2()==0){
+ this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ }
rgvProtocol.setLastIo("I");
- } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
+ if (rgvProtocol.getTaskNo1()==0){
+ this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ }
rgvProtocol.setLastIo("O");
}
}
@@ -3272,18 +3325,19 @@
if(wrkMastSta1 != null && wrkMastSta2 != null){
rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
- if(!rgvThread.isPakToCrn()){
- rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
- }
+// if(!rgvThread.isPakToCrn()){
+// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
+// }
// if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
// rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
// }
- if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
- //灏忚溅鎵ц鏀捐揣浠诲姟
- rgvOutExecute();
- }
+// if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
+// //灏忚溅鎵ц鏀捐揣浠诲姟
+// rgvOutExecute();
+//
+// }
}
}
public synchronized void rgvRunWrkMastInTest(){
@@ -3330,11 +3384,17 @@
public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) {
for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣
boolean flag = false;
+ BasRgv basRgv = basRgvService.selectById(slave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+ continue;
+ }
//閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
StaProtocol staProtocol2 = null; //杩炵画鍙栬揣浠诲姟绔欑偣
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+ WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
if(rgvStn.getStaNo2()!= null ){
staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
if (staProtocol2 == null) {
@@ -3348,18 +3408,16 @@
News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
continue;
}
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
- if(wrkMastSta2 != null){
- wrkMastSta2.setMk(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta2);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
- }
-
+ 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) {
News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
continue;
@@ -3389,6 +3447,7 @@
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());
@@ -3403,7 +3462,10 @@
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
}
if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
+ basRgv.setPakRgv("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2);
@@ -3412,7 +3474,25 @@
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
- rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
+ 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");//鍑哄簱涓嶅厑璁�
+ basRgvService.updateById(basRgv);
+ rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾
+
try{
wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
@@ -3437,7 +3517,14 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+ BasRgv basRgv = basRgvService.selectById(slave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+ continue;
+ }
StaProtocol staProtocol2 = null;
+ WrkMastSta wrkMastSta3 = null;
+
if(rgvStn.getStaNo2()!= null ){
staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
if (staProtocol2 == null) {
@@ -3451,18 +3538,7 @@
News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
continue;
}
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
- if(wrkMastSta2 != null){
- wrkMastSta2.setMk(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta2);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
- }
-
- }
-
+ wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
}
if (staProtocol == null) {
@@ -3497,6 +3573,7 @@
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());
@@ -3508,7 +3585,10 @@
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
}
if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
+ basRgv.setPakRgv("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
@@ -3517,9 +3597,31 @@
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
- rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
+ basRgv.setPakToCrn("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
}
- rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+
+ 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);
+
+ rgvThread.setPaking(false);
+// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
try{
wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
@@ -3538,94 +3640,94 @@
/**
* 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂
*/
- public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
- for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
- boolean flag = false;
- //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
- StaProtocol staProtocol2 = null;
- if(rgvStn.getStaNo2()!= null ){
- staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
- if (staProtocol2 == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
- if (staDetl2 == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
- }
- if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
- if (staDetl == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
-
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
- && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
- continue;
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- List<Integer> route = new ArrayList<>();
- switch (rgvProtocol.getRgvNo()){
- case 1: route = RouteUtils.getRouteOne();break;
- case 2: route = RouteUtils.getRouteTwo();break;
- }
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(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());
- boolean result = false;
- if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
- result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
- }
- if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
- continue;
- }
- wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
- wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
- boolean sign = false;
- sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- if (sign){
- rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
- try{
- wrkMastSta.setWrkSts(1);
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
-
-
- }
- }
+// public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
+// for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
+// boolean flag = false;
+// //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
+// StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+// StaProtocol staProtocol2 = null;
+// if(rgvStn.getStaNo2()!= null ){
+// staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
+// if (staProtocol2 == null) {
+// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+// continue;
+// } else {
+// staProtocol2 = staProtocol2.clone();
+// }
+// BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+// if (staDetl2 == null) {
+// News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+// continue;
+// }
+// }
+// if (staProtocol == null) {
+// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+// BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
+// if (staDetl == null) {
+// News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+// continue;
+// }
+//
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
+// && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+// flag = true;
+// }
+// if (!flag) {
+// News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
+// + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
+// + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
+// + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
+// continue;
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// List<Integer> route = new ArrayList<>();
+// switch (rgvProtocol.getRgvNo()){
+// case 1: route = RouteUtils.getRouteOne();break;
+// case 2: route = RouteUtils.getRouteTwo();break;
+// }
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(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());
+// boolean result = false;
+// if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
+// result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
+// }
+// if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
+// rgvThread.setPakRgv(false);
+// continue;
+// }
+// wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
+// wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
+// boolean sign = false;
+// sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+// if (sign){
+// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+// try{
+// wrkMastSta.setWrkSts(1);
+// wrkMastStaMapper.updateById(wrkMastSta);
+// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+// }catch (Exception e){
+// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+// }
+// } else {
+// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+// }
+//
+//
+// }
+// }
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*
@@ -3754,9 +3856,9 @@
// }
// return wrkEnable;
// }
-// /**
-// * 灏忚溅棰勮皟搴�
-// */
+ /**
+ * 灏忚溅棰勮皟搴�
+ */
// public synchronized void rgvPreScheduling(){
// try{
// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
@@ -3793,7 +3895,7 @@
// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
// for (DevpSlave devp : slaveProperties.getDevp()) {
// // 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴�
-// List<Integer> staNos = Arrays.asList( 1043, 1104,1037);
+// List<Integer> staNos = Arrays.asList( 1043, 1104, 1029, 1022, 1019, 1008, 1005);
// for (Integer staNo : staNos) {
// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
// StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -3801,9 +3903,8 @@
// RgvCommand rgvCommand = new RgvCommand();
// rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿
// rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo1(9999); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskNo(9999); // 宸ヤ綅1宸ヤ綔鍙�
// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 绉诲姩
-// rgvCommand.setEndStaNo1(0); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
// switch (staNo){
// case 1043: rgvCommand.setTargetPosition1(1042);break; //宸ヤ綅1鐩爣绔欑偣
// case 1104: rgvCommand.setTargetPosition1(1105);break;
@@ -3858,6 +3959,7 @@
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
} else {
+
return true;
}
@@ -3922,26 +4024,30 @@
/*
* arm浠诲姟瀹屾垚鑷姩缁勬墭
* */
- public synchronized void armMissionAccomplished() {
+ public synchronized void armMissionAccomplished() {
try{
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
for (DevpSlave.Sta armSta : devp.getArmSta()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, armSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- barcode="999997";
- if(!Cools.isEmpty(barcode)) {
- if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(armSta.getStaNo());
+ if (staProtocol == null) {
+ 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);
+// 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())
@@ -3961,16 +4067,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;
}
@@ -4004,7 +4111,6 @@
} else {
staProtocol = staProtocol.clone();
}
-
// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
// int workNo = commonService.getWorkNo(6);//寰呭畬鍠�
// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
@@ -4036,6 +4142,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())
@@ -4043,7 +4199,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(
@@ -4055,7 +4213,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()){
@@ -4069,7 +4229,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);
@@ -4079,26 +4241,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;
}
}
@@ -4107,9 +4294,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){
@@ -4121,4 +4310,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