From 28670e94bb74ba937fe0ff73334ec68e969beef9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 28 三月 2022 17:05:37 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |    1 
 src/main/java/com/zy/common/model/TaskDto.java              |   40 ++++++++++++++++++++
 src/main/java/com/zy/common/model/DetlDto.java              |   20 +++++++++
 3 files changed, 60 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 55b15fd..e218f63 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -273,6 +273,7 @@
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
         // 鑾峰彇璺緞
+        Integer ioType = taskDto.isAll() ? 101 : 103;
         Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                 .eq("type_no", ioType)
                 .eq("stn_no", staNo.getDevNo())
diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java
index daf439e..e2e8bb3 100644
--- a/src/main/java/com/zy/common/model/DetlDto.java
+++ b/src/main/java/com/zy/common/model/DetlDto.java
@@ -4,6 +4,7 @@
 import com.zy.asrs.entity.OrderDetl;
 import lombok.Data;
 
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -58,7 +59,24 @@
         return false;
     }
 
-    public static DetlDto find(Set<DetlDto> detlDtos, String matnr, String batch) {
+    public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) {
+        for (DetlDto dto : detlDtos) {
+            if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(detlDto.getBatch())) {
+                if (dto.getMatnr().equals(detlDto.getMatnr())) {
+                    return true;
+                }
+            } else {
+                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(detlDto.getBatch())) {
+                    if (dto.getMatnr().equals(detlDto.getMatnr()) && dto.getBatch().equals(detlDto.getBatch())) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch) {
         if (Cools.isEmpty(matnr)) {
             return null;
         }
diff --git a/src/main/java/com/zy/common/model/TaskDto.java b/src/main/java/com/zy/common/model/TaskDto.java
index c2e8223..afcf9d0 100644
--- a/src/main/java/com/zy/common/model/TaskDto.java
+++ b/src/main/java/com/zy/common/model/TaskDto.java
@@ -1,10 +1,17 @@
 package com.zy.common.model;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.service.LocDetlService;
 import lombok.Data;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * Created by vincent on 2022/3/28
@@ -63,4 +70,37 @@
         return null;
     }
 
+    public boolean isAll(){
+        // 姹囨�讳笉鑰冭檻鎵瑰彿
+        List<DetlDto> detlDtos = new ArrayList<>();
+        for (LocDto locDto : this.getLocDtos()) {
+            DetlDto dto = new DetlDto(locDto.getMatnr(), null, locDto.getAnfme());
+            if (DetlDto.has(detlDtos, dto)) {
+                DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), null);
+                assert detlDto != null;
+                detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme());
+            } else {
+                detlDtos.add(new DetlDto(locDto.getMatnr(), null, locDto.getAnfme()));
+            }
+        }
+
+        // 鏌ヨ褰撳墠搴撲綅鍙锋墍鏈夌殑搴撳瓨鏄庣粏
+        LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
+        // todo
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", this.locNo));
+        if (locDetls == null || locDetls.isEmpty()){
+            throw new CoolException("璁$畻婊℃澘澶辫触锛屽簱浣嶅彿=" + this.locNo);
+        }
+        int sameNumber = 0;
+        for (LocDetl locDetl : locDetls) {
+            for (DetlDto detlDto : detlDtos) {
+                if (detlDto.getLocDetl().getMatnr().equals(locDetl.getMatnr()) && dto.getCount().equals(locDetl.getAnfme())) {
+                    sameNumber++;
+                    break;
+                }
+            }
+        }
+        return sameNumber == locDetls.size();
+    }
+
 }

--
Gitblit v1.9.1