From 6c8588d5f7f0de7e9489426c350472bf911a4933 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 05 十二月 2025 15:47:07 +0800
Subject: [PATCH] towcs
---
src/main/java/com/zy/common/service/CommonService.java | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 211 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index fa5eb7c..9733d3d 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -122,6 +123,34 @@
* @param findLocNoAttributeVo 灞炴��
* @param locTypeDto 绫诲瀷
* @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
+ * wms-dev
+ */
+ @Transactional
+ public StartupDto getLocNoToWmsDev(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto, String barcode,int[] row) {
+ StartupDto startupDto = null;
+ StringBuilder builder = new StringBuilder();
+ try {
+ startupDto = searchLocNoByCrnNoToWmsDev(staDescId, sourceStaNo, findLocNoAttributeVo, locTypeDto,row);
+ } catch (Exception e) {
+ builder.append(e.getMessage()).append(",");
+ }
+
+ if(startupDto == null) {
+ builder.append("鎵句笉鍒扮┖搴撲綅");
+ throw new CoolException(builder.toString());
+ }
+
+ return startupDto;
+ }
+
+ /**
+ * 妫�绱㈠簱浣嶅彿
+ *
+ * @param staDescId 璺緞ID
+ * @param sourceStaNo 婧愮珯
+ * @param findLocNoAttributeVo 灞炴��
+ * @param locTypeDto 绫诲瀷
+ * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
*/
@Transactional
public StartupDto searchLocNoByCrnNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto) {
@@ -158,11 +187,61 @@
// 鐢熸垚宸ヤ綔鍙�
int workNo = getWorkNo(0);
// 杩斿洖dto
- startupDto.setWorkNo(workNo);
+ startupDto.setTaskNo(workNo);
startupDto.setCrnNo(locMast.getCrnNo());
startupDto.setSourceStaNo(sourceStaNo);
startupDto.setLocNo(locNo);
+ startupDto.setTaskPri(13.0);
return startupDto;
+ }
+
+ @Transactional
+ public StartupDto searchLocNoByCrnNoToWmsDev(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto,int[] row) {
+ LocMast locMast = null;
+ if (staDescId == 10) {
+ //鎼滅储绌烘墭鐩�
+ locMast = searchEmptyPallet(locTypeDto);
+ }else {
+ //婊℃墭鐩�
+ locMast = searchMaxPalletToWmsDev(findLocNoAttributeVo, locTypeDto,row);
+ }
+
+ if(locMast == null) {
+ throw new CoolException("鎵句笉鍒扮鍚堝昂瀵哥殑绌哄簱浣�");
+ }
+
+ 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)) {
+// log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
+// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+// } else {
+// BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+// if (!staNo.getAutoing().equals("Y")) {
+// log.error("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
+// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+// }
+// startupDto.setStaNo(staNo.getDevNo());
+// }
+ String locNo = locMast.getLocNo();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
+ // 杩斿洖dto
+ startupDto.setTaskNo(workNo);
+ startupDto.setCrnNo(locMast.getCrnNo());
+ startupDto.setSourceStaNo(sourceStaNo);
+ startupDto.setLocNo(locToLocNo(locNo));
+ startupDto.setTaskPri(13.0);
+ return startupDto;
+ }
+ public String locToLocNo(String locNo){//0100203
+ int row = Integer.parseInt(locNo.substring(0, 2));
+ int bay = Integer.parseInt(locNo.substring(2, 5));
+ int lev = Integer.parseInt(locNo.substring(5, 7));
+ return row + "-" +bay + "-" + lev;
}
//鎼滅储婊℃墭鐩樺簱浣�
@@ -171,10 +250,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")) {
@@ -194,6 +277,9 @@
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")
@@ -202,12 +288,16 @@
for (LocMast locMast : locMasts) {
String locNo = locMast.getLocNo();
//鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+ 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;
@@ -215,10 +305,16 @@
}
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;
+ 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;
}
}
@@ -227,6 +323,91 @@
break;
}
}
+
+ }
+ return targetLocMast;
+ }
+
+ //鎼滅储婊℃墭鐩樺簱浣� wms-dev
+ public LocMast searchMaxPalletToWmsDev(FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto,int[] rows) {
+ LocMast targetLocMast = null;
+ List<String> locNos = locDetlService.getSameDetlListToWmsDev(findLocNoAttributeVo.getMatnr(),rows);
+ for (String locNo : locNos) {
+ //鑾峰彇閫氶亾缁�
+ 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")) {
+ targetLocMast = deepLoc;
+ break;
+ }else {
+ break;
+ }
+ }
+
+ }
+
+ if(targetLocMast == null) {
+ //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
+
+ //鑾峰彇璁惧妤煎眰
+// 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")
+// .in("row1",rows)
+// .orderBy("bay1", true));
+ List<LocMast> locMasts = locMastService.selectLoc(rows);
+ 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 (targetLocMast != null) {
+// break;
+// }
+// }
}
return targetLocMast;
@@ -241,10 +422,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")) {
@@ -263,6 +448,9 @@
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>()
@@ -272,12 +460,16 @@
for (LocMast locMast : locMasts) {
String locNo = locMast.getLocNo();
//鑾峰彇閫氶亾缁�
- List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+ 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;
@@ -285,7 +477,16 @@
}
if (flag) {
- targetLocMast = locMast;
+ 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;
}
}
--
Gitblit v1.9.1