From 11b3ac7e9f6bc9144ddd7a5261cf69796f38d7b3 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期六, 07 九月 2024 13:51:31 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java
index 5575378..ccc9f87 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.wms.asrs.entity.LocDetl;
+import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto;
+import com.zy.asrs.wms.asrs.entity.dto.OrderOutMergeDto;
 import com.zy.asrs.wms.asrs.entity.dto.OutDetlDto;
 import com.zy.asrs.wms.asrs.entity.dto.OutLocDto;
+import com.zy.asrs.wms.asrs.entity.param.OrderOutMergeParam;
 import com.zy.asrs.wms.asrs.entity.param.OutParam;
 import com.zy.asrs.wms.asrs.service.LocDetlService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,18 +56,8 @@
             OutLocDto locDto = entry.getValue();
             locDtos.add(locDto);
 
-            List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locDto.getLocId()));
-
-            Double sum = 0D;
-            for (LocDetl locDetl : list) {
-                sum += locDetl.getAnfme();
-            }
-
-            for (OutDetlDto detl : locDto.getDetls()) {
-                sum -= detl.getAnfme();
-            }
-
-            locDto.setAll(sum == 0);
+            Boolean all = this.isAllForOut(locDto.getLocId(), locDto.getDetls());
+            locDto.setAll(all);
             locDto.setOperationPort(outParam.getOperationPort());
         }
 
@@ -93,4 +86,46 @@
         return locDtos;
     }
 
+    public Boolean isAllForMerge(Long locId, List<OrderOutMergeDto> list) {
+        List<Double> anfmeList = new ArrayList<>();
+        for (OrderOutMergeDto dto : list) {
+            anfmeList.add(dto.getAnfme());
+        }
+        return isAll(locId, anfmeList);
+    }
+
+    public Boolean isAllForPreview(Long locId, List<OrderOutBatchPreviewDto> list) {
+        List<Double> anfmeList = new ArrayList<>();
+        for (OrderOutBatchPreviewDto outPreviewDto : list) {
+            anfmeList.add(outPreviewDto.getAnfme());
+        }
+        return isAll(locId, anfmeList);
+    }
+
+    public Boolean isAllForOut(Long locId, List<OutDetlDto> list) {
+        List<Double> anfmeList = new ArrayList<>();
+        for (OutDetlDto dto : list) {
+            anfmeList.add(dto.getAnfme());
+        }
+        return isAll(locId, anfmeList);
+    }
+
+    private Boolean isAll(Long locId, List<Double> anfmeList) {
+        if (anfmeList.isEmpty()) {
+            return false;
+        }
+
+        List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locId));
+        Double sum = 0D;
+        for (LocDetl locDetl : locDetls) {
+            sum += locDetl.getAnfme();
+        }
+
+        for (Double anfme : anfmeList) {
+            sum -= anfme;
+        }
+
+        return sum <= 0;
+    }
+
 }

--
Gitblit v1.9.1