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 | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 165 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 27f3b06..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;
}
//鎼滅储婊℃墭鐩樺簱浣�
@@ -249,6 +328,91 @@
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;
+ }
+
//鎼滅储绌烘墭鐩樺簱浣�
public LocMast searchEmptyPallet(LocTypeDto locTypeDto) {
LocMast targetLocMast = null;
--
Gitblit v1.9.1