From 35173cda98e2be25cf30a028697e6d363f8c4f77 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 13 十一月 2025 14:54:06 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OutController.java | 256 ++++++++++++++++++++++++++++----------------------
1 files changed, 144 insertions(+), 112 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 04518f8..a95f71e 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -7,6 +7,7 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
@@ -87,59 +88,38 @@
locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
- List<LocMast> locMasts = new ArrayList<>();
- if (locMast.getBay1() >=1 && locMast.getBay1()<=2){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", true));
- }else {
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }
- for (LocMast locMast1 : locMasts){
- if (locMast1.getLocSts().equals("F")){
- LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
- .eq("loc_No", locMast1.getLocNo())
- .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
- if (!Cools.isEmpty(locDetl1)) {
- ExistDto existDto = new ExistDto();
- existDto.setLocNo(locDetl1.getLocNo());
- existDto.setMatnr(locDetl1.getMatnr());
- existDto.setBatch(locDetl1.getBatch());
- if (existDtos.add(existDto)){
- if (issued > 0) {
- LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
- issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
- List<LocDto.staListDto> maps = new ArrayList<>();
- for (Integer staNo : staNos) {
- LocDto.staListDto staListDto = new LocDto.staListDto();
- staListDto.setStaNo(staNo);
- staListDto.setStaName(Utils.getStaName(staNo));
- maps.add(staListDto);
- }
- locDto.setStaNos(maps);
- locDtos.add(locDto);
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }else {
- break;
+ if (locMast.getLocSts().equals("F")){
+ LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+ .eq("loc_No", locMast.getLocNo())
+ .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
+ if (!Cools.isEmpty(locDetl1)) {
+ ExistDto existDto = new ExistDto();
+ existDto.setLocNo(locDetl1.getLocNo());
+ existDto.setMatnr(locDetl1.getMatnr());
+ existDto.setBatch(locDetl1.getBatch());
+ if (existDtos.add(existDto)){
+ if (issued > 0) {
+ LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+ issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
+ List<LocDto.staListDto> maps = new ArrayList<>();
+ for (Integer staNo : staNos) {
+ LocDto.staListDto staListDto = new LocDto.staListDto();
+ staListDto.setStaNo(staNo);
+ staListDto.setStaName(Utils.getStaName(staNo));
+ maps.add(staListDto);
}
+ locDto.setStaNos(maps);
+ locDtos.add(locDto);
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }else {
+ break;
}
}
}
}
+
}
if (issued > 0) {
LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
@@ -168,60 +148,39 @@
List<LocDetl> locDetls = new ArrayList<>();
locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
- List<LocMast> locMasts = new ArrayList<>();
- if (locMast.getBay1() >=1 && locMast.getBay1()<=2){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", true));
- }else {
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }
- for (LocMast locMast1 : locMasts){
- if (locMast1.getLocSts().equals("F")){
- LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
- .eq("loc_No", locMast1.getLocNo())
- .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
- if (!Cools.isEmpty(locDetl1)) {
- ExistDto existDto = new ExistDto();
- existDto.setLocNo(locDetl1.getLocNo());
- existDto.setMatnr(locDetl1.getMatnr());
- existDto.setBatch(locDetl1.getBatch());
- if (existDtos.add(existDto)){
- if (issued > 0) {
- LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
- issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
- List<LocDto.staListDto> maps = new ArrayList<>();
- for (Integer staNo : staNos) {
- LocDto.staListDto staListDto = new LocDto.staListDto();
- staListDto.setStaNo(staNo);
- staListDto.setStaName(Utils.getStaName(staNo));
- maps.add(staListDto);
- }
- locDto.setStaNos(maps);
- locDtos.add(locDto);
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }else {
- break;
- }
- }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+ if (locMast.getLocSts().equals("F")){
+ LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+ .eq("loc_No", locMast.getLocNo())
+ .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
+ if (!Cools.isEmpty(locDetl1)) {
+ ExistDto existDto = new ExistDto();
+ existDto.setLocNo(locDetl1.getLocNo());
+ existDto.setMatnr(locDetl1.getMatnr());
+ existDto.setBatch(locDetl1.getBatch());
+ if (existDtos.add(existDto)){
+ if (issued > 0) {
+ LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+ issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
+ List<LocDto.staListDto> maps = new ArrayList<>();
+ for (Integer staNo : staNos) {
+ LocDto.staListDto staListDto = new LocDto.staListDto();
+ staListDto.setStaNo(staNo);
+ staListDto.setStaName(Utils.getStaName(staNo));
+ maps.add(staListDto);
}
+ locDto.setStaNos(maps);
+ locDtos.add(locDto);
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }else {
+ break;
}
}
+ }
+ }
+
}
if (issued > 0) {
LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
@@ -259,6 +218,7 @@
List<LocDetl> locDetls = new ArrayList<>();
locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDetl.getLocNo()));
if (issued > 0) {
ExistDto existDto = new ExistDto();
existDto.setLocNo(locDetl.getLocNo());
@@ -267,7 +227,7 @@
if (existDtos.add(existDto)) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() && locDetlList.size() ==1? 101 : 103);
List<LocDto.staListDto> maps = new ArrayList<>();
for (Integer staNo : staNos) {
LocDto.staListDto staListDto = new LocDto.staListDto();
@@ -311,6 +271,7 @@
List<LocDetl> locDetls = new ArrayList<>();
locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDetl.getLocNo()));
if (issued > 0) {
ExistDto existDto = new ExistDto();
existDto.setLocNo(locDetl.getLocNo());
@@ -319,7 +280,7 @@
if (existDtos.add(existDto)) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() && locDetlList.size() ==1? 101 : 103);
List<LocDto.staListDto> maps = new ArrayList<>();
for (Integer staNo : staNos) {
LocDto.staListDto staListDto = new LocDto.staListDto();
@@ -345,7 +306,7 @@
return R.ok().add(locDtos);
}
- /** ctu璁㈠崟鍑哄簱 **/
+ /** crn璁㈠崟鍑哄簱 **/
@PostMapping("/out/pakout/previewCustomQuantity/auth/crn")
@ManagerAuth
public R pakoutPreviewCustomQuantityCRN(@RequestBody JSONObject jsonObject) {
@@ -372,6 +333,7 @@
List<LocDetl> locDetls = new ArrayList<>();
locDetls = locDetlService.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDetl.getLocNo()));
if (issued > 0) {
ExistDto existDto = new ExistDto();
existDto.setLocNo(locDetl.getLocNo());
@@ -380,7 +342,7 @@
if (existDtos.add(existDto)) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() && locDetlList.size() ==1? 101 : 103);
List<LocDto.staListDto> maps = new ArrayList<>();
for (Integer staNo : staNos) {
LocDto.staListDto staListDto = new LocDto.staListDto();
@@ -424,6 +386,7 @@
List<LocDetl> locDetls = new ArrayList<>();
locDetls = locDetlService.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
+
if (issued > 0) {
ExistDto existDto = new ExistDto();
existDto.setLocNo(locDetl.getLocNo());
@@ -432,15 +395,7 @@
if (existDtos.add(existDto)) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
- List<LocDto.staListDto> maps = new ArrayList<>();
- for (Integer staNo : staNos) {
- LocDto.staListDto staListDto = new LocDto.staListDto();
- staListDto.setStaNo(staNo);
- staListDto.setStaName(Utils.getStaName(staNo));
- maps.add(staListDto);
- }
- locDto.setStaNos(maps);
+
locDtos.add(locDto);
// 鍓╀綑寰呭嚭鏁伴噺閫掑噺
issued = issued - locDetl.getAnfme();
@@ -449,6 +404,17 @@
break;
}
}
+ for (LocDto locDto : locDtos){
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDto.getLocNo(),Judge101or103(locDto,locDtos)? 101 : 103);
+ List<LocDto.staListDto> maps = new ArrayList<>();
+ for (Integer staNo : staNos) {
+ LocDto.staListDto staListDto = new LocDto.staListDto();
+ staListDto.setStaNo(staNo);
+ staListDto.setStaName(Utils.getStaName(staNo));
+ maps.add(staListDto);
+ }
+ locDto.setStaNos(maps);
+ }
if (issued > 0) {
LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
locDto.setLack(Boolean.TRUE);
@@ -456,6 +422,30 @@
}
}
return R.ok().add(locDtos);
+ }
+ public boolean Judge101or103(LocDto locDto,List<LocDto> locDtos){
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDto.getLocNo()));
+ List<LocDto> dtos = locDtos.stream().filter(item -> !Cools.isEmpty(item.getLocNo()) && item.getLocNo().equals(locDto.getLocNo()) ).collect(Collectors.toList());
+ if (locDetlList.size() != dtos.size()){
+ return false;
+ }
+ boolean is = true;
+ for (LocDto locDto1 :dtos){
+ List<LocDetl> list = locDetlList.
+ stream().filter(item ->
+ item.getLocNo().equals(locDto1.getLocNo()) &&
+ item.getMatnr().equals(locDto1.getMatnr()) &&
+ item.getBatch().equals(locDto1.getBatch())
+ ).collect(Collectors.toList());
+ if (list.size() != 1){
+ throw new CoolException("鍒ゆ柇绔欑偣鏁版嵁閿欒");
+ }
+ if (!locDto1.getAnfme().equals(list.get(0).getAnfme())){
+ is = false;
+ }
+
+ }
+ return is;
}
@@ -505,4 +495,46 @@
return R.ok();
}
+ @PostMapping("/out/pakout/auth/sxk")
+ @ManagerAuth(memo = "璁㈠崟鍑哄簱")
+ public synchronized R pakoutSxk(@RequestBody List<LocDto> locDtos) throws InterruptedException {
+ if (Cools.isEmpty(locDtos)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ boolean lack = true;
+ for (LocDto locDto : locDtos) {
+ // 鍒ゆ柇鍏ュ簱妯″紡
+ OutStockInterceptUtil.outStockIntercept(locDto.getStaNo());
+ if (!locDto.isLack()) {
+ lack = false;
+ break;
+ }
+ }
+ if (lack) {
+ return R.error("搴撳瓨涓嶈冻");
+ }
+
+ Thread.sleep(1000L);
+
+ List<TaskDto> taskDtos = new ArrayList<>();
+ // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+ for (LocDto locDto : locDtos) {
+ if (locDto.isLack()) { continue; }
+ TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+ if (TaskDto.has(taskDtos, taskDto)) {
+ TaskDto dto = TaskDto.find(taskDtos, taskDto);
+ assert dto != null;
+ dto.getLocDtos().addAll(taskDto.getLocDtos());
+ } else {
+ taskDtos.add(taskDto);
+ }
+ }
+ // -----------------------------------------------------------------------------------------------
+ for (TaskDto taskDto : taskDtos) {
+ BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+ workService.stockOutSxk(staNo, taskDto, getUserId());
+ }
+ return R.ok();
+ }
+
}
--
Gitblit v1.9.1