From c8630dc9c82a3b44cf33a3db73accec4018c8fbb Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 17 十月 2022 16:13:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java |   15 ++++++++++++++-
 src/main/java/com/zy/common/model/OrderMergeVo.java          |   30 +++++++++++++++++++++++++++++-
 2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 9dec861..5dfcafa 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SnowflakeIdWorker;
@@ -11,8 +12,8 @@
 import com.zy.asrs.mapper.OrderDetlMapper;
 import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.service.*;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.common.model.DetlDto;
+import com.zy.common.model.OrderDto;
 import com.zy.common.model.OrderMergeVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -174,6 +175,18 @@
             // 鑾峰彇鎵�鏈夋湭浣滀笟鐨勬槑缁�
             List<OrderDetl> orderDetls = orderDetlService.selectRemainder(orderId);
             for (OrderDetl orderDetl : orderDetls) {
+                Double leave = orderDetl.getAnfme() - orderDetl.getQty();
+                OrderMergeVo vo = new OrderMergeVo(orderDetl.getMatnr(), orderDetl.getBatch(), leave);
+                OrderDto orderDto = new OrderDto(orderDetl.getOrderNo(), null, leave);
+                if (OrderMergeVo.has(result, vo)) {
+                    OrderMergeVo exist = OrderMergeVo.find(result, vo.getMatnr(), vo.getBatch());
+                    assert exist != null;
+                    exist.setAnfme(exist.getAnfme() + vo.getAnfme());
+                    exist.getOrderDtos().add(orderDto);
+                } else {
+                    vo.getOrderDtos().add(orderDto);
+                    result.add(vo);
+                }
 
             }
         }
diff --git a/src/main/java/com/zy/common/model/OrderMergeVo.java b/src/main/java/com/zy/common/model/OrderMergeVo.java
index 54642c4..bb619d4 100644
--- a/src/main/java/com/zy/common/model/OrderMergeVo.java
+++ b/src/main/java/com/zy/common/model/OrderMergeVo.java
@@ -1,5 +1,6 @@
 package com.zy.common.model;
 
+import com.core.common.Cools;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -21,6 +22,33 @@
 
     private Double anfme;
 
-    private List<DetlDto> detlDtos = new ArrayList<>();
+    private List<OrderDto> orderDtos = new ArrayList<>();
+
+    public OrderMergeVo(String matnr, String batch, Double anfme) {
+        this.matnr = matnr;
+        this.batch = batch;
+        this.anfme = anfme;
+    }
+
+    public static boolean has(List<OrderMergeVo> detlDtos, OrderMergeVo detlDto) {
+        for (OrderMergeVo dto : detlDtos) {
+            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static OrderMergeVo find(List<OrderMergeVo> detlDtos, String matnr, String batch) {
+        if (Cools.isEmpty(matnr)) {
+            return null;
+        }
+        for (OrderMergeVo detlDto : detlDtos) {
+            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) {
+                return detlDto;
+            }
+        }
+        return null;
+    }
 
 }

--
Gitblit v1.9.1