From 36d1eb6827686c92012344e0f4a40f6fa9494edf Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 29 十月 2022 16:46:47 +0800
Subject: [PATCH] #异常库存合并

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    2 ++
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    1 +
 src/main/java/com/zy/asrs/controller/LocDetlController.java    |    7 ++++---
 src/main/resources/mapper/LocDetlMapper.xml                    |   15 +++++++++++++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    6 ++++++
 5 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 1eadc60..78453a7 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -298,8 +298,9 @@
 //        excludeTrash(param);
         param.put("curr", curr);
         param.put("limit", limit);
-        List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit);
-        for (LocDetl locDetl : groupLocDetl) {
+        Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class));
+//        List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit);
+        for (LocDetl locDetl : groupLocDetl.getRecords()) {
             Mat mat = matService.selectOne(new EntityWrapper<Mat>()
                     .eq("matnr", locDetl.getMatnr()));
             locDetl.setStoreMax(mat.getStoreMax());
@@ -321,7 +322,7 @@
                 long time = maxDate.getTime();
                 Date now = new Date();
                 long time1 = now.getTime();
-                locDetl.setNowTime((int)((time1 - time)/(1000*60*60*24)));
+                locDetl.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
             } catch (ParseException e) {
                 e.printStackTrace();
             }
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 8386e2e..b848faa 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -37,6 +37,8 @@
 
     List<LocDetl> getStockStatis(Map<String, Object> map);
 
+    List<LocDetl> getStockStatis2(Map<String, Object> map);
+
     Integer getStockStatisCount(Map<String, Object> map);
 
     List<LocDetl> getStockStatisExcel();
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index b35d733..3e8d5ef 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -37,6 +37,7 @@
     List<String> getSameDetlToday(String matnr, Integer start, Integer end);
 
     Page<LocDetl> getStockStatis(Page<LocDetl> page);
+    Page<LocDetl> getStockStatis2(Page<LocDetl> page);
 
     Double getSumAnfme(String matnr);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 3bee2dc..5c33af8 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -55,6 +55,12 @@
         page.setTotal(baseMapper.getStockStatisCount(page.getCondition()));
         return page;
     }
+    @Override
+    public Page<LocDetl> getStockStatis2(Page<LocDetl> page) {
+        page.setRecords(baseMapper.getStockStatis2(page.getCondition()));
+        page.setTotal(baseMapper.getStockStatisCount(page.getCondition()));
+        return page;
+    }
 
     @Override
     public Double getSumAnfme(String matnr) {
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index a0621d2..56989cd 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -156,6 +156,21 @@
          ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
 
+    <select id="getStockStatis2" resultType="com.zy.asrs.entity.LocDetl">
+        select * from
+        (
+        select
+        ROW_NUMBER() over (order by sum(a.anfme),a.batch desc) as row
+        , a.matnr
+        , a.batch
+        , sum(a.anfme) as anfme
+        from asr_loc_detl a
+        where 1=1
+        <include refid="stockOutCondition"></include>
+        group by a.matnr,a.batch
+        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+    </select>
+
     <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">
      select count(1) as count from
         (

--
Gitblit v1.9.1