From 9268cd77b4e864b901a8b0bf965f441f2e8c4fbd Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期日, 04 一月 2026 08:06:14 +0800
Subject: [PATCH] #1
---
src/main/java/com/zy/common/service/CommonService.java | 153 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 108 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index c3ccb4a..313ed9c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -1,6 +1,7 @@
package com.zy.common.service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -16,6 +17,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Collections;
import java.util.List;
/**
@@ -100,13 +102,13 @@
StartupDto startupDto = null;
StringBuilder builder = new StringBuilder();
try {
- startupDto = searchLocNoByCrnNo(staDescId, sourceStaNo, findLocNoAttributeVo, locTypeDto);
+ startupDto = searchLocNoByCrnNo(staDescId, sourceStaNo, findLocNoAttributeVo, locTypeDto,barcode);
} catch (Exception e) {
builder.append(e.getMessage()).append(",");
}
if(startupDto == null) {
- builder.append("鎵句笉鍒扮┖搴撲綅");
+ builder.append("鎵句笉鍒扮┖搴撲綅--->" + barcode);
throw new CoolException(builder.toString());
}
@@ -123,14 +125,17 @@
* @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
*/
@Transactional
- public StartupDto searchLocNoByCrnNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto) {
+ public StartupDto searchLocNoByCrnNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto,String barcode) {
LocMast locMast = null;
if (staDescId == 10) {
//鎼滅储绌烘墭鐩�
- locMast = searchEmptyPallet(locTypeDto);
+// locMast = searchEmptyPallet(locTypeDto);
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("barcode",barcode));
+
}else {
//婊℃墭鐩�
- locMast = searchMaxPallet(findLocNoAttributeVo, locTypeDto);
+// locMast = searchMaxPallet(findLocNoAttributeVo, locTypeDto);
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>().in("loc_sts","O","P").eq("barcode",barcode));
}
if(locMast == null) {
@@ -139,7 +144,7 @@
StartupDto startupDto = new StartupDto();
-// // 鑾峰彇鐩爣绔�
+ // 鑾峰彇鐩爣绔�
// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>().eq("type_no", staDescId).eq("stn_no", sourceStaNo).eq("crn_no", locMast.getCrnNo());
// StaDesc staDesc = staDescService.selectOne(wrapper);
// if (Cools.isEmpty(staDesc)) {
@@ -170,10 +175,14 @@
List<String> locNos = locDetlService.getSameDetlList(findLocNoAttributeVo.getMatnr());
for (String locNo : locNos) {
//鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
for (Integer row : locRowGroupDesc) {
String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
if (deepLoc.getLocSts().equals("F")) {
continue;
} else if (deepLoc.getLocSts().equals("O")) {
@@ -188,30 +197,54 @@
if(targetLocMast == null) {
//鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "O")
- .orderBy("lev1", true)
- .orderBy("bay1", true));
- for (LocMast locMast : locMasts) {
- String locNo = locMast.getLocNo();
- //鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
- boolean flag = true;
- for (Integer row : locRowGroupDesc) {
- String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- if (!deepLoc.getLocSts().equals("O")) {
- flag = false;
+ //鑾峰彇璁惧妤煎眰
+ List<Integer> levList = basCrnpService.getLevList();
+ Collections.shuffle(levList);
+
+ List<Integer> locLevList = locMastService.getLevList();
+ levList.addAll(locLevList);
+
+ for (Integer lev : levList) {
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("lev1", lev)
+ .orderBy("bay1", true));
+ for (LocMast locMast : locMasts) {
+ String locNo = locMast.getLocNo();
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+
+ boolean flag = true;
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ if (!deepLoc.getLocSts().equals("O")) {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag) {
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ targetLocMast = deepLoc;
+ break;
+ }
break;
}
}
- if (flag) {
- Integer firstRow = locRowGroupDesc.get(0);
- String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- targetLocMast = deepLoc;
+ if (targetLocMast != null) {
break;
}
}
@@ -229,10 +262,14 @@
for (LocMast locMast : locMastsD) {
String locNo = locMast.getLocNo();
//鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
for (Integer row : locRowGroupDesc) {
String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
if (deepLoc.getLocSts().equals("F")) {
continue;
} else if (deepLoc.getLocSts().equals("O")) {
@@ -246,32 +283,58 @@
}
if(targetLocMast == null) {
- //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "O")
- .orderBy("lev1", true)
- .orderBy("bay1", true));
- for (LocMast locMast : locMasts) {
- String locNo = locMast.getLocNo();
- //鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
- boolean flag = true;
- for (Integer row : locRowGroupDesc) {
- String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
- LocMast deepLoc = locMastService.selectById(deepLocNo);
- if (!deepLoc.getLocSts().equals("O")) {
- flag = false;
+ //鑾峰彇璁惧妤煎眰
+ List<Integer> levList = basCrnpService.getLevList();
+ Collections.shuffle(levList);
+
+ List<Integer> locLevList = locMastService.getLevList();
+ levList.addAll(locLevList);
+
+ for (Integer lev : levList) {
+ //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("lev1", lev)
+ .orderBy("bay1", true));
+ for (LocMast locMast : locMasts) {
+ String locNo = locMast.getLocNo();
+ //鑾峰彇閫氶亾缁�
+ List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+
+ boolean flag = true;
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ if (!deepLoc.getLocSts().equals("O")) {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag) {
+ for (Integer row : locRowGroupDesc) {
+ String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+ LocMast deepLoc = locMastService.selectById(deepLocNo);
+ if (deepLoc == null) {
+ continue;
+ }
+
+ targetLocMast = deepLoc;
+ break;
+ }
break;
}
}
- if (flag) {
- targetLocMast = locMast;
+ if (targetLocMast != null) {
break;
}
}
-
}
return targetLocMast;
}
--
Gitblit v1.9.1