From 756fa60cebfb82ba824e87d080d44fc9ec34ecc8 Mon Sep 17 00:00:00 2001
From: Administrator <335182714>
Date: 星期二, 02 九月 2025 14:01:09 +0800
Subject: [PATCH] 订单出库显示明细是否完成修复
---
src/main/java/com/zy/common/service/CommonService.java | 95 +++++++++++++++++++++++++++++------------------
1 files changed, 59 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 67550c8..fd6c66a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -12,12 +12,18 @@
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
import com.zy.common.properties.SlaveProperties;
+import com.zy.system.entity.Config;
+import com.zy.system.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* 璐ф灦鏍稿績鍔熻兘
@@ -45,6 +51,9 @@
private LocDetlService locDetlService;
@Autowired
private SlaveProperties slaveProperties;
+
+ @Resource
+ private ConfigMapper configMapper;
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -119,20 +128,11 @@
* 鍙屾繁鎵惧簱浣�
*/
@Transactional
- public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo,LocTypeDto locTypeDto) {
-
- // 鐩爣搴撲綅
+ public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo,LocTypeDto locTypeDto,int times) {
LocMast locMast;
-// // 鎼滅储绌烘墭
-// locMast = getLocNoStep4(staDescId, sourceStaNo);
-// if (locMast != null) {
-// //鎵惧埌搴撲綅锛岃繑鍥瀌to
-// return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
-// }
-
- //鎼滅储鏁翠釜绌哄簱浣嶇粍
locMast = getLocNoStepSingle(locTypeDto);
+
if (locMast != null) {
//鎵惧埌搴撲綅锛岃繑鍥瀌to
return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
@@ -141,37 +141,60 @@
//鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
throw new CoolException("娌℃湁绌哄簱浣�");
}
+
// 鎼滅储鍗曞搧(鏁翠釜搴撲綅缁�)
private LocMast getLocNoStepSingle(LocTypeDto locTypeDto) {
+
LocMast locMast = null;
- //鍗曞搧
- List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1());//鎼滅储璐х墿
+ // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢�
+ List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3)
+ .eq("wrk_no",0).eq("in_enable","Y"));
+ if (basCrnps.isEmpty()) {
+ // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛�
+ basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y"));
+ }
+ if (basCrnps.isEmpty()) {
+ throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�");
+ }
+ // 鍙敤鍫嗗灈鏈哄垪琛�
+ List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList());
+
+ // 鑾峰彇澶囪揣鍖洪厤缃�
+ Config config = configMapper.selectConfigByCode("auto_stock_up");
+ if (config == null) {
+ throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪厤缃敊璇紒锛侊紒");
+ }
+
+ // 鍓嶅嚑鍒楁槸澶囪揣鍖�
+ int columnNum = Integer.parseInt(config.getValue());
+
+ // 鎼滅储娣卞簱浣�
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts","O").in("crn_no",crnNoList).in("row1","1,4,5,8,9,12,13,16,17,20,21,24").orderBy("lev1,bay1,row1")
+ .gt("bay1",columnNum));
+
+ // 娣卞簱浣嶆病鏈夊垯鎼滅储娴呭簱浣�
+ if (locMasts.isEmpty()) {
+ locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts","O").in("crn_no",crnNoList).in("row1","2,3,6,7,10,11,14,15,18,19,22,23").orderBy("lev1,bay1,row1")
+ .gt("bay1",columnNum));
+ }
+ if (locMasts.isEmpty()) {
+ throw new CoolException("娌℃湁鍙敤搴撲綅");
+ }
+
+ // 璁板綍鍫嗗灈鏈烘槸鍚︽煡璇㈣繃锛岄伩鍏嶉噸澶嶆煡璇�
+ Map<Integer,Boolean> crnMap = new HashMap<>();
for (LocMast mast : locMasts) {
- List<String> groupLoc = Utils.getGroupLocNo(mast.getLocNo(), true);
-// if (!locMastService.checkAllLocEmpty(groupLoc)) {
-// continue;
-// }
-
- LocMast tmp = null;
- for (String loc : groupLoc) {
- LocMast locMast1 = locMastService.selectByLoc(loc);
- if (locMast1 == null) {
- continue;
+ if (crnMap.get(mast.getCrnNo()) == null) {
+ //棰勭暀绌哄簱浣�
+ if (locMastService.checkEmptyCount(mast, 10)) {
+ locMast = mast;
+ break;
+ } else {
+ crnMap.put(mast.getCrnNo(),true);
}
-
- if (!locMast1.getLocSts().equals("O")) {
- continue;
- }
-
- tmp = locMast1;
- break;
- }
-
- //棰勭暀绌哄簱浣�
- if (tmp != null && locMastService.checkEmptyCount(mast, 10)) {
- locMast = tmp;
- break;
}
}
--
Gitblit v1.9.1