From 272ecd71d728577ce006e5ab9bb461b2b09b25c2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 14 三月 2026 15:13:00 +0800
Subject: [PATCH] 1.完善找库位规则
---
src/main/java/com/zy/common/service/CommonService.java | 170 ++++++++++----------------------------------------------
1 files changed, 30 insertions(+), 140 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 3131f1a..bff9634 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -162,8 +162,8 @@
public StartupDto getLocNo1(Integer crnNo) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("crn_no", crnNo)
- .eq("loc_sts","O")
- .eq("whs_type",1)
+ .eq("loc_sts", "O")
+ .eq("whs_type", 1)
.orderBy("lev1,bay1"));
if (Cools.isEmpty(locMast)) {
return null;
@@ -196,161 +196,51 @@
*/
@Transactional
public StartupDto getLocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+ StartupDto startupDto = new StartupDto();
// 鍒濆鍖栧弬鏁�
int crnNo = 0; //鍫嗗灈鏈哄彿
- int nearRow = 0; //鏈�娴呭簱浣嶆帓
- int curRow = 0; //鏈�娣卞簱浣嶆帓
- int rowCount = 0; //杞杞
LocMast locMast = null; // 鐩爣搴撲綅
-
- StartupDto startupDto = new StartupDto();
- RowLastno rowLastno = rowLastnoService.selectById(whsType);
- if (Cools.isEmpty(rowLastno)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
- }
- RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
- if (Cools.isEmpty(rowLastnoType)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===銆嬪簱浣嶈鍒欑被鍨嬫湭鐭�");
- }
- int sRow = rowLastno.getsRow();
- int eRow = rowLastno.geteRow();
- int crnNumber = rowLastno.getCrnQty();
- int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1;
-
- // ===============>>>> 寮�濮嬫墽琛�
- curRow = rowLastno.getCurrentRow();
-
- if (!Cools.isEmpty(moveCrnNo) && moveCrnNo != 0) {
- crnNumber = moveCrnNo;
- if (times == 0) {
- curRow = moveCrnNo * 4 - 1;
- } else {
- curRow = moveCrnNo * 4 - 2;
+ RowLastno whsType1 = rowLastnoService.selectOne(new EntityWrapper<RowLastno>().eq("whs_type", 2));
+ crnNo = whsType1.getCrnQty();
+ if (basCrnpService.checkSiteError(crnNo, true)) {
+ BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("crn_no", basCrnp.getCrnNo())
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (Cools.isEmpty(locMasts) || locMasts.size() > 15) {
+ locMast = locMasts.get(0);
}
}
- log.info("\ncurRow:\n{}",curRow);
- //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
- for (int i = times; i < crnNumber * 2; i++) {
- log.info("\ni:\n{}",i);
- log.info("\ntimes:\n{}",times);
- log.info("\ncrnNumber:\n{}",crnNumber);
- int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
- crnNo = locNecessaryParameters[2];
- log.info("\ncrnNo:\n{}",crnNo);
- if (basCrnpService.checkSiteError(crnNo, true)) {
- nearRow = locNecessaryParameters[3];
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow)
- .eq("loc_sts", "O")
- .eq("frozen", 0)
- .eq("deleted", 0)
- .eq("whs_type", rowLastnoType.getType().longValue()));
-// log.info("\nlocMasts:\n{}",locMasts);
- int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
- .eq("crn_no", crnNo).le("io_type", 100));
- if (locMasts.size() - crnCountO <= 2) {
- if(curRow+2==7){
-
- }
- log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
- nearRow = 0;
- times++;
- continue;
- }
- break;
- } else {
-// curRow = crnNo +2;// crnNo=3 curRow=5
-// if (curRow == 9||curRow==10) {
-// curRow = 1;
-// }
-
- int nextCrnNo=crnNo + 1;//涓嬩竴涓爢鍨涙満鍙�
- if(nextCrnNo> sCrnNo+crnNumber-1){//涓嬩竴鍙板ぇ浜�
- nextCrnNo=sCrnNo;
- }
- if(nextCrnNo==sCrnNo){
- curRow=0;
- }else {
- curRow = sRow + (nextCrnNo - sCrnNo) * 4;
- }
- times++;
- }
+ int crnNo1 = crnNo + 1;
+ if (crnNo1> whsType1.geteCrnNo()) {
+ crnNo1 = whsType1.getsCrnNo();
}
- if (nearRow == 0) {
- throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
- }
+ whsType1.setCrnQty(crnNo1);
+ rowLastnoService.updateById(whsType1);
Wrapper<StaDesc> wrapper = null;
StaDesc staDesc = null;
- BasDevp staNo = null;
-
- if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
- int selectedCrnNo=crnNo;
- // 鑾峰彇鐩爣绔�
- wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", staDescId)
- .eq("stn_no", sourceStaNo)
- .eq("crn_no", crnNo);
- staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- crnNo = 0;
- } else {
- staNo = basDevpService.selectById(staDesc.getCrnStn());
- if (!staNo.getAutoing().equals("Y")) {
- log.error("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
-// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
- crnNo = 0;
- }
- startupDto.setStaNo(staNo.getDevNo());
- }
- // 鏇存柊搴撲綅鎺掑彿
- if (Cools.isEmpty(locMast)) {
- int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo;
- int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1);
- int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4;
-
- rowLastno.setCurrentRow(curRowToSave);
- log.info("\ncurRowToSave:\n{}",curRowToSave);
- rowLastnoService.updateById(rowLastno);
- }
+ // 鑾峰彇鐩爣绔�
+ wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", staDescId)
+ .eq("stn_no", sourceStaNo)
+ .eq("crn_no", crnNo);
+ staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦╰ype_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
}
-
- // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- // 1.鎸夎鍒欐煡鎵惧簱浣�
- if (Cools.isEmpty(locMast) && crnNo != 0) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", crnNo).eq("whs_type", rowLastnoType.getType().longValue()).orderBy("lev1").orderBy("bay1"));
- if (!locMasts.isEmpty()) {
- for (LocMast locMast1 : locMasts) {
- if (basCrnpService.checkSiteError(crnNo, true)) {
- locMast = locMast1;
- break;
- }
- }
-
- }
- }
-
- if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
- locMast = null;
- }
-
// 閫掑綊鏌ヨ
if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
// 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
- if (times < rowCount * 2) {
+ if (times < 5) {
times = times + 1;
return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times);
}
-// // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
-// if (locTypeDto.getLocType1() < 2) {
-// int i = locTypeDto.getLocType1() + 1;
-// locTypeDto.setLocType1((short)i);
-// return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0);
-// }
log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
throw new CoolException("娌℃湁绌哄簱浣�");
}
--
Gitblit v1.9.1