From 676c50a285f16b104b95999b48eda55e07d46922 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 18 六月 2024 14:33:46 +0800
Subject: [PATCH] #

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java |   10 ++++++----
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java          |    2 ++
 zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml                           |   10 ++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java            |    2 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java              |   24 ++++++++++++++++++++++++
 5 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
index 8dc58e0..cf83fa7 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
@@ -39,4 +39,6 @@
 
     List<String> selectSameDetl(@Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId);
 
+    List<LocDetl> getStockStatisExcel();
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
index 737248e..828df6b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
@@ -35,4 +35,6 @@
      */
     List<String> getSameDetl(String matnr, String batch, Long hostId);
 
+    List<LocDetl> getStockStatisExcel();
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
index 4fe5548..9826b95 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
@@ -10,10 +10,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 @Service("locDetlService")
 public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService {
@@ -73,4 +70,9 @@
     public List<String> getSameDetl(String matnr, String batch, Long hostId) {
         return this.baseMapper.selectSameDetl(matnr, batch, hostId);
     }
+
+    @Override
+    public List<LocDetl> getStockStatisExcel() {
+        return this.baseMapper.getStockStatisExcel();
+    }
 }
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
index c8584e7..7265ae4 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
@@ -142,4 +142,14 @@
         ORDER BY lm.modi_time ASC
     </select>
 
+    <select id="getStockStatisExcel" resultType="com.zy.asrs.common.wms.entity.LocDetl">
+        select
+            ROW_NUMBER() over (order by sum(a.anfme) desc) as row
+        , a.matnr
+             , sum(a.anfme) as anfme
+        from wms_loc_detl a
+        where 1=1
+        group by a.matnr
+    </select>
+
 </mapper>
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
index f546d25..96bbc1e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.wms.controller;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -18,6 +20,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.*;
 
 @RestController
@@ -187,4 +192,23 @@
         return R.ok(locDetlService.getStockOut(curr, limit, param));
     }
 
+    @RequestMapping(value = "/locDetl/statis/export")
+    public void statisExport(HttpServletResponse response) throws IOException {
+        List<LocDetl> excel = locDetlService.getStockStatisExcel();
+        for (LocDetl locDetl : excel) {
+            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, locDetl.getMatnr()));
+            if (mat != null) {
+                locDetl.sync(mat);
+            }
+        }
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = URLEncoder.encode("搴撳瓨鏄庣粏缁熻鎶ヨ〃", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        EasyExcel.write(response.getOutputStream(), LocDetl.class)
+                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                .sheet("琛�1")
+                .doWrite(excel);
+    }
+
 }

--
Gitblit v1.9.1