From ce641926a957d238b202aa0d9dac3b8f15aff153 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期三, 14 五月 2025 14:43:00 +0800
Subject: [PATCH] 123
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 175 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 113 insertions(+), 62 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 99f127d..6a022bd 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -224,20 +224,20 @@
}
// 鍒ゆ柇閲嶅宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
- //杩囨护鍒ゆ柇锛岄槻姝㈡嫞鏂欏啀鍏ュ簱璐х墿锛岀粡杩囧叆搴撶珯鍐嶅叆搴撴椂锛岃閫�鍥炲埌閫�搴撶珯
- WrkMast wrkMast1 = wrkMastMapper.selectPakInStepBarcode(barcode);
- if (wrkMast1 != null) {
- if (wrkMast1.getIoType() == 103 || wrkMast1.getIoType() == 107 || wrkMast1.getIoType() == 104) {
+ WrkMast wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
+ if (wrkMast != null && wrkMast.getWrkSts() == 2) {
+ int wrkNo1 = basDevpService.count(new QueryWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkNo1 != 0) {
+ News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ if (ledThread != null) {
+ News.error(":鎵爜澶辫触锛岃閲嶈瘯");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo()));
+ }
continue;
}
- }
- if (wrkMast != null) {
- News.error("" + mark + " - 4" + " - 宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- Integer wrkNo = wrkMast.getWrkNo();
barcodeThread.setBarcode("");
- staProtocol.setWorkNo(Short.parseShort(wrkNo + ""));
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ staProtocol.setWorkNo(Short.parseShort(wrkMast.getWrkNo() + ""));
+ staProtocol.setStaNo(Short.parseShort(wrkMast.getStaNo() + ""));
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
@@ -246,12 +246,19 @@
log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
if (!result) {
+ News.error(":鏇存柊plc绔欑偣淇℃伅澶辫触");
log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ continue;
}
+
+ }
+ WrkMast checkPick = wrkMastMapper.selectOne(new QueryWrapper<WrkMast>()
+ .eq("barcode", barcode)
+ .in("io_type", 107, 103, 57));
+ if (!Cools.isEmpty(checkPick)) {
continue;
}
-
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -263,7 +270,7 @@
param.setLocType1(locTypeDto.getLocType1());
if (inSta.getStaNo() == 102) {
param.setLocType2((short) 3);
- } else if (inSta.getStaNo() == 211) {
+ } else if (inSta.getStaNo() == 211 || inSta.getStaNo() == 104) {
param.setLocType1((short) 5);
param.setLocType2((short) 4);
} else if (inSta.getStaNo() == 201) {
@@ -303,16 +310,17 @@
staProtocol.setWorkNo((short) 9999);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
-
// led 寮傚父鏄剧ず
if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
}
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+
+
}
} catch (Exception e) {
@@ -410,10 +418,20 @@
staProtocol = staProtocol.clone();
}
- if (barcodeThread == null) {
+ String barcode = "";
+ if (barcodeThread == null && staProtocol.getSiteId() != 104) {
continue;
+ } else if (staProtocol.getSiteId() == 104) {
+ if (staProtocol.getWorkNo() == 9996) {
+ // 鑾峰彇鍒版嫞鏂欎换鍔$殑鎵樼洏鐮�
+ WrkMast wrkMast = wrkMastMapper.selectOne(new QueryWrapper<WrkMast>().eq("wrk_sts", 14).eq("io_type", 103).eq("source_sta_no", 104));
+ if (wrkMast != null) {
+ barcode = wrkMast.getBarcode();
+ }
+ }
+ } else {
+ barcode = barcodeThread.getBarcode();
}
- String barcode = barcodeThread.getBarcode();
// 灏哄妫�娴嬪紓甯�
boolean back = false;
String errMsg = "";
@@ -523,7 +541,7 @@
StaDesc staDesc = staDescService.getOne(wrapper);
if (Cools.isEmpty(staDesc)) {
News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo((short) 9989);
+ staProtocol.setWorkNo((short) 9999);
staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -872,7 +890,7 @@
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc, mark);
+ moveLocForDeepLoc(slave, shallowLoc, mark, wrkMast.getTenant());
// 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
}
@@ -902,6 +920,9 @@
crnCommand.setDestinationPosXTwo(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosYTwo(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZTwo(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (crnStn.getStaNo() == 202) {
+ crnCommand.setSourcePosYTwo((short) 6); // 婧愬簱浣嶅垪
+ }
} else {
if (workMode == 1) {
crnCommand.setTaskMode(CrnTaskModeType.PAKIN);
@@ -914,6 +935,9 @@
crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (workMode == 1 && crnStn.getStaNo() == 202) {
+ crnCommand.setSourcePosY((short) 6); // 婧愬簱浣嶅垪
+ }
}
// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
@@ -1041,7 +1065,7 @@
wrkMast.setUpdMk("Y");
wrkMastMapper.updateById(wrkMast);
// 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
- moveLocForDeepLoc(slave, shallowLoc, mark);
+ moveLocForDeepLoc(slave, shallowLoc, mark, wrkMast.getTenant());
}
News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
continue;
@@ -1080,6 +1104,9 @@
crnCommand.setDestinationPosXTwo(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosYTwo(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZTwo(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+ if (crnStn.getStaNo() == 202) {
+ crnCommand.setDestinationPosYTwo((short) 6); // 婧愬簱浣嶅垪
+ }
} else {
if (workMode == 1) {
crnCommand.setTaskMode(CrnTaskModeType.PAKIN);
@@ -1092,6 +1119,9 @@
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+ if (workMode == 1 && crnStn.getStaNo() == 202) {
+ crnCommand.setDestinationPosY((short) 6); // 婧愬簱浣嶅垪
+ }
}
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
@@ -1532,10 +1562,10 @@
staProtocol = staProtocol.clone();
}
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
// 灏哄妫�娴嬪紓甯�
boolean back = false;
String errMsg = "";
@@ -1576,9 +1606,9 @@
if (!staProtocol.isLoading()) {
continue;
}
- if (!staProtocol.isPakMk()) {
- continue;
- }
+// if (!staProtocol.isPakMk()) {
+// continue;
+// }
staProtocol.setWorkNo((short) 9999);
News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", emptyInSta.getStaNo(), errMsg, (short) 9999);
staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
@@ -1610,7 +1640,7 @@
param.setLocType1(locTypeDto.getLocType1());
if (emptyInSta.getStaNo() == 102) {
param.setLocType2((short) 3);
- } else if (emptyInSta.getStaNo() == 211) {
+ } else if (emptyInSta.getStaNo() == 211 || emptyInSta.getStaNo() == 104) {
param.setLocType1((short) 5);
param.setLocType2((short) 4);
} else if (emptyInSta.getStaNo() == 201) {
@@ -1923,7 +1953,7 @@
* 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
* tip锛氬悓姝�
*/
- private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
+ private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark, Long tenant) {
try {
News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
@@ -2007,7 +2037,7 @@
wrkMast.setCrnNo(crn.getId());
wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
- wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+ wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
@@ -2015,6 +2045,7 @@
wrkMast.setLinkMis("N");
wrkMast.setAppeTime(new Date());
wrkMast.setModiTime(new Date());
+ wrkMast.setTenant(tenant);
int res = wrkMastMapper.insert(wrkMast);
if (res == 0) {
News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
@@ -2031,6 +2062,7 @@
VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setModiTime(new Date());
+ wrkDetl.setTenant(tenant);
if (!wrkDetlService.save(wrkDetl)) {
News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
@@ -2298,7 +2330,7 @@
public synchronized void autoEmptyOut() {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- Integer autoOutSite = 12;
+ Integer autoOutSite = 103;
//濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
StaProtocol staProtocol = devpThread.getStation().get(autoOutSite);
if (staProtocol == null) {
@@ -2308,32 +2340,27 @@
}
if (staProtocol.isAutoing() //鑷姩
&& !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
+// && staProtocol.isOutEnable() //鍙嚭淇″彿
&& staProtocol.getWorkNo() == 0) {
- WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite);
- if (null != pakoutEmpty) {
- return;
+// WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite);
+// if (null != pakoutEmpty) {
+// return;
+// }
+
+ LocMast byId = locMastService.getById("0200405");
+ if (byId != null&&byId.getLocSts().equalsIgnoreCase("D")){
+
}
- try {
- String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/auto/emptyOut/v1").build().doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- JSONObject data = (JSONObject) jsonObject.get("data");
- News.info((String) data.get("msg"));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
+
}
}
+ @Autowired
+ private WrkMastService wrkMastService;
+
public synchronized void autoEmptyIn() {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- Integer autoInSite = 12;
- StaProtocol staProtocol = devpThread.getStation().get(autoInSite);
+ StaProtocol staProtocol = devpThread.getStation().get(103);
if (staProtocol == null) {
return;
} else {
@@ -2341,20 +2368,44 @@
}
if (staProtocol.isAutoing() //鑷姩
&& staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆淇″彿
+// && staProtocol.isInEnable() //鍙叆淇″彿
&& (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() >= 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
) {
try {
- LocTypeDto locTypeDto = new LocTypeDto((short) 1, (short) 1, (short) 1);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ int workNo = commonService.getWorkNo(0);
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(2L);
+ wrkMast.setIoPri(13D);
+ wrkMast.setIoType(10);
+ wrkMast.setCrnNo(1);
+ wrkMast.setSourceStaNo(101);
+ wrkMast.setStaNo(103);
+ wrkMast.setLocNo("0200405");
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歂
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ wrkMast.setMemo("鑷姩绌烘墭鍏ュ簱");
+ boolean res = wrkMastService.save(wrkMast);
-
- 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"));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.getById("0200405");
+ if (locMast.getLocSts().equals("O")) {
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiUser(789L);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
}
} catch (Exception e) {
e.printStackTrace();
--
Gitblit v1.9.1