From 9a265d9ba9fab36a46d57add862096fa86ca37da Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期三, 17 八月 2022 16:47:52 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/CommonService.java | 230 +++++++++++++++++++++++++++-----------------------------
1 files changed, 111 insertions(+), 119 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index bbdd75b..bf10229 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -1,7 +1,9 @@
package com.zy.common.service;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.Arith;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -95,26 +97,9 @@
*/
@Transactional
public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
+// whsType = getWhsType(sourceStaNo, times);
StartupDto startupDto = new StartupDto();
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = getWorkNo(0);
- switch (sourceStaNo) {
- case 202:
- whsType = 2;
- break;
- case 205:
- whsType = 1;
- break;
- case 126:
- whsType = 3;
- break;
- case 110:
- whsType = 4;
- break;
- default:
- throw new CoolException("搴撲綅鎺掑彿鍒嗛厤閿欒, 婧愮珯鍙凤細" + sourceStaNo);
- }
RowLastno rowLastno = rowLastnoService.selectById(whsType);
if (Cools.isEmpty(rowLastno)) {
throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
@@ -131,95 +116,69 @@
// 鐩爣搴撲綅
LocMast locMast = null;
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
- if (!Cools.isEmpty(matNos)) {
- List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
- for (String locNo : locNos) {
- if (Utils.isShallowLoc(slaveProperties, locNo)) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
+// // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
+// if (!Cools.isEmpty(matNos)) {
+// List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
+// for (String locNo : locNos) {
+// if (Utils.isShallowLoc(slaveProperties, locNo)) {
+// continue;
+// }
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
+// // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
+// if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) {
+// if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
+// locMast = shallowLoc;
+// crnNo = locMast.getCrnNo();
+// break;
+// }
+// }
+// }
+// }
+// }
- // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
- if (staDescId == 10) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
- if (locMasts.size() > 0) {
- for (LocMast loc : locMasts) {
- if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
+// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
+// if (staDescId == 10) {
+// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+// if (locMasts.size() > 0) {
+// for (LocMast loc : locMasts) {
+// if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
+// continue;
+// }
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+// // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
+// if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
+// locMast = shallowLoc;
+// crnNo = locMast.getCrnNo();
+// break;
+// }
+// }
+// }
+// }
+// }
// 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
if (null == locMast) {
Shelves shelves = new Shelves(rowCount, crn_qty);
- // 1-4鎺�
- if (whsType == 1) {
- for (int i = 0; i < shelves.group; i ++) {
- curRow = shelves.start(curRow);
- if (curRow < 0) {
- throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
- }
- Integer crnNo1 = shelves.get(curRow);
- if (basCrnpService.checkSiteError(crnNo1, true)) {
- crnNo = crnNo1;
- break;
- }
+ int divides = (int) Arith.divides(1, curRow - 1, 4);
+ curRow = (int) Arith.remainder(curRow, 4);
+ if (curRow == 0) {
+ curRow = 4;
+ }
+ for (int i = 0; i < shelves.group; i ++) {
+ curRow = shelves.start(curRow);
+ if (curRow < 0) {
+ throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
}
- // 5-8鎺�
- } else if (whsType == 2) {
- curRow = curRow - 4;
- for (int i = 0; i < shelves.group; i ++) {
- curRow = shelves.start(curRow);
- if (curRow < 0) {
- throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
- }
- Integer crnNo1 = shelves.get(curRow);
- if (basCrnpService.checkSiteError(crnNo1 + 1, true)) {
- // 鍋忕Щ閲忚ˉ鍋�
- curRow = curRow + 4;
- crnNo = crnNo1 + 1;
- break;
- }
-
- }
- // 126绌烘澘鍏� 1-8鎺�
- } else {
- for (int i = 0; i < shelves.group; i ++) {
- curRow = shelves.start(curRow);
- if (curRow < 0) {
- throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
- }
- Integer crnNo1 = shelves.get(curRow);
- if (basCrnpService.checkSiteError(crnNo1, true)) {
- crnNo = crnNo1;
- break;
- }
+ Integer crnNo1 = shelves.get(curRow);
+ crnNo1 = crnNo1 + divides*1;
+ if (basCrnpService.checkSiteError(crnNo1, true)) {
+ crnNo = crnNo1;
+ curRow = curRow + divides*4;
+ break;
}
}
}
@@ -241,34 +200,67 @@
if (!staNo.getAutoing().equals("Y")) {
throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
}
+
// 鏇存柊搴撲綅鎺掑彿
rowLastno.setCurrentRow(curRow);
rowLastnoService.updateById(rowLastno);
- // 鏌ユ壘搴撲綅
- if (locMast == null) {
- if (Utils.isShallowLoc(slaveProperties, curRow)) {
- Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
- locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
- }
+
+ // 寮�濮嬫煡鎵惧簱浣� ==============================>>
+
+ // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
+// if (locMast == null) {
+// if (Utils.isShallowLoc(slaveProperties, curRow)) {
+// Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
+// locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
+// // todo:luxiaotao 濡傛灉鐢ㄦ祬鎺掓壘鍒扮殑娣卞簱浣嶏紝閭d箞鍒欓渶瑕佸垽鏂繖涓繁搴撲綅瀵瑰簲鐨勬祬搴撲綅鏄惁鏈夎揣锛團銆乆銆丏锛�
+// // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+// if (!locMastService.checkEmptyCount(locMast)) {
+// locMast = null;
+// }
+// }
if (Cools.isEmpty(locMast)) {
locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
+ // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+// if (!locMastService.checkEmptyCount(locMast)) {
+// locMast = null;
+// }
+// // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
+// if (null != locMast && Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) {
+// LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, locMast.getLocNo()));
+// if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
+// locMast = null;
+// }
+// }
+// // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
+// if (null != locMast && Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+// LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast.getLocNo()));
+// if (!shallowLoc.getLocSts().equals("O")) {
+// locMast = null;
+// }
+// }
}
- }
+// }
+
+ // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
if (Cools.isEmpty(locMast)) {
- // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
- if (locTypeDto.getLocType1() == 1) {
- locTypeDto.setLocType1((short) 2);
- return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto, times);
+ // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
+ if (times < rowCount) {
+ times = times + 1;
+ return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
}
- if (times >= rowCount) {
- log.error("娌℃湁绌哄簱浣�");
- throw new CoolException("娌℃湁绌哄簱浣�");
- }
- times = times + 1;
- return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
+
+// // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
+// if (locTypeDto.getLocType1() == 1) {
+// locTypeDto.setLocType1((short) 2);
+// return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
+// }
+ log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
+ throw new CoolException("娌℃湁绌哄簱浣�");
}
String locNo = locMast.getLocNo();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
// 杩斿洖dto
startupDto.setWorkNo(workNo);
startupDto.setCrnNo(crnNo);
@@ -293,4 +285,4 @@
}
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.1