From 5ae3b6c3d604f16c2ecc5057d720d5d79c8c091b Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 23 十一月 2025 14:21:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 257 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 184 insertions(+), 73 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 498d42e..0a2b19e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -111,6 +111,8 @@
private BasArmMastService basArmMastService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private BasDevpOptService basDevpOptService;
@Value("${wms.url}")
private String wmsUrl;
@@ -121,7 +123,7 @@
private Integer inventoryNumber;
public Integer wrkNo = 10001;
- public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
+ public static final List<Integer> LEFT_POSITION = Arrays.asList(1004,1014,1018,1028,1035,2006,2012,2018,2024,2030);
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -201,6 +203,7 @@
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
}
staProtocol.setWorkNo(wrkNo);
+ staProtocol.setErrCode(errMsg);
News.info("寮傚父鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -229,6 +232,7 @@
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
}
staProtocol.setWorkNo(wrkNo);
+ staProtocol.setErrCode(errMsg);
News.info("鏉$爜鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -299,7 +303,6 @@
}
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
SearchLocParam param = new SearchLocParam();
param.setBarcode(barcode);
param.setIoType(1);
@@ -334,6 +337,10 @@
staProtocol.setWorkNo(wrkNo);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ switch (jsonObject.getInteger("code")){
+ case 700: staProtocol.setErrCode("鏈粍鎵�");break;
+ case 500: staProtocol.setErrCode("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");break;
+ }
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
News.info("浠诲姟涓嬪彂鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛岄敊璇紪鍙穥},浠诲姟鍙凤細{}", inSta.getStaNo(), errMsg,jsonObject.getInteger("code"),wrkNo);
wrkNo++;
@@ -496,7 +503,6 @@
staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()));
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂4锛�"+9996+","+(pickSta.getStaNo().shortValue()-(short)1));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -1079,7 +1085,7 @@
//mark - 3 - ....
this.locToLoc(crn, crnProtocol,mark);
//棰勮皟搴�
- this.crnRebackHp(crnProtocol, crnThread);
+// this.crnRebackHp(crnProtocol, crnThread);
}
// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -1102,6 +1108,9 @@
case 5: x =18; break;
}
+ if(crnProtocol.getCrnNo() != 5){
+ return;
+ }
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
return;
@@ -1375,6 +1384,13 @@
staProtocol2 = staProtocol2.clone();
}
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);
@@ -1398,6 +1414,9 @@
if (wrkMastMapper.selectWorking(slave.getId()) != null) {
break;
// return;
+ }
+ if(staProtocol4004.isLoading()){
+ continue;
}
// 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
CrnCommand crnCommand = new CrnCommand();
@@ -1437,6 +1456,9 @@
break;
// return;
}
+ if(staProtocol4004.isLoading()){
+ continue;
+ }
// 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
CrnCommand crnCommand = new CrnCommand();
crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
@@ -1466,6 +1488,8 @@
}
}
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) {
@@ -1473,6 +1497,20 @@
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) {
@@ -1490,6 +1528,12 @@
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();
@@ -1992,7 +2036,7 @@
BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
+ crnProtocol.getUuid(), // 缂栧彿
wrkMast.getWrkNo(), // 宸ヤ綔鍙�
now, // 鍙戠敓鏃堕棿
null, // 缁撴潫鏃堕棿
@@ -2040,7 +2084,7 @@
BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
+ crnProtocol.getUuid(), // 缂栧彿
null, // 宸ヤ綔鍙�
now, // 鍙戠敓鏃堕棿
null, // 缁撴潫鏃堕棿
@@ -2222,7 +2266,8 @@
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
if (null == wrkMast) {
if(staProtocol.getWorkNo() > 9999){ //寮傚父閫�鍑�
- MessageQueue.offer(SlaveType.Led, 2, new Task(3, "寮傚父閫�鍑�"));
+ String err = basDevpOptService.getErr(staProtocol.getWorkNo());
+ MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, err));
}
continue;
}
@@ -2238,6 +2283,12 @@
break;
case 10:
ledCommand.setTitle("绌烘澘鍏ュ簱");
+ break;
+ case 12:
+ ledCommand.setTitle("鐗╂枡琛旀帴");
+ break;
+ case 57:
+ ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
break;
case 101:
ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
@@ -2262,6 +2313,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());
@@ -2333,6 +2398,8 @@
// 鍛戒护闆嗗悎
boolean reset = true;
for (Integer staNo : led.getStaArr()) {
+// System.out.println("staArr = " + staNo);
+
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
if (staProtocol == null) { continue; }
@@ -2351,6 +2418,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());
+// }
}
}
}
@@ -2954,52 +3024,18 @@
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");
- }
-
- }
-
-
-
+ Integer site = rgvProtocol.getRgvNo() == 1 ? rgvProtocol.getRgvPosI1() : rgvProtocol.getRgvPosI2();
+ if (site == 0) {
+ continue;
}
+ rgvSlave.setNowRoute(site); // 鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ if (!basRgvMapService.updateById(rgvSlave)) {
+ log.error("灏忚溅鏇存柊鍦板浘澶辫触");
+ }
+
}
}catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
+ log.error("灏忚溅鏇存柊鍦板浘澶辫触");
}
}
@@ -3276,6 +3312,9 @@
// 鑾峰彇RGV淇℃伅
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
if (rgvProtocol.getStatusType1() != RgvStatusType.IDLE && rgvProtocol.getModeType() != RgvModeType.AUTO) {
continue;
}
@@ -3330,6 +3369,7 @@
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ basRgvMapService.updateById(basRgvMap);
Integer workNo = 0;
if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){
workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2();
@@ -3384,7 +3424,7 @@
continue;
}
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+ if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
flag = true;
}
if (!flag) {
@@ -3396,6 +3436,7 @@
}
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ basRgvMapService.updateById(basRgvMap);
Integer workNo = 0;
if(basRgv.getPakToCrn().equals("1")){
workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
@@ -3490,12 +3531,13 @@
basRgv.setPakAll("1");
basRgvService.updateById(basRgv);
rgvThread.setPakMk(true);
+
}
- List<WrkMastSta> wrkMastStaPakingNum = wrkMastStaService.selectPakingWrkNum(basRgv.getRgvNo());
- if(wrkMastStaPakingNum.size() <1){
- basRgv.setPakAll("1"); //闃叉鏃犲叾浠栦换鍔℃椂锛岃繛缁彇璐ф棤娉曟仮澶�
- basRgvService.updateById(basRgv);
- }
+// List<WrkMastSta> wrkMastStaPakingNum = wrkMastStaService.selectPakingWrkNum(basRgv.getRgvNo());
+// if(wrkMastStaPakingNum.size() <1){
+// basRgv.setPakAll("1"); //闃叉鏃犲叾浠栦换鍔℃椂锛岃繛缁彇璐ф棤娉曟仮澶�
+// basRgvService.updateById(basRgv);
+// }
}
}
@@ -3509,6 +3551,7 @@
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+
if (rgvProtocol == null) {
continue;
}
@@ -3521,6 +3564,9 @@
if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
rgvThread.setPaking(true);
}
+ if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && rgvProtocol.getStatusType1() == RgvStatusType.IDLE){
+ rgvThread.setPaking(true);
+ }
if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
basRgv.setPakAll("1");
basRgvService.updateById(basRgv);
@@ -3529,7 +3575,7 @@
// 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
- && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) {
+ && rgvThread.isPaking()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
// rgvRunWrkMastInTest();
@@ -3676,7 +3722,7 @@
if(wrkMastSta3 != null ){
List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
- if(wrkMastStaPaking.size() < 1 ){//宸叉湁鏍囪涓嶅啀鏍囪
+ if(wrkMastStaPaking.size() < 1 && !wrkMastSta3.getWrkNo().equals(wrkMastSta.getWrkNo())){//宸叉湁鏍囪涓嶅啀鏍囪
wrkMastSta3.setMk(1);
basRgv.setPakAll("0");
basRgvService.updateById(basRgv);
@@ -3775,13 +3821,13 @@
basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
basRgvMapService.updateById(basRgvMap);
WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
- if( null == wrkMastSta ) {
- News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
- continue;
- }
WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
if(basRgv.getPakToCrn().equals("0")){
wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//澶勭悊鎺ラ┏浠诲姟鏃讹紝杩炵画鍙彇鎺ラ┏浠诲姟
+ }
+ if( null == wrkMastSta ) {
+ News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+ continue;
}
boolean result = false;
if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
@@ -3793,11 +3839,28 @@
continue;
}
+ if(wrkMastSta != null &&LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
+ StaProtocol staProtocolSta = devpThread.getStation().get(wrkMastSta.getStaEnd());
+ if (staProtocolSta == null) {
+ News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+ continue;
+ } else {
+ staProtocolSta = staProtocolSta.clone();
+ }
+ if(staProtocolSta.isLoading()){
+ 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(wrkMastSta.getMk() == 1){//鑻ュ凡鎵ц
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
+ }
if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
basRgv.setPakToCrn("0");
basRgvService.updateById(basRgv);
@@ -3807,8 +3870,7 @@
}
}
}
-
- if(wrkMastSta3 != null ){
+ if(wrkMastSta3 != null && !wrkMastSta3.getWrkNo().equals(wrkMastSta.getWrkNo())){
List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
if(wrkMastStaPaking.size() < 1){
wrkMastSta3.setMk(1);
@@ -3816,7 +3878,7 @@
basRgvService.updateById(basRgv);
try{
wrkMastStaMapper.updateById(wrkMastSta3);
- log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+ log.error("閿佸畾鐩搁殧绔欑偣浠诲姟:"+ wrkMastSta3.getWrkNo());
}catch (Exception e){
log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
}
@@ -3826,7 +3888,6 @@
basRgvService.updateById(basRgv);
rgvThread.setPaking(false);
-// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
try{
wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
@@ -4318,7 +4379,7 @@
//arm浠诲姟瀹屾垚鑷姩缁勬墭
ReturnT<String> result = new PostMesDataUtils().postMesData("arm浠诲姟瀹屾垚鑷姩缁勬墭",wmsUrl, wmsComb, combParam);
if (result.getCode()==200){
- basArmMastService.updateArmMastStatus(basArm.getArmNo(),basArm.getSortingLineSou(),3,4);
+ basArmMastService.updateArmMastStatus(basArm.getArmNo(),basArm.getSortingLineSou(),3,5);
} else {
armTaskAssignmentCallApiLogSave(staProtocol, "鑷姩缁勬墭澶辫触", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false);
// log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯");
@@ -4487,7 +4548,7 @@
new EntityWrapper<BasArmMast>()
.eq("arm_no", basArm.getArmNo())
.eq("sorting_line", basArm.getSortingLineSou())
- .eq("sku", basArmMast.getSku())
+ .eq("matnr", basArmMast.getMatnr())
.eq("order_no", basArmMast.getOrderNo())
.eq("binding_tags", basArmMast.getBindingTags())
);
@@ -4512,7 +4573,7 @@
.eq("status", 2)
.eq("binding_tags", basArmMast.getBindingTags())
);
- Double anfmeSignOne = basArmMastService.selectBasArmMastSignValue(basArmMastOne.getOrderNo(), basArmMastOne.getSku(),basArmMastOne.getBindingTags());
+ Double anfmeSignOne = basArmMastService.selectBasArmMastSignValue(basArmMastOne.getOrderNo(), basArmMastOne.getMatnr(),basArmMastOne.getBindingTags());
if (anfmeSignOne>1D){
armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦紒锛侊紒", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
@@ -4521,12 +4582,12 @@
}
}
- OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku());
+ OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getMatnr());
if (Cools.isEmpty(orderDetlValueResultUtil)){
continue;
}
- Double anfmeSign = basArmMastService.selectBasArmMastSignValue(basArmMast.getOrderNo(), basArmMast.getSku(),basArmMast.getBindingTags());
+ Double anfmeSign = basArmMastService.selectBasArmMastSignValue(basArmMast.getOrderNo(), basArmMast.getMatnr(),basArmMast.getBindingTags());
orderDetlValueResultUtil.setAnfme(anfmeSign);
//璁㈠崟涓嬪彂
try{
@@ -4714,10 +4775,12 @@
// 鍒ゆ柇閲嶅宸ヤ綔妗�
List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("source_sta_no", outStaAgv.getStaNo()));
if (!basAgvMastList.isEmpty()) {
- News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岃绛夊緟浠诲姟鎵ц瀹屾瘯锛歿}", outStaAgv.getStaNo(), barcode);
+// News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岃绛夊緟浠诲姟鎵ц瀹屾瘯锛歿}", outStaAgv.getStaNo(), barcode);
continue;
}
-
+ if(barcode.equals("0")){
+ continue;
+ }
List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().eq("barcode", barcode));
if (!locMastList.isEmpty()) {
News.info("{}鍙风珯鐐规潯鐮佷俊鎭噸澶嶏細{}", outStaAgv.getStaNo(), barcode);
@@ -4823,6 +4886,52 @@
}
}
+ /*
+ * agv浠诲姟鐢熸垚 寮傚父閫佸埌鍏ュ簱鍙�
+ * */
+ public synchronized void agvTaskCreateException() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ Integer outStaAgv = 1041;
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(outStaAgv);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (!staProtocol.isLoading()){
+ continue;
+ }
+
+ if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 10000) {
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("sta_no", 1037));
+ if (!basAgvMastList.isEmpty()) {
+ News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岀瓑寰呬换鍔℃墽琛屽畬姣�!!!", outStaAgv);
+ continue;
+ }
+ // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+ BasAgvMast basAgvMast = new BasAgvMast();
+ try {
+ basAgvMast.setTaskNo(staProtocol.getWorkNo());
+ basAgvMast.setSourceStaNo(1041);
+ basAgvMast.setStaNo(1037);
+ basAgvMast.setDevpId(devp.getId());
+ basAgvMast.setIoType(3);//杈撻��==銆嬭緭閫佺嚎绔欑偣 3
+ basAgvMastService.insert(basAgvMast);
+ break;
+ } catch (Exception e) {
+ News.error(JSON.toJSONString(e.getMessage()));
+ }
+ }
+ }
+ }
+
/*
* agv浠诲姟涓嬪彂:AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣
@@ -4866,6 +4975,8 @@
}
}
+
+
/*
* agv浠诲姟涓嬪彂:AGV搴撲綅==銆婣GV搴撲綅
* */
--
Gitblit v1.9.1