From 524dec8539182129cc9bfaba7fc645c848ecba22 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 25 十二月 2025 10:04:57 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 336 +++++++++++++++++++++++++++++++------------------------
1 files changed, 188 insertions(+), 148 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 bfefac2..08d3b97 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2464,167 +2464,207 @@
}
/**
- * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
+ * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆
* tip锛氬悓姝�
*/
private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
+ Object lock = redisUtil.get(RedisConstantType.TRANSFER_LOCK + shallowLoc.getLocNo());
+ if (lock != null) {
+ return false;
+ }
+
+ redisUtil.set(RedisConstantType.TRANSFER_LOCK + shallowLoc.getLocNo(), "lock", 15);
try {
- News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
- List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
- LocMast loc = null;
- for (Integer row : rows) {
- if (Utils.isDeepLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
- if (loc != null) {
- if (crn.getId() == 1) {
- if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
- continue;
- }
- }
-
- if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
- if (!shallowLoc1.getLocSts().equals("O")) {
- loc = null;
- }
- }
- }
- if (null != loc) {
- break;
- }
- }
- }
- if (null == loc) {
- for (Integer row : rows) {
- if (Utils.isShallowLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
- if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
- if (crn.getId() == 1) {
- if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
- continue;
- }
- }
-
- String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
- LocMast deepLoc1 = locMastService.selectById(deepLoc);
- if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
- loc = null;
- }
- }
-
- if (null != loc) {
- break;
- }
- }
- }
+ int lane = 0;
+ if (crnProtocol.getCrnNo() == 1) {
+ lane = crnProtocol.getCrnLane();
}
- if (null == loc) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
- return false;
-// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+ HashMap<String, Object> requestParam = new HashMap<>();
+ requestParam.put("locNo", shallowLoc.getLocNo());
+ requestParam.put("lane", lane);
+
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/transfer/loc/v1")
+ .setJson(JSON.toJSONString(requestParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ return true;
} else {
- String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo());
- if (deepLoc2 != null) {
- LocMast locnew = locMastService.selectById(deepLoc2);
- if (locnew != null && locnew.getLocSts().equals("O")) {
- loc = locnew;
- }
- }
-
-
- try {
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- // 淇濆瓨宸ヤ綔妗�
- WrkMast 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(shallowLoc.getLocNo()); // 婧愬簱浣�
- wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
- wrkMast.setFullPlt(shallowLoc.getLocSts().equals("D") ? "N" : "Y"); // 婊℃澘
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setAppeTime(new Date());
- wrkMast.setModiTime(new Date());
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
-// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- return true;
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
- if (shallowLoc.getLocSts().equals("F")) {
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
-
- for (LocDetl locDetl : locDetls) {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(locDetl);
- 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)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
- return true;
- }
- }
- }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
- shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
- shallowLoc.setModiTime(new Date());
- if (!locMastService.updateById(shallowLoc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
-// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- return true;
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 婧愬簱浣嶅嚭搴撳け璐�");
-// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- return true;
- }
- // 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocSts().equals("O")) {
- loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
- if (!locMastService.updateById(loc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- return true;
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 绉昏浆澶辫触");
-// throw new CoolException("绉昏浆澶辫触");
- return true;
- }
- } catch (Exception e) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
- }
+ News.error("" + mark + " - 5" + " - 璇锋眰绉诲簱鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/transfer/loc/v1", JSON.toJSONString(requestParam), response);
}
-
} catch (Exception e) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ e.printStackTrace();
}
- return true;
+ return false;
}
+// /**
+// * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
+// * tip锛氬悓姝�
+// */
+// private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
+// try {
+// News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
+// List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
+// LocMast loc = null;
+// for (Integer row : rows) {
+// if (Utils.isDeepLoc(slaveProperties, row)) {
+// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+// if (loc != null) {
+// if (crn.getId() == 1) {
+// if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+// continue;
+// }
+// }
+//
+// if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+// LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
+// if (!shallowLoc1.getLocSts().equals("O")) {
+// loc = null;
+// }
+// }
+// }
+// if (null != loc) {
+// break;
+// }
+// }
+// }
+// if (null == loc) {
+// for (Integer row : rows) {
+// if (Utils.isShallowLoc(slaveProperties, row)) {
+// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+//
+// if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+// if (crn.getId() == 1) {
+// if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+// continue;
+// }
+// }
+//
+// String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
+// LocMast deepLoc1 = locMastService.selectById(deepLoc);
+// if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
+// loc = null;
+// }
+// }
+//
+// if (null != loc) {
+// break;
+// }
+// }
+// }
+// }
+//
+// if (null == loc) {
+// News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+// return false;
+//// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+// } else {
+// String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo());
+// if (deepLoc2 != null) {
+// LocMast locnew = locMastService.selectById(deepLoc2);
+// if (locnew != null && locnew.getLocSts().equals("O")) {
+// loc = locnew;
+// }
+// }
+//
+//
+// try {
+// // 鑾峰彇宸ヤ綔鍙�
+// int workNo = commonService.getWorkNo(0);
+// // 淇濆瓨宸ヤ綔妗�
+// WrkMast 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(shallowLoc.getLocNo()); // 婧愬簱浣�
+// wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+//// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+// wrkMast.setFullPlt(shallowLoc.getLocSts().equals("D") ? "N" : "Y"); // 婊℃澘
+// wrkMast.setPicking("N"); // 鎷f枡
+// wrkMast.setExitMk("N"); // 閫�鍑�
+// wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+// wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+// wrkMast.setLinkMis("N");
+// wrkMast.setAppeTime(new Date());
+// wrkMast.setModiTime(new Date());
+// int res = wrkMastMapper.insert(wrkMast);
+// if (res == 0) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
+//// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// return true;
+// }
+// // 宸ヤ綔妗f槑缁嗕繚瀛�
+// if (shallowLoc.getLocSts().equals("F")) {
+// List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+//
+// for (LocDetl locDetl : locDetls) {
+// WrkDetl wrkDetl = new WrkDetl();
+// wrkDetl.sync(locDetl);
+// 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)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+//// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+// return true;
+// }
+// }
+// }
+// // 淇敼婧愬簱浣嶇姸鎬�
+// if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+// shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+// shallowLoc.setModiTime(new Date());
+// if (!locMastService.updateById(shallowLoc)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+//// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+// return true;
+// }
+// } else {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 婧愬簱浣嶅嚭搴撳け璐�");
+//// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+// return true;
+// }
+// // 淇敼鐩爣搴撲綅鐘舵��
+// if (loc.getLocSts().equals("O")) {
+// loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+// loc.setModiTime(new Date());
+// if (!locMastService.updateById(loc)) {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+//// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+// return true;
+// }
+// } else {
+// News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 绉昏浆澶辫触");
+//// throw new CoolException("绉昏浆澶辫触");
+// return true;
+// }
+// } catch (Exception e) {
+// News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
+// }
+// }
+//
+//
+// } catch (Exception e) {
+// News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
+//// e.printStackTrace();
+//// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// return true;
+// }
+
/**
* 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
*/
--
Gitblit v1.9.1