From 945764de58898661a3f3197e58353141b5deaf91 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 22 十月 2025 16:21:15 +0800
Subject: [PATCH] 侧面输送线出入库流程对接
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 188 +++++++++++++++++++++++++++++++---------------
1 files changed, 127 insertions(+), 61 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 1ad3099..8ed5dc1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -105,6 +105,9 @@
@Value("${loc-move.enable}")
private boolean enable;
+ @Value("${config.outloading}")
+ private boolean outloading;
+
public synchronized void generateStoreWrkFile() {
try {
@@ -164,7 +167,7 @@
}
String BoxNo = barcodeThread.getBarcode();
if (Cools.isEmpty(BoxNo)) {
- log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}",inSta.getBarcode(),BoxNo);
+ log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}", inSta.getBarcode(), BoxNo);
continue;
}
TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
@@ -177,23 +180,36 @@
storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
}
storageEscalationParam.setBarcode(BoxNo);
+ storageEscalationParam.setMatIdList(staProtocol.getMatIdList());
+ storageEscalationParam.setFullPlt(staProtocol.isFullPlt() ? 1 : 0);
+ storageEscalationParam.setMpHigh((short) (staProtocol.getSiteId() < 200 ? 1 :staProtocol.isHigh() ? 2 : staProtocol.isLow() ? 1 : 0)); // 楂樺害锛屼晶闈㈢爜鐩樼殑楂樺害 浣�1锛岄珮2
log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
if (taskWrk == null) {
- log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}",storageEscalationParam);
+ log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}", storageEscalationParam);
continue;
+ } else {
+ if (-1 == taskWrk.getWrkNo()) {
+ back = true;
+ }
}
if (back) {
- log.info("鎵樼洏閫�鍥�==>{}锛寋}", BoxNo, errMsg);
+ staProtocol.setWorkNo((short) 9991);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.info("缁勬墭鍏ュ簱鎵樼洏閫�鍥炲懡浠ゆ帹閫佽緭閫佺嚎闃熷垪鎴愬姛==>{}锛寋}锛寋}", BoxNo, errMsg, taskWrk.getWrkNo());
} else {
StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
.eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ if (staDesc == null) {
+ log.error("缁勬墭鍏ュ簱璺緞涓嶅瓨鍦紝wrkNo={},crn={},stn_no={}", taskWrk.getWrkNo(), taskWrk.getCrnNo(), staProtocol.getSiteId());
+ continue;
+ }
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.info("缁勬墭鍏ュ簱鍛戒护鎺ㄩ�佽緭閫佺嚎闃熷垪鎴愬姛:{}", staProtocol);
}
}
@@ -213,46 +229,86 @@
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
// 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
- try {
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+ try {
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+ if (crnStn.getStaNo() >= 200) {
// 鏌ヨ宸ヤ綔妗�
- TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo()-1));
+ TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo() + 2));
if (taskWrk == null) {
continue;
}
- log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
- staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint()));
- boolean offer = false;
- try {
- offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
- } catch (Exception e) {
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
- }
- if (offer) {
- log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
- taskWrk.setStatus(5);
- taskWrk.setWrkSts(14);
- taskWrk.setCompleteTime(new Date());
- taskWrkService.updateById(taskWrk);
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint()));
+ staProtocol.setBarcode(taskWrk.getBarcode());
+ if (!Cools.isEmpty(taskWrk.getType())) {
+ staProtocol.setHeight(taskWrk.getType());
+ }
+ boolean offer = false;
+ try {
+ offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ staProtocol.setMp(taskWrk.getMp());
+ staProtocol.setLx(taskWrk.getLx());
+ staProtocol.setLev(taskWrk.getLev());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+ } catch (Exception e) {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
+ }
+ if (offer) {
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ taskWrk.setStatus(5);
+ taskWrk.setWrkSts(14);
+ taskWrk.setCompleteTime(new Date());
+ taskWrkService.updateById(taskWrk);
- } else {
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
- }
-// }
+ } else {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ }
+ } else {
+ // 鏌ヨ宸ヤ綔妗�
+ TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo() - 1));
+ if (taskWrk == null) {
+ continue;
+ }
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint()));
+ if (!Cools.isEmpty(taskWrk.getType())) {
+ staProtocol.setHeight(taskWrk.getType());
+ }
+ boolean offer = false;
+ try {
+ offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ } catch (Exception e) {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
+ }
+ if (offer) {
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ taskWrk.setStatus(5);
+ taskWrk.setWrkSts(14);
+ taskWrk.setCompleteTime(new Date());
+ taskWrkService.updateById(taskWrk);
+
+ } else {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ }
}
- } catch (Exception e) {
- log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
+
+// }
}
+ } catch (Exception e) {
+ log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
+ }
// }
}
@@ -339,6 +395,17 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
if (null == taskWrk) {
+ continue;
+ }
+
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+ if (!locMast.getLocSts().equals("O")) {
+ if (taskWrk.getWrkSts() == 2) {
+ log.error("鍏ュ簱WMS鍒嗛厤搴撲綅{}鏈夎锛屽簱浣嶇姸鎬佷负{}", locMast.getLocNo(), locMast.getLocSts());
+ taskWrk.setWrkSts(5);
+ taskWrk.setMemo("WMS鍒嗛厤搴撲綅鏈夎");
+ taskWrkService.updateById(taskWrk);
+ }
continue;
}
@@ -434,7 +501,7 @@
log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
continue;
}
- } else if (flag == 2){
+ } else if (flag == 2) {
LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("row1", (locMast.getRow1() - 1))
.eq("bay1", locMast.getBay1())
@@ -463,7 +530,7 @@
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ if (staProtocol.isAutoing() && (outloading || !staProtocol.isLoading()) && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
&& staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
@@ -625,7 +692,6 @@
//鏇存柊搴撲綅鐘舵��
LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setStatus("1");
locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
locMast.setModiTime(new Date());
locMast.setModiUser(9999L);
@@ -857,14 +923,14 @@
}
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
for (DevpSlave.Sta inSta : devp.getInSta()) {
- WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta());
+ TaskWrk taskWrk = taskWrkService.selectByTargetPoint(inSta.getBackSta() + "");
switch (inSta.getBackSta()) {
- case 116:
- if (pakout != null) {
+ case 101:
+ if (taskWrk != null) {
if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf1F1 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -877,12 +943,12 @@
devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE;
}
break;
- case 117:
- if (pakout != null) {
+ case 104:
+ if (taskWrk != null) {
if (devpThread.ioModeOf1F2 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf1F2 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -895,12 +961,12 @@
devpThread.ioModeOf1F2 = IoModeType.PAKIN_MODE;
}
break;
- case 118:
- if (pakout != null) {
+ case 107:
+ if (taskWrk != null) {
if (devpThread.ioModeOf1F3 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf1F3 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -913,12 +979,12 @@
devpThread.ioModeOf1F3 = IoModeType.PAKIN_MODE;
}
break;
- case 119:
- if (pakout != null) {
+ case 110:
+ if (taskWrk != null) {
if (devpThread.ioModeOf1F4 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf1F4 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -931,12 +997,12 @@
devpThread.ioModeOf1F4 = IoModeType.PAKIN_MODE;
}
break;
- case 120:
- if (pakout != null) {
+ case 113:
+ if (taskWrk != null) {
if (devpThread.ioModeOf1F5 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf1F5 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -950,11 +1016,11 @@
}
break;
case 203:
- if (pakout != null) {
+ if (taskWrk != null) {
if (devpThread.ioModeOf2F1 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf2F1 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -969,11 +1035,11 @@
break;
case 207:
- if (pakout != null) {
+ if (taskWrk != null) {
if (devpThread.ioModeOf2F2 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf2F2 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
@@ -988,11 +1054,11 @@
break;
case 212:
- if (pakout != null) {
+ if (taskWrk != null) {
if (devpThread.ioModeOf2F3 != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
devpThread.ioModeOf2F3 = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
&& !devpThread.getStation().get(inSta.getBackSta()).isLoading()
&& devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
--
Gitblit v1.9.1