From 7a3a72bf94a86641ead835b1b8be7644cffa9a53 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 06 一月 2023 08:12:19 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/CommonService.java | 180 +++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 129 insertions(+), 51 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 04bc957..378700e 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -3,6 +3,7 @@
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.*;
@@ -49,7 +50,7 @@
/**
* 鐢熸垚宸ヤ綔鍙�
- * @param wrkMk 0:鍏ュ簱 1 - 3000 ; 1:鎷f枡/骞舵澘/鐩樼偣 3001 - 6000 ; 2: 鍑哄簱 6001 -9000 ; 3:鍏朵粬 9001 -9999
+ * @param wrkMk
* @return workNo(宸ヤ綔鍙�)
*/
public int getWorkNo(Integer wrkMk) {
@@ -96,9 +97,38 @@
*/
@Transactional
public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
+// whsType = getWhsType(sourceStaNo, times);
+ switch (sourceStaNo){
+ case 101:
+ case 109:
+ case 117:
+ whsType=1; //1-8璐ф灦
+ slaveProperties.setDoubleDeep(false);
+ slaveProperties.setGroupCount(2);
+ break;
+ case 201:
+ slaveProperties.setDoubleDeep(true);
+ slaveProperties.setGroupCount(4);
+ whsType=2; //9-12璐ф灦
+ break;
+ case 207:
+ whsType=3; //13-14璐ф灦
+ slaveProperties.setDoubleDeep(false);
+ slaveProperties.setGroupCount(2);
+ break;
+ case 213:
+ slaveProperties.setDoubleDeep(true);
+ slaveProperties.setGroupCount(4);
+ whsType=4; //15-18璐ф灦
+ break;
+ default:
+ throw new CoolException("鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰嶅け璐ワ紝鍏ュ簱绔欙細" + sourceStaNo);
+ }
+
StartupDto startupDto = new StartupDto();
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = getWorkNo(0);
+
+
+
RowLastno rowLastno = rowLastnoService.selectById(whsType);
if (Cools.isEmpty(rowLastno)) {
throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
@@ -160,53 +190,46 @@
}
// 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
- 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;
- }
- }
- // 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;
- }
- }
+ if (null == locMast){
+ curRow = getCurRow(curRow);
+ if (curRow == 0){
+ crnNo = 0;
+ }else if( curRow <= 8 && curRow > 0){
+ crnNo=(curRow+1)/2;
+ }else if (curRow <= 12 && curRow >= 9){
+ crnNo=5;
+ }else if (curRow <= 14 && curRow >= 13){
+ crnNo=6;
+ }else if (curRow <= 18 && curRow >= 15){
+ crnNo=7;
+ }
+ if (curRow!=0 && !basCrnpService.checkSiteError(crnNo, true)) {
+ crnNo = 0;
}
}
+
+// // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
+// if (null == locMast) {
+// Shelves shelves = new Shelves(rowCount, crn_qty);
+// 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("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+// }
+// Integer crnNo1 = shelves.get(curRow);
+// crnNo1 = crnNo1 + divides*1;
+// if (basCrnpService.checkSiteError(crnNo1, true)) {
+// crnNo = crnNo1;
+// curRow = curRow + divides*4;
+// break;
+// }
+// }
+// }
if (crnNo == 0) {
throw new CoolException("娌℃湁鍙敤鐨勫爢鍨涙満");
@@ -225,6 +248,7 @@
if (!staNo.getAutoing().equals("Y")) {
throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
}
+
// 鏇存柊搴撲綅鎺掑彿
rowLastno.setCurrentRow(curRow);
rowLastnoService.updateById(rowLastno);
@@ -236,6 +260,7 @@
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;
@@ -270,20 +295,20 @@
if (times < rowCount) {
times = times + 1;
return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
- } else {
- times = 0;
}
// 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
if (locTypeDto.getLocType1() == 1) {
locTypeDto.setLocType1((short) 2);
- return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto, times);
+ 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);
@@ -308,4 +333,57 @@
}
}
+ /**
+ * 鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰�
+ */
+ private Integer getCurRow(Integer curRow) {
+ boolean sign=false;
+ int count=0;
+ while (!sign){
+ count=count+1;
+ if (count==5){
+ return 0;
+ }
+ switch (curRow){
+ case 1:
+ case 3:
+ case 5:
+ case 2:
+ case 4:
+ case 6:
+ curRow=curRow+2;
+ break;
+ case 7:
+ curRow=2;
+ break;
+ case 8:
+ curRow=1;
+ break;
+ case 13:
+ return 14;
+ case 14:
+ return 13;
+ case 9:
+ return 12;
+ case 10:
+ return 11;
+ case 11:
+ return 9;
+ case 12:
+ return 10;
+ case 15:
+ return 18;
+ case 16:
+ return 17;
+ case 17:
+ return 15;
+ case 18:
+ return 16;
+ default:
+ throw new CoolException("搴撲綅鎺掑彿寮傚父锛氭帓鍙凤細"+curRow);
+ }
+ sign = basCrnpService.checkSiteError((curRow+1)/2, true);
+ }
+ return curRow;
+ }
}
--
Gitblit v1.9.1