From 61d28206585b8746a9f1982cfe1dfc5deabde91a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 17 六月 2023 09:03:27 +0800
Subject: [PATCH] #库存统计更改为包括立库、平库

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    5 ++
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    3 +
 src/main/java/com/zy/asrs/controller/LocDetlController.java    |   19 +++++++--
 src/main/resources/mapper/LocDetlMapper.xml                    |   29 ++++++++++++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |   12 ++++++
 src/main/java/com/zy/asrs/entity/result/LocDetlAll.java        |    7 +++
 6 files changed, 70 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index b914ab1..fc615fd 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -242,11 +242,20 @@
     public R statis(@RequestParam(defaultValue = "1")Integer curr,
                     @RequestParam(defaultValue = "10")Integer limit,
                     @RequestParam Map<String, Object> param) {
-        Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
-        for (LocDetl locDetl : stockStatis.getRecords()) {
-            Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+//        Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
+//        for (LocDetl locDetl : stockStatis.getRecords()) {
+//            Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+//            if (mat != null) {
+//                locDetl.sync(mat);
+//            }
+//        }
+//        return R.ok().add(stockStatis);
+
+        Page<LocDetlAll> stockStatis = locDetlService.getStockStatisAll(toPage(curr, limit, param, LocDetlAll.class));
+        for (LocDetlAll locDetlAll : stockStatis.getRecords()) {
+            Mat mat = matService.selectByMatnr(locDetlAll.getMatnr());
             if (mat != null) {
-                locDetl.sync(mat);
+                locDetlAll.sync(mat);
             }
         }
         return R.ok().add(stockStatis);
@@ -281,7 +290,7 @@
      */
     @RequestMapping("/locDetl/count")
     public R getAllCount(){
-        Integer sum = locDetlService.sum();
+        Double sum = locDetlService.sumAll();
         return R.ok(sum);
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/result/LocDetlAll.java b/src/main/java/com/zy/asrs/entity/result/LocDetlAll.java
index 18e7a36..e5c80f5 100644
--- a/src/main/java/com/zy/asrs/entity/result/LocDetlAll.java
+++ b/src/main/java/com/zy/asrs/entity/result/LocDetlAll.java
@@ -1,14 +1,17 @@
 package com.zy.asrs.entity.result;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.LocOwner;
 import com.zy.asrs.service.LocOwnerService;
+import com.zy.common.utils.Synchro;
 import lombok.Data;
 
 import java.util.Date;
 
 @Data
+@ExcelIgnoreUnannotated
 public class LocDetlAll {
     private String loc_no;
     private String zpallet;
@@ -47,4 +50,8 @@
                 return String.valueOf(this.payment);
         }
     }
+
+    public void sync(Object source) {
+        Synchro.Copy(source, this);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index af9f2f9..28b280d 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -47,6 +47,10 @@
 
     Integer getStockStatisCount(Map<String, Object> map);
 
+    List<LocDetlAll> getStockStatisAll(Map<String, Object> map);
+
+    Integer getStockStatisCountAll(Map<String, Object> map);
+
     List<LocDetl> getStockStatisExcel();
 
     @Select("select sum(a.anfme) as sum from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr}")
@@ -89,4 +93,5 @@
     List<LocDetlAll> selectAllPyment(LocDetlDTO locDetlDTO);
 
     int selectAllPymentcount(LocDetlDTO locDetlDTO);
+    Double sumAll();
 }
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 8afb979..77b1739 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -36,6 +36,9 @@
     List<LocDetl> queryStockViewMerge(String locNo);
 
     Page<LocDetl> getStockStatis(Page<LocDetl> page);
+    Page<LocDetlAll> getStockStatisAll(Page<LocDetlAll> page);
+
+    Double sumAll();
 
     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 3e3a6bf..b083fa9 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -69,6 +69,18 @@
     }
 
     @Override
+    public Page<LocDetlAll> getStockStatisAll(Page<LocDetlAll> page) {
+        page.setRecords(baseMapper.getStockStatisAll(page.getCondition()));
+        page.setTotal(baseMapper.getStockStatisCountAll(page.getCondition()));
+        return page;
+    }
+
+    @Override
+    public Double sumAll() {
+        return this.baseMapper.sumAll();
+    }
+
+    @Override
     public Double getSumAnfme(String matnr) {
         return this.baseMapper.selectSumAnfmeByMatnr(matnr);
     }
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index b86e724..742bea6 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -554,6 +554,35 @@
         ) a
 
     </select>
+    <select id="getStockStatisAll" resultType="com.zy.asrs.entity.result.LocDetlAll">
+        select * from
+        (
+        select
+        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
+        , a.matnr
+        , sum(a.anfme) as anfme
+        from asr_loc_detl_all a
+        where 1=1
+        <include refid="stockOutCondition"></include>
+        group by a.matnr
+        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+    </select>
+
+    <select id="getStockStatisCountAll" parameterType="java.util.Map" resultType="java.lang.Integer">
+        select count(1) as count from
+        (
+        select
+        a.matnr
+        from asr_loc_detl_all a
+        where 1=1
+        <include refid="stockOutCondition"></include>
+        group by a.matnr
+        ) b
+    </select>
+
+    <select id="sumAll" resultType="java.lang.Double">
+        SELECT SUM(anfme) FROM asr_loc_detl_all
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.1