From ec34bee74e62cd7aee25c8a207e183572d37454e Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 17 十二月 2024 15:16:29 +0800
Subject: [PATCH] 1.订单出库,优先出一筐的货 2.订单打印,制令号从Mat表中拿
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java | 90 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 74 insertions(+), 16 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
index 201a5c0..9c4fa47 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
@@ -53,29 +53,87 @@
Set<String> exist = new HashSet<>();
+ //鏍囪搴撲綅
+ HashMap<String,Integer> hm = new HashMap<>();
+
for (OrderDetl orderDetl : orderDetls) {
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
if (issued <= 0.0D) {
continue;
}
- List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
- for (LocDetl locDetl : locDetls) {
- List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
- .eq(LocDetl::getLocNo, locDetl.getLocNo())
- .eq(LocDetl::getHostId, hostId));
- if (issued > 0) {
- 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()) && (locMats.size() == 1)) ? 101 : 103, hostId);
- locDto.setStaNos(staNos);
- locDtos.add(locDto);
- exist.add(locDetl.getLocNo());
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- } else {
- break;
+ if(!Cools.isEmpty(hm)){
+ for(HashMap.Entry<String,Integer> entry:hm.entrySet()){
+ List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getHostId, hostId)
+ .eq(LocDetl::getLocNo, entry.getKey())
+ .eq(LocDetl::getMatnr, orderDetl.getMatnr()));
+ for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, locDetl.getLocNo())
+ .eq(LocDetl::getHostId, hostId));
+ if (issued > 0) {
+ 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()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+ locDto.setStaNos(staNos);
+ locDtos.add(locDto);
+ exist.add(locDetl.getLocNo());
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ hm.put(locDetl.getLocNo(), 1);
+ } else {
+ break;
+ }
+ }
+ }
+ if (issued >0){
+ List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
+ for (LocDetl locDetl : locDetls) {
+ for (HashMap.Entry<String,Integer> entry:hm.entrySet()){
+ if(locDetl.getLocNo().equals(entry.getKey())){
+ continue;
+ }
+ }
+ List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, locDetl.getLocNo())
+ .eq(LocDetl::getHostId, hostId));
+ if (issued > 0) {
+ 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()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+ locDto.setStaNos(staNos);
+ locDtos.add(locDto);
+ exist.add(locDetl.getLocNo());
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ hm.put(locDetl.getLocNo(), 1);
+ } else {
+ break;
+ }
+ }
+ }
+ }else{
+ List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
+ for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, locDetl.getLocNo())
+ .eq(LocDetl::getHostId, hostId));
+ if (issued > 0) {
+ 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()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+ locDto.setStaNos(staNos);
+ locDtos.add(locDto);
+ exist.add(locDetl.getLocNo());
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ hm.put(locDetl.getLocNo(), 1);
+ } else {
+ break;
+ }
}
}
+
if (issued > 0) {
List<LocDetl> locDetls1 = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
.eq(LocDetl::getMatnr, orderDetl.getMatnr()).eq(LocDetl::getHostId, hostId));
--
Gitblit v1.9.1