From 8478d41abf4febfac7ad3b7f863e5e4889bff9de Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 20 十一月 2025 16:43:39 +0800
Subject: [PATCH] *启用
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 2412 +++++++++-------------------------------------------------
1 files changed, 393 insertions(+), 2,019 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 3192f64..e646968 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,22 +4,14 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
+import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
-import com.zy.asrs.entity.param.ArmTaskAssignmentParam;
-import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.asrs.utils.RouteUtils;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
-import com.zy.asrs.utils.core.ReturnT;
-import com.zy.common.constant.ArmConstant;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
@@ -36,15 +28,13 @@
import com.zy.core.model.*;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.LedCommand;
-import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
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.system.entity.license.LicenseVerify;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -75,8 +65,6 @@
@Autowired
private WrkDetlService wrkDetlService;
@Autowired
- private WaitPakinMapper waitPakinMapper;
- @Autowired
private LocMastService locMastService;
@Autowired
private StaDescService staDescService;
@@ -91,32 +79,30 @@
@Autowired
private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
- private WrkMastStaMapper wrkMastStaMapper;
- @Autowired
- private BasRgvService basRgvService;
- @Autowired
- private BasRgvMapMapper basRgvMapMapper;
- @Autowired
private WrkMastService wrkMastService;
- @Autowired
- private WrkMastStaService wrkMastStaService;
- @Autowired
- private BasRgvMapService basRgvMapService;
- @Autowired
- private BasArmService basArmService;
- @Autowired
- private BasArmMastService basArmMastService;
@Value("${wms.url}")
private String wmsUrl;
-
- @Value("${wms.comb}")
- private String wmsComb;
@Value("${inventory.number}")
private Integer inventoryNumber;
- public Integer wrkNo = 10000;
- public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
+ public Integer wrkNo = 10002;
+
+ /*
+ * 楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
+ * */
+ public synchronized boolean licenseVerify() {
+ try{
+// if (true) {
+// return true;
+// }
+ return new LicenseVerify().verify();
+ } catch (Exception e){
+ log.info("璁稿彲璇侀獙璇佸け璐ワ紒锛佸紓甯革細{}",e.getMessage());
+ }
+ return false;
+ }
+
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -136,6 +122,9 @@
continue;
} else {
staProtocol = staProtocol.clone();
+ }
+ if(!staProtocol.isLoading()){
+ continue;
}
if (barcodeThread == null) {
@@ -179,7 +168,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 +182,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 +198,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 +210,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 +239,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 +255,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 +267,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 +310,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)) {
@@ -498,10 +474,9 @@
if (Cools.isEmpty(staDesc)) {
News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
staProtocol.setWorkNo(wrkNo++);
- staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
+ staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()));
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂4锛�"+9989+","+(pickSta.getStaNo().shortValue()-(short)1));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -525,6 +500,14 @@
Date now = new Date();
// 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
Integer staNo = staDesc.getCrnStn();
+ if(wrkMast.getSourceStaNo() > 2000){
+ switch (wrkMast.getCrnNo()){
+ case 1: staNo = 2004;break;
+ case 2: staNo = 2010;break;
+ case 4: staNo = 2022;break;
+ case 5: staNo = 2028;break;
+ }
+ }
// 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
wrkMast.setIoTime(now);
wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
@@ -554,7 +537,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo((short) 161);
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
@@ -754,6 +737,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,3);
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo()== 9997
+ && 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, 3);
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo() == 9996
+ && 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) {
@@ -826,7 +904,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) {
@@ -835,14 +913,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 {
@@ -875,7 +956,13 @@
}
}
}
- if(staProtocolIn.getWorkNo() != null &&staProtocolIn.getStaNo() != 4001){
+ if(staProtocolIn.getWorkNo() != null && staProtocolIn.getStaNo() != 4001){
+ WrkMast wrkMastCrn = wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
+ if(wrkMastCrn!=null){
+ if(wrkMastCrn.getCrnNo() == 3 ){
+ continue;
+ }
+ }
WrkMast wrkMastIn = wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9996);
if(wrkMastIn == null){
@@ -988,13 +1075,16 @@
}
int x=1;
switch (crnProtocol.getCrnNo()){
- case 1: x =1; break;
- case 2: x =3; break;
- case 3: x =5; break;
- case 4: x =7; break;
- case 5: x =9; break;
+ case 1: x =2; break;
+ case 2: x =6; break;
+ case 3: x =11; break;
+ case 4: x =14; break;
+ case 5: x =18; break;
}
+ if(crnProtocol.getCrnNo() != 5){
+ return;
+ }
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
return;
@@ -1017,7 +1107,7 @@
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 浠诲姟妯″紡: 鍥炲師鐐�
crnCommand.setSourcePosX((short) x); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
@@ -1047,61 +1137,6 @@
} 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;
-// }
-// }
-// }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -1211,18 +1246,6 @@
News.error(""+mark+" - 1"+" - 16"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
-// long startTime = System.currentTimeMillis();
-// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
-//
-// if (true) {
-// break;
-// }
-//
-// try{
-// Thread.sleep(500);
-// }catch(Exception ignore){}
-// }
-
// 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
Date now = new Date();
wrkMast.setWrkSts(3L);
@@ -1246,8 +1269,12 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负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);
+ WrkMast wrkMast9996 = wrkMastMapper.selectByWrkNo9997(9996);
+
+
+ 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);
@@ -1255,14 +1282,28 @@
} else {
staProtocol2 = staProtocol2.clone();
}
- WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997);
+ SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol4004 = devpThread2.getStation().get(4004);
+ if (staProtocol4004 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol4004);
+ break;
+ } else {
+ staProtocol4004 = staProtocol4004.clone();
+ }
+ 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;
@@ -1273,29 +1314,155 @@
break;
// return;
}
+ if(staProtocol4004.isLoading()){
+ continue;
+ }
// 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.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;
+ }
+ if(staProtocol4004.isLoading()){
+ continue;
+ }
+ // 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;
+ }
+ }
+ }
+ if (slave.getId() == 3 && wrkMast9996 != null) {
+ SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+
+ SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol4001 = devpThread2.getStation().get(4001);
+ if (staProtocol4001 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol4001);
+ break;
+ } else {
+ staProtocol4001 = staProtocol4001.clone();
+ }
+ StaProtocol staProtocol2013 = devpThread2.getStation().get(2013);
+ if (staProtocol2013 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2013);
+ break;
+ } else {
+ staProtocol2013 = staProtocol2013.clone();
+ }
+ StaProtocol staProtocol1019 = devpThread1.getStation().get(1019);
+ if (staProtocol1019 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol1019);
+ break;
+ } else {
+ staProtocol1019 = staProtocol1019.clone();
+ }
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ if(staProtocol4001.isLoading() && staProtocol4001.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;
+ }
+ if(staProtocol1019.isLoading() && wrkMast9996.getStaNo() < 2000){
+ continue;
+ }
+ if(staProtocol2013.isLoading() && wrkMast9996.getStaNo() > 2000){
+ continue;
+ }
+ // 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); // 婧愬簱浣嶅眰
+ if(wrkMast9996.getStaNo()>2000){
+ crnCommand.setDestinationPosX((short) 9); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 2); // 鐩爣搴撲綅灞�
+ }else{
+ crnCommand.setDestinationPosX((short) 11); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
+ }
+// 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(12L);
+ wrkMast9996.setCrnStrTime(now);
+ wrkMast9996.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9996) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9996.getWrkNo());
}
break;
}
@@ -1351,7 +1518,7 @@
// 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()){
@@ -1489,90 +1656,6 @@
//
//// // 鍏ュ嚭搴撴ā寮忓垽鏂�
//// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-//
-//
-// // 鏌ヨ绔欑偣璇︾粏淇℃伅
-// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-// if (staDetl == null) {
-// log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-// continue;
-// }
-// // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
-// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//
-// // 鍫嗗灈鏈烘帶鍒惰繃婊�
-// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-// continue;
-// }
-//
-// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-// if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-// if (null == waitWrkMast) {
-// log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-// } else {
-// if(waitWrkMast.getWrkSts() == 11) {
-// waitWrkMast.setIoPri(15D);
-// waitWrkMast.setModiTime(new Date());
-// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-// log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-// }
-// continue;
-// } else {
-//
-// }
-// }
-// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-// wrkMast.setUpdMk("Y");
-// wrkMastMapper.updateById(wrkMast);
-// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-// moveLocForDeepLoc(slave, shallowLoc);
-// }
-// log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
-// continue;
-// }
-// }
-//
-// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-// return;
-// }
-//
-// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
-// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
-// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
-// crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
-// crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
-// crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
-// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
-// } else {
-// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-// Date now = new Date();
-// wrkMast.setWrkSts(12L);
-// wrkMast.setCrnStrTime(now);
-// wrkMast.setModiTime(now);
-// if (wrkMastMapper.updateById(wrkMast) == 0) {
-// log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-// }
-// }
-// }
-// }
-// }
/**
* 搴撲綅绉昏浆
@@ -1676,31 +1759,33 @@
News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
}
- } else if (crnProtocol.getTaskNo() == 9996) {//鐩樼偣鍏ュ簱琛旀帴
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
-
- // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
- // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
- if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
- wrkMast.setWrkSts(4L);
- } else {
- continue;
- }
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
- // 鍫嗗灈鏈哄浣�
- log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
- News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
- crnThread.setResetFlag(true);
- }
- }
- }else{
+ }
+// else if (crnProtocol.getTaskNo() == 9996) {//鐩樼偣鍏ュ簱琛旀帴
+// // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+// if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+// News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+//
+// // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
+// // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
+// if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+// wrkMast.setWrkSts(4L);
+// } else {
+// continue;
+// }
+// Date now = new Date();
+// wrkMast.setCrnEndTime(now);
+// wrkMast.setModiTime(now);
+// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+// if (wrkMastMapper.updateById(wrkMast) > 0) {
+// // 鍫嗗灈鏈哄浣�
+// log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
+// News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
+// crnThread.setResetFlag(true);
+// }
+// }
+// }
+ else{
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
@@ -1994,7 +2079,12 @@
}
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
- if (null == wrkMast) { continue; }
+ if (null == wrkMast) {
+ if(staProtocol.getWorkNo() > 9999){ //寮傚父閫�鍑�
+ MessageQueue.offer(SlaveType.Led, 2, new Task(3, "寮傚父閫�鍑�"));
+ }
+ continue;
+ }
wrkMasts.add(wrkMast);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
@@ -2007,6 +2097,12 @@
break;
case 10:
ledCommand.setTitle("绌烘澘鍏ュ簱");
+ break;
+ case 12:
+ ledCommand.setTitle("鐗╂枡琛旀帴");
+ break;
+ case 57:
+ ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
break;
case 101:
ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
@@ -2031,6 +2127,20 @@
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
ledCommand.setBarcode(wrkMast.getBarcode());
+ if(wrkMast.getIoType() == 12){
+ List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(wrkMast.getBarcode());
+ wrkDetls.forEach(wrkDetl -> {
+ Double total = 0.0;
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+ if (Cools.isEmpty(locDetl)) {
+ total = wrkDetl.getAnfme();
+ } else {
+ total = locDetl.getAnfme();
+ }
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+ });
+ }
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
@@ -2044,13 +2154,13 @@
total = locDetl.getAnfme();
}
if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
}
if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
}
if (wrkMast.getIoType() == 107) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
}
});
}
@@ -2120,6 +2230,9 @@
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
}
+// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+// News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// }
}
}
}
@@ -2327,157 +2440,6 @@
}
/**
- * 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
- */
- public synchronized void crnDemoOfLocMove1() {
- try {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- if (!crn.getDemo()) {
- continue;
- } // 蹇呴』涓烘紨绀虹姸鎬�
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
-
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
- WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
- if (null != wrkMast) {
- continue;
- }
-
- LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
- LocMast loc = locMastService.queryDemoLoc(crn.getId());
- if (null == sourceLoc || null == loc) {
- continue;
- }
-
- String sourceLocNo = sourceLoc.getLocNo();
- String locNo = loc.getLocNo();
-
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- // 淇濆瓨宸ヤ綔妗�
- wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
- wrkMast.setIoPri(13D);
- wrkMast.setCrnNo(crn.getId());
- wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
- wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setAppeTime(new Date());
- wrkMast.setModiTime(new Date());
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
-// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
-// for (LocDetl locDetl : locDetls) {
-// WrkDetl wrkDetl = new WrkDetl();
-// wrkDetl.setWrkNo(workNo);
-// wrkDetl.setIoTime(new Date());
-// wrkDetl.setAnfme(locDetl.getAnfme());
-// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
-// wrkDetl.setAppeTime(new Date());
-// wrkDetl.setModiTime(new Date());
-// if (!wrkDetlService.insert(wrkDetl)) {
-// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-// }
-// }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (sourceLoc.getLocSts().equals("D")) {
- sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
- sourceLoc.setModiTime(new Date());
- if (!locMastService.updateById(sourceLoc)) {
- throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- }
- } else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- }
- // 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocSts().equals("O")) {
- loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
- if (!locMastService.updateById(loc)) {
- throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- }
- } else {
- throw new CoolException("绉昏浆澶辫触");
- }
-
- }
- }
- } catch (Exception e) {
- News.error("鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e);
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- /**
- * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
- */
- public synchronized void crnIoWrkMast() {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- Date now = new Date();
- // 鍫嗗灈鏈烘鍦ㄨ繍琛�
- if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鑾峰彇宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
- continue;
- }
- // 鍏ュ簱
- if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
- News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- wrkMast.setWrkSts(3L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
- // 鍑哄簱銆佺Щ搴�
- if (wrkMast.getWrkSts() == 11) {
- News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- wrkMast.setWrkSts(12L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
-
-
- }
-
- }
- }
-
- /**
* 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
*/
public synchronized void ioConvert() {
@@ -2553,1594 +2515,6 @@
News.error(""+mark+" - 1"+" - 淇敼{}宸ヤ綔妗eけ璐ワ紝ctn_no", wrkMast.getWrkNo());
}
}
- }
-// News.infoNoLog(""+mark+" - 0"+" - outOfDevp鎵ц瀹屾垚");
- }
-
-
- public synchronized void autoEmptyOut() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(1109);list.add(2031);
- for (Integer site:list){
- Integer emptyCount = wrkMastMapper.countPakOutEmpty(site);
- StaProtocol staProtocol = null;
- if(emptyCount >= 2 && site == 1109){
- continue;
- }else if(emptyCount == 1 && site == 2031){
- continue;
- }
- //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
- switch (site){
- case 1109:staProtocol = devpThread.getStation().get(site - 2);break;
- case 2031:staProtocol = devpThread.getStation().get(site);break;
- }
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
- && staProtocol.getWorkNo() == 0
- ) {
- Short loctype1 = 1;
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
- try {
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyOut/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- String data = jsonObject.get("data").toString();
- News.info((String) jsonObject.get("msg")+","+data);
- } else {
- News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
- }
-
- }
-
- public synchronized void autoEmptyIn() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(1038);
- for (Integer site:list){
- StaProtocol staProtocol = devpThread.getStation().get(site);
- StaProtocol staProtocol1 = devpThread.getStation().get(1040);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆淇″彿
- && staProtocol.isPakMk()
- && staProtocol1.isFull() //鍙犳弧淇″彿
- && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990 ) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
- ) {
-
- System.out.println(staProtocol);
- try {
- Short loctype1 = 1;
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
-
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyIn/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- News.info((String) jsonObject.get("msg"));
- staProtocol.setWorkNo(jsonObject.get("data").hashCode());
- staProtocol.setStaNo(site.shortValue());
- devpThread.setPakMk(site,false);
- MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- }
-
- }
-
- /*
- * 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
- * */
- public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){
-// log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];",sign,JSON.toJSONString(basRgvMapCurrent),staStart,staEnd);
-
-// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
- //鏇存柊褰撳墠灏忚溅閿�
- try{
- Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
-// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]",farCurrentStaNo);
- Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
-// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]",fallMerge);
- basRgvMapCurrent.setLockEndRoute(fallMerge);
- Integer i = basRgvMapMapper.updateById(basRgvMapCurrent);
-// if (i>0){
-// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent));
-// }
-
- //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
- Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo());
-// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]",rgvNoOther);
-
- BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
-// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]",JSON.toJSONString(basRgvMapOther));
-
- List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
- Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
-// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]",lockEndRoute);
- basRgvMapOther.setEndRoute(lockEndRoute);
- Integer i1 = basRgvMapMapper.updateById(basRgvMapOther);
-// if (i1>0){
-// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther));
-// }
- return true;
- }catch (Exception e){
- log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細"+e);
- return false;
- }
- }
-
- /*
- * 鍒锋柊鍦板浘鏁版嵁
- * */
- public synchronized void refreshRgvMap() {
- try{
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
- rgvProtocol.getModeType() == RgvModeType.AUTO
- && !rgvProtocol.isLoaded1ing() //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && rgvProtocol.getTaskNo1()==0
- && !rgvProtocol.isLoaded2ing()
- && rgvProtocol.getTaskNo2()==0
- &&rgvThread.isPakMk()
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-
- Integer rgvNoOther = basRgvMap.getRgvNoOther((int) rgvProtocol.getRgvNo());
- RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
- RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
- if (rgvProtocolOther == null) {
- continue;
- }else {
- rgvProtocolOther = rgvProtocolOther.clone();
- }
- if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
- && rgvProtocolOther.getModeType() == RgvModeType.AUTO
- && !rgvProtocolOther.isLoaded1ing()
- && rgvProtocolOther.getTaskNo1()==0
- && !rgvProtocolOther.isLoaded2ing()
- && rgvProtocolOther.getTaskNo2()==0
- &&rgvThreadOther.isPakMk()
- ){
- //瀵瑰伐浣滄。杩涜鍒ゆ柇
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366");
- }else if (rgvProtocol.getTaskNo1() == 0){
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366");
- }
-
- }
-
-
-
- }
- }
- }catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
- }
- }
-
- /**
- * 鑷姩鐢熸垚RGV鎺ラ┏浠诲姟锛堟绱㈠嚭鍏ュ彛浠诲姟锛岀敓鎴愬搴擱GV浠诲姟锛屾绱�4妤间换鍔★紝闈�3鍙峰爢鍨涙満锛屽垯鐢熸垚瀵瑰簲鎺ラ┏浠诲姟锛�
- */
-// public synchronized void rgvCreateWrkMastSta(){
-// try{
-// for (DevpSlave devp : slaveProperties.getDevp()) {
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-// StaProtocol staProtocol = devpThread.getStation().get(1105);
-// if (staProtocol == null) {
-// continue;
-// } else {
-// staProtocol = staProtocol.clone();
-// }
-// if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
-// continue;
-// }
-// }
-// }
-// }
-
- /**
- * 灏忚溅涓婂伐浣嶅乏鍙崇Щ鍔�
- *
- */
-// public synchronized boolean rgvStaMove(Long workNo) {
-// try {
-// for (RgvSlave rgv : slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// } else {
-// rgvProtocol = rgvProtocol.clone();
-// }
-// if (rgvProtocol.isLoaded2ing() && rgvProtocol.isLoaded1ing()) {
-// continue;
-// }
-// if (rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo1() != 0) {
-// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
-// Short moveSta = 0;
-//
-// if (wrkMastSta.getStaEnd() < 1036 || (2000 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd() < 2031)) {
-// moveSta = 2;
-// boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(), 7, wrkMastSta.getWrkNo(), moveSta);
-// if (!rgvComplete) {
-// log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
-// break;
-// }
-// }
-// }
-// if (!rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing() && rgvProtocol.getTaskNo2() != 0) {
-// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
-// Short moveSta = 0;
-//
-// if (wrkMastSta.getStaEnd() > 2030 || (1036 < wrkMastSta.getStaEnd() && wrkMastSta.getStaEnd() < 2000)) {
-// moveSta = 1;
-// boolean rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(), 8, wrkMastSta.getWrkNo(), moveSta);
-// if (!rgvComplete) {
-// log.error("灏忚溅宸ヤ綅绉诲姩澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
-// break;
-// }
-// }
-// }
-//
-//
-// }
-// } catch (Exception e) {
-// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
-// }
-// }
- /**
- * 瀹屾垚灏忚溅浠诲姟
- */
-// public synchronized void rgvCompleteWrkMastSta() {
-// try{
-// for (DevpSlave devp : slaveProperties.getDevp()) {
-// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
-// for (RgvSlave rgv : slaveProperties.getRgv()) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }else {
-// rgvProtocol = rgvProtocol.clone();
-// }
-// BasRgv basRgv = basRgvService.selectById(rgv.getId());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgv.getId());
-// continue;
-// }
-// //鏀捐揣纭
-// if(rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
-// boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
-// if (!rgvComplete){
-// log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
-// }
-// }
-// if(rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING && rgvProtocol.getModeType() == RgvModeType.AUTO){
-// boolean rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 6);
-// if (!rgvComplete){
-// log.error("灏忚溅鏀捐揣澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
-// }
-// }
-//
-// // 鍙湁褰揜GV宸ヤ綅1绛夊緟WCS纭銆佽嚜鍔�
-// if (rgvProtocol.getStatusType1() == RgvStatusType.WAITING
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// ){
-//
-// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType1(),rgvProtocol);
-// if(rgvProtocol.getTaskNo1() == 9999){ // 棰勮皟搴︿换鍔$‘璁�
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// Integer staNo = basRgvMap.getNowRoute();
-// switch (staNo){
-// case 1004: staNo = 1042; break;
-// case 1007: staNo = 1105; break;
-// }
-//
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-// StaProtocol staProtocol = devpThread.getStation().get(staNo);
-// boolean rgvComplete = false;
-
-// long now = System.currentTimeMillis();
-// if (staProtocol.isLoading()) {
-// rgvProtocol.setLoadingStartTime(null); // 宸插埌浣嶏紝娓呯┖鏃堕棿鎴�
-// } else {
-// if (rgvProtocol.getLoadingStartTime() == null) {
-// rgvProtocol.setLoadingStartTime(now);
-// }
-// }
-//
-// if (staProtocol.isLoading()) {
-// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(), 3);
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛佺瓑寰呭叆搴撳彇璐�", rgvProtocol.getRgvNo());
-// }
-// }
-// }
-// if ( rgvProtocol.getTaskNo1()!=9999 && rgvProtocol.getTaskNo1() != 0){
-// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
-// if(null == wrkMastSta){
-// log.error("灏忚溅鏃犱换鍔�");
-// continue;
-// }
-// if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
-//// if(!Objects.equals(rgvProtocol.getRgvPosI2(), wrkMastSta.getStaEnd())){
-//// continue;
-//// }
-// boolean rgvComplete = false;
-// rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),7,wrkMastSta.getWrkNo(),(short)2);
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// break;
-// }
-// wrkMastSta.setUpdateTime(new Date());
-// wrkMastSta.setWrkSts(2);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// break;
-// }
-// }
-//
-// else {
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
-// }
-// }
-// // 鍙湁褰揜GV宸ヤ綅2绛夊緟WCS纭銆佽嚜鍔�
-// if (rgvProtocol.getStatusType2() == RgvStatusType.WAITING
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// ){
-// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType2(),rgvProtocol);
-// if (rgvProtocol.getTaskNo2() !=0 ){
-// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
-// if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
-// boolean rgvComplete = false;
-// rgvComplete = rgvComplete3((int) rgvProtocol.getRgvNo(),8,wrkMastSta.getWrkNo(),(short)1);
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// break;
-// }
-// wrkMastSta.setWrkSts(2);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// break;
-// }
-// if(wrkMastSta.getWrkSts() == 4){//琛岃蛋鍚庣‘璁�
-// wrkMastSta.setWrkSts(2);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// boolean rgvComplete = false;
-//
-// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7);
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// break;
-// }
-// break;
-// }
-// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
-// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
-// continue;
-// }
-
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-// StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
-// if (staProtocol == null) {
-// continue;
-// } else {
-// staProtocol = staProtocol.clone();
-// }
-// if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
-// continue;
-// }
-// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
-//
-// int sourceSta = wrkMast.getSourceStaNo();
-// boolean rgvComplete = false;
-//
-// //鍙屽伐浣嶅嚭鍏ュ簱涓嶅悓宸ヤ綅澶嶄綅
-// rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),6);
-
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// break;
-// }
-// WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1());
-// wrkMast1.setPdcType("Y");
-//
-// wrkMastService.updateById(wrkMast1);
-//
-// wrkMastSta.setWrkSts(3);
-// wrkMastStaMapper.updateById(wrkMastSta);
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471");
-// }
-// else {
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭锛�",rgvProtocol.getRgvNo());
-// }
-// }
-// //褰撳皬杞︽棤浠诲姟鏃跺彇娑堥攣瀹�
-// if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0){
-// rgvThread.setPakMk(true);
-// rgvThread.setPakIn(true);
-// rgvThread.setPakOut(true);
-// }
-// }
-// }
-// }catch (Exception e){
-// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
-// }
-// }
-
- /**
- * rgv鏀捐揣浠诲姟涓嬪彂
- */
- public synchronized void rgvOutExecute() {
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol.getStatusType1() != RgvStatusType.IDLE && rgvProtocol.getModeType() != RgvModeType.AUTO) {
- continue;
- }
- BasRgv basRgv = basRgvService.selectById(rgv.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
- continue;
- }
- //灏忚溅鏃犱换鍔℃椂璺宠繃
- if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
- continue;
- }
- if(!rgvThread.isPaking()){
- continue;
- }
- List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId());
- if(wrkMastStaLock.size() == 1){
- continue;
- }
- if(rgvThread.isPakIn()){
- for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
- boolean flag = false;
-
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
- if (staProtocol == null) {
- News.infoNoLog( " - 1" + " - 1" + " - Rgv鍏ュ簱鏀捐揣绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
- if (staDetl == null) {
- News.error( " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv鏀捐揣绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
-
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog( " - 1" + " - 3" + " - Rgv鍏ュ簱鏀捐揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
- continue;
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- Integer 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());
- continue;
- }
-
-
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- if (sign){
- try{
- rgvThread.setPaking(false);
- wrkMast.setSheetNo("2");
- wrkMastSta.setWrkSts(2);
- wrkMastStaMapper.updateById(wrkMastSta);
- wrkMastMapper.updateById(wrkMast);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
-
- }
- }
- //鍑哄簱鏀捐揣
- if( rgvThread.isPakOut()){
- for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣
- boolean flag = false;
-
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
- if (staProtocol == null) {
- News.infoNoLog( " - 1" + " - 1" + " - Rgv鍑哄簱鏀捐揣绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
- if (staDetl == null) {
- News.error( " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv鏀捐揣绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
-
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog( " - 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());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- Integer workNo = 0;
- if(rgvThread.isPakToCrn()){
- 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);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-
- if( null == wrkMastSta ) {
- News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
- continue;
- }
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- if (sign){
- try{
- rgvThread.setPaking(false);
- wrkMastSta.setWrkSts(2);
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
-
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
-
- }
- }
- rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害
- }
- }
- /**
- * rgv浠诲姟瀹屾垚
- */
- public synchronized void rgvTaskComplete(){
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1());
- Long taskNo2 = Long.valueOf(rgvProtocol.getTaskNo2());
- List<WrkMastSta> wrkMastStaList = wrkMastStaService.selectList(
- new EntityWrapper<WrkMastSta>()
- .eq("wrk_sts" ,2)
- .eq("rgv_no", rgvProtocol.getRgvNo())
- );
- for(WrkMastSta wrkMastSta : wrkMastStaList){
- if(!Objects.equals(wrkMastSta.getWrkNo(), taskNo1) && !Objects.equals(wrkMastSta.getWrkNo(), taskNo2)){
- try{
- wrkMastSta.setWrkSts(3);
- wrkMastStaMapper.updateById(wrkMastSta);
- log.info("鏇存柊灏忚溅宸ヤ綔妗h嚦瀹屾垚鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅宸ヤ綔妗h嚦瀹屾垚澶辫触");
- }
- }
- }
- if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
- && !rgvProtocol.isLoaded1ing()
- && !rgvProtocol.isLoaded2ing()){
- rgvThread.setPakRgv(true);
- rgvThread.setPakMk(true);
- rgvThread.setPakIn(true);
- rgvThread.setPakOut(true);
- rgvThread.setPakToCrn(true);
- }
-
- }
- }
-
-
- /**
- * rgv鍑哄叆搴撲换鍔′笅鍙�
- */
- public synchronized void rgvIoExecute(Integer mark) {
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- 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;
- }
- if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
-// log.error("瑙i攣");
- rgvThread.setPaking(true);
- }
- // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
- // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
-// rgvRunWrkMastInTest();
-
- if (rgvProtocol.getLastIo().equals("I")) {
- if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
- //mark - 1 - ....
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
- //mark - 2 - ....
- 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); // 鍑哄簱
- rgvProtocol.setLastIo("I");
- } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
- rgvProtocol.setLastIo("O");
- }
- }
- }
- WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, (int) rgvProtocol.getRgvNo());
- WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWorkSta(1, (int) rgvProtocol.getRgvNo());
- if(wrkMastSta1 != null && wrkMastSta2 != null){
- rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
- }
- 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();
-//
-// }
- }
- }
- public synchronized void rgvRunWrkMastInTest(){
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(1);
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(1021); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(342);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-
-// WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, 1);
- boolean result = false;
-// if(wrkMastSta2 != null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
-// result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
-// }
-// if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
-// rgvThread.setPakRgv(false);
-// continue;
-// }
- wrkMastSta.setWorkSta(1);
- wrkMastSta.setRgvNo(1);
- wrkMastSta.setStaStart(1035);
- Short direction = 2;//鍙屽伐浣嶆渶缁堟姷杈句綅缃�
- boolean sign = false;
-// sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,direction,); //鍛戒护涓嬪彂
- if (sign){
- wrkMastSta.setWrkSts(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
-// rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
- if (!signMap){
- log.error("璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- }
- /**
- * 灏忚溅鍏ュ簱浠诲姟鍙栬揣涓嬪彂
- */
- public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) {
- for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣
- boolean flag = false;
- //閬嶅巻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) {
- 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;
- }
- wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
- }
-
- 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.getCanining() != null && staDetl.getCanining().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍏ュ簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
- 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.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
- if( null == wrkMastSta ) {
- News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
- continue;
- }
- WrkMastSta wrkMastSta2 = null;
- if(rgvProtocol.getTaskNo2() != null){
- wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2());
- }
- boolean result = false;
- if(wrkMastSta2 != null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
- result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
- }
- if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
- continue;
- }
- wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2);
- wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
- boolean sign = false;
- sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- if (sign){
- if(wrkMastSta3 != null){
- wrkMastSta3.setMk(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
- }
-
- }
- rgvThread.setPaking(false);
- rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
- try{
- wrkMastSta.setWrkSts(1);
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
-
-
- }
- }
- /**
- * 灏忚溅鍑哄簱浠诲姟鍙栬揣涓嬪彂
- */
- public synchronized void rgvRunWrkMastOut(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;
- WrkMastSta wrkMastSta3 = 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;
- }
- wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
-
- }
- 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.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());
- 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){
- if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
- rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
- }
- if(wrkMastSta3 != null){
- wrkMastSta3.setMk(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
- }catch (Exception e){
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
- }
-
- }
- rgvThread.setPaking(false);
- 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());
- }
-
-
- }
- }
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- *
- * @return
- */
-// public synchronized boolean rgvRunWrkMastFullSta() {
-// boolean wrkEnable = false;
-// try{
-// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
-// for (BasRgvMap rgvSlave:basRgvMaps) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }else {
-// rgvProtocol = rgvProtocol.clone();
-// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
-// continue;
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 鍏ュ簱鍙栬揣
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && !rgvProtocol.isLoaded1ing()
-// && rgvProtocol.getTaskNo1() == 0
-// && rgvThread.isPakMk()
-// && rgvThread.isPakIn()
-// ) {
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// List<Integer> staNos = Arrays.asList(1042, 1105, 1038, 1036, 2037);//鍏ュ簱鍙�
-// if (!staNos.contains(wrkMastSta.getStaStart())) {
-// continue;
-// }
-// boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
-// wrkEnable = true;
-// if (sign){
-// wrkMastSta.setWrkSts(1);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// rgvThread.setPakMk(false);
-// rgvThread.setPakOut(false);
-// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
-// if (signMap){
-// return wrkEnable;
-//// break;
-// }else {
-// log.error("璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// Thread.sleep(500);
-// }
-// } else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-// Thread.sleep(500);
-// }
-// break;
-// }
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 鍑哄簱鍙栬揣
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && !rgvProtocol.isLoaded2ing()
-// && rgvProtocol.getTaskNo2() == 0
-// && rgvThread.isPakMk()
-// && rgvThread.isPakOut()
-// ){
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-// for (WrkMastSta wrkMastSta : wrkMastStaList){
-// List<Integer> staNos = Arrays.asList(1042, 1105, 1038, 1036, 2037);//鍏ュ簱鍙�
-// if (staNos.contains(wrkMastSta.getStaStart())) {//闈炲叆搴撳彛锛堝嚭搴撳彛锛夐檺鍒�
-// continue;
-// }
-// boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,null); //鍛戒护涓嬪彂
-// wrkEnable = true;
-// if (sign){
-// wrkMastSta.setWrkSts(1);
-// try{
-// wrkMastStaMapper.updateById(wrkMastSta);
-// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-// }catch (Exception e){
-// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-// }
-// rgvThread.setPakMk(false);
-// rgvThread.setPakOut(false);
-// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
-// if (signMap){
-// return wrkEnable;
-//// break;
-// }else {
-// log.error("璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-// Thread.sleep(500);
-// }
-// } else {
-// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-// Thread.sleep(500);
-// }
-// break;
-// }
-//
-// }
-//
-// }
-// }catch (Exception e){
-// log.error("鎵ц灏忚溅鎼繍浠诲姟涓嬪彂澶辫触");
-// }
-// return wrkEnable;
-// }
- /**
- * 灏忚溅棰勮皟搴�
- */
-// public synchronized void rgvPreScheduling(){
-// try{
-// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
-// for (BasRgvMap rgvSlave:basRgvMaps) {
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }else {
-// rgvProtocol = rgvProtocol.clone();
-// }
-// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
-// if (basRgv == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
-// continue;
-// }
-//
-// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 鎵嶈繘琛岄璋冨害
-// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-// && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && !rgvProtocol.isLoaded1ing()
-// && rgvProtocol.getTaskNo1() == 0
-// && !rgvProtocol.isLoaded2ing()
-// && rgvProtocol.getTaskNo2() == 0
-// && rgvThread.isPakMk()
-// ) {
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// if (basRgvMap == null) {
-// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-// continue;
-// }
-// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-// for (DevpSlave devp : slaveProperties.getDevp()) {
-// // 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴�
-// 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);
-// if(staProtocol.isLoading()){
-// RgvCommand rgvCommand = new RgvCommand();
-// rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿
-// rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-// rgvCommand.setTaskNo(9999); // 宸ヤ綅1宸ヤ綔鍙�
-// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 绉诲姩
-// switch (staNo){
-// case 1043: rgvCommand.setTargetPosition1(1042);break; //宸ヤ綅1鐩爣绔欑偣
-// case 1104: rgvCommand.setTargetPosition1(1105);break;
-// case 1037: rgvCommand.setTargetPosition1(1036);break;
-//
-// }
-// if(Objects.equals(basRgvMap.getNowRoute(), staNo)){
-// continue;
-// }
-// rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
-// if (!MessageQueue.offer(SlaveType.Rgv, (int) rgvProtocol.getRgvNo(), new Task(4, rgvCommand))) {
-// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
-// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", (int) rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
-// }
-// }
-// }
-//
-// }
-//
-// }
-// }
-// }catch (Exception e){
-// log.error("鎵ц灏忚溅绉诲姩涓嬪彂澶辫触");
-// }
-// }
-
-
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
- public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- RgvTaskStatusType type;
- Integer targetPosition = 0;
- if(wrkMastSta.getWrkSts() == 0){
- type = RgvTaskStatusType.FETCH; //鍙栬揣
- targetPosition = wrkMastSta.getStaStart();
- }else{
- type = RgvTaskStatusType.PUT; //鏀捐揣
- targetPosition = wrkMastSta.getStaEnd();
- }
- rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅宸ヤ綔鍙�
- rgvCommand.setTaskStatus(type); // 宸ヤ綅浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setTargetPosition(targetPosition); //宸ヤ綅鐩爣绔欑偣
- rgvCommand.setWrkTaskPri(wrkMastSta.getWorkSta());
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(2, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
-
- return true;
- }
-
- }catch (Exception e){
- return false;
- }
- }
-
- /**
- * 鍙栨斁鍙栬矾寰勮绠�
- */
- public synchronized boolean rgvCalcDistance(Integer rgvNo, Integer outStn, Integer inStn){
- try {
- // 灏忚溅褰撳墠浣嶇疆
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvNo);
- Integer currPos = basRgvMap.getNowRoute(); // 鎴栬�呯敤 rgvProtocol.getRgvPosI()
-
- if(currPos == null || outStn == null || inStn == null){
- return false; // 鏃犳晥鏁版嵁鐩存帴鏀惧純
- }
-
- // 璁$畻涓ゆ璺濈
- List<Integer> routeToOut = RouteUtils.getRouteDis(currPos, outStn);
- List<Integer> routeToIn = RouteUtils.getRouteDis(currPos, inStn);
-
- int distOut = (routeToOut != null) ? routeToOut.size() : Integer.MAX_VALUE;
- int distIn = (routeToIn != null) ? routeToIn.size() : Integer.MAX_VALUE;
-
- // 璋冭瘯鏃ュ織
- log.info("RGV璺濈璁$畻: currPos={}, outStn={}, distOut={}, inStn={}, distIn={}",
- currPos, outStn, distOut, inStn, distIn);
-
- return distOut < distIn; // 鏀捐揣鐐规洿杩� 鈫� true
- } catch (Exception e) {
- log.error("RGV璺緞璺濈璁$畻寮傚父", e);
- return false;
- }
- }
-
- /*
- * 灏忚溅澶嶄綅
- * */
- public synchronized boolean rgvComplete(Integer rgvId,Integer step){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(step, new RgvCommand()))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
- return false;
- } else {
- log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId);
- return true;
- }
- }catch (Exception e){
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId);
- return false;
- }
- }
-
-
-
- /*
- * arm浠诲姟瀹屾垚鑷姩缁勬墭
- * */
- public synchronized void armMissionAccomplished() {
- try{
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta armSta : devp.getArmSta()) {
-
- // 鑾峰彇绔欑偣淇℃伅
- 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)) {
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�");
- continue;
- }
- } else {
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�");
- continue;
- }
-
- List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>()
- .eq("arm_no", armSta.getArmNo())
- .eq("sta_no_sou", armSta.getStaNo())
- .eq("status", 1));
- for (BasArm basArm : basArmList) {
- if (basArm.getStatus()!=1){
- continue;
- }
- try{
- List<BasArmMast> basArmMastList = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("status", 3)
- );
- if (basArmMastList.isEmpty()){
- 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)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
- }
- } catch (Exception e){
- log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage());
- }
- break;
- }
- }
- }
- } catch (Exception e){
- log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愮粍鎵樺け璐�"+e.getMessage());
- }
- }
- public synchronized void armMissionAccomplishedScanToCheckIn() {
- try{
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta armSta : devp.getArmSta()) {
-
- List<BasArmMast> basArmMastList = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", armSta.getArmNo())
- .eq("sta_no", armSta.getStaNo())
- .eq("status", 4)
- );
-
- if (basArmMastList.isEmpty()){
- 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();
- }
-
-// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
-// int workNo = commonService.getWorkNo(6);//寰呭畬鍠�
-// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-// staProtocol.setWorkNo(workNo);
-// staProtocol.setStaNo(armSta.getStaNoEnd().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// log.error("杈撻�佺嚎涓嬪彂5锛�"+workNo+","+armSta.getStaNoEnd());
-// if (!result) {
-// News.error(""+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-// }
- basArmMastService.updateArmMastStatus(basArmMastList.get(0).getArmNo(),basArmMastList.get(0).getSortingLine(),4,5);
-// }
- }
- }
- } catch (Exception e){
- log.error("缁勬墭瀹屾垚椹卞姩鎵樼洏鎵爜鍏ュ簱澶辫触"+e.getMessage());
- }
- }
-
- /*
- * arm浠诲姟涓嬪彂
- * */
- public synchronized void armTaskAssignment() {
- try{
- List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<>());
- for (BasArm basArm : basArmList) {
- if (basArm.getStatus()!=1){
- continue;
- }
- try{
- List<BasArmMast> basArmMastListError = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("status", 9)
- );
- if (!basArmMastListError.isEmpty()){
- log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒");
- continue;
- }
- List<BasArmMast> basArmMastListRuning = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("status", 1)
- );
- List<BasArmMast> basArmMastListRuning3 = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("status", 3)
- );
- if (basArmMastListRuning.isEmpty() && basArmMastListRuning3.isEmpty()){
- List<BasArmMast> basArmMastList = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("status", 0)
- );
- if (basArmMastList.isEmpty()){
- continue;
- }
- if (basArmMastList.size()>1){
- log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
- continue;
- }
- BasArmMast basArmMast = basArmMastList.get(0);
- List<BasArmMast> basArmMastListOrder = basArmMastService.selectList(
- new EntityWrapper<BasArmMast>()
- .eq("arm_no", basArm.getArmNo())
- .eq("sorting_line", basArm.getSortingLineSou())
- .eq("sku", basArmMast.getSku())
- .eq("order_no", basArmMast.getOrderNo())
- );
- if (basArmMastListOrder.size()==1){
- OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku());
-
- if (Cools.isEmpty(orderDetlValueResultUtil)){
- continue;
- }
- //璁㈠崟涓嬪彂
- 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);
- } else {
- log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
- }
- } catch (Exception e){
- log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
- continue;
- }
- }
- ArmTaskAssignmentParam armTaskAssignmentParam = new ArmTaskAssignmentParam(basArm.getSortingLine());
- //璁剧疆宸ヤ綔绌洪棿灏辩华
- ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam);
- if (result.getCode()==200){
- basArmMast.setStatus(1);
- basArmMastService.updateById(basArmMast);
- } else {
- log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
- }
- }
- } catch (Exception e){
- log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟涓嬪彂澶辫触"+e.getMessage());
- }
- }
- }catch (Exception e){
- log.error("arm浠诲姟涓嬪彂澶辫触"+e.getMessage());
}
}
--
Gitblit v1.9.1