From bbd18f555ee3c0ed368b226cde7a3c64db4a4802 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期二, 02 一月 2024 03:34:17 +0800
Subject: [PATCH] 修订版1.0

---
 framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java                        |   21 +++++++
 /dev/null                                                                            |   24 --------
 system-run/src/main/resources/application.yml                                        |    2 
 system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java                   |    1 
 data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java          |    4 +
 framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java                      |    2 
 framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java                      |   11 ++-
 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java    |   21 ++++++-
 data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java                |    2 
 data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java |   81 +++++++++++++++++++++++++-
 data-server/src/main/resources/mapper/DataReportingMapper.xml                        |    2 
 11 files changed, 133 insertions(+), 38 deletions(-)

diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
index 1b10675..b018ee4 100644
--- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
+++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -148,8 +148,7 @@
         return Result.success(dataReportingService.getDataList());
     }
 
-    @ValueAuth
-    @ApiOperation(value = "瀵煎叆")
+    @ApiOperation(value = "瀵煎叆鏁版嵁涓婃姤鍒楄〃")
     @PostMapping("/inputCsv")
     public Result<?> inputCsv(@RequestParam("file") MultipartFile file) throws IOException {
         CsvReader reader = CsvUtil.getReader();
@@ -188,7 +187,23 @@
     public Result downDataReportingFile(@RequestBody Map<String, Object> data) {
         Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
         DataReportingPageDto dataReportingPageDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataReportingPageDto.class);
-        return Result.success(dataReportingService.downDataReportingFile(page, dataReportingPageDto));
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downDataReportingFile(page, dataReportingPageDto));
+    }
+
+    @ApiOperation(value = "瀵煎嚭椤圭洰鏁版嵁缁熻鍒楄〃")
+    @PostMapping("/downProductCountFile")
+    public Result downProductCountFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        ProductCountDto productCountDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), ProductCountDto.class);
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downProductCountFile(page, productCountDto));
+    }
+
+    @ApiOperation(value = "瀵煎嚭鍛樺伐鏁版嵁缁熻鍒楄〃")
+    @PostMapping("/downRegistrantCountFile")
+    public Result downRegistrantCountFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        RegistrantCountDto registrantCountDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), RegistrantCountDto.class);
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downRegistrantCountFile(page, registrantCountDto));
     }
 
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
index 64ae929..8b974fd 100644
--- a/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
@@ -59,7 +59,7 @@
      */
     @ApiModelProperty("灞曠幇閲�")
     @ValueTableShow(6)
-    private Integer show;
+    private Integer showNum;
     /**
      * 鐐瑰嚮閲�
      */
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
index 6aaf88a..c779ced 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
@@ -33,4 +33,8 @@
 
     String downDataReportingFile(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto);
 
+    String downProductCountFile(IPage<ProductCountDto> page, ProductCountDto productCountDto);
+
+    String downRegistrantCountFile(IPage<RegistrantCountDto> page, RegistrantCountDto registrantCountDto);
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
index 24071b3..c978ba5 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
@@ -1,5 +1,9 @@
 package com.yuanchu.mom.service.impl;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.io.file.FileReader;
+import cn.hutool.core.net.URLDecoder;
 import cn.hutool.core.text.csv.CsvUtil;
 import cn.hutool.core.text.csv.CsvWriter;
 import cn.hutool.core.util.CharsetUtil;
@@ -22,9 +26,13 @@
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.utils.ServletUtils;
 import lombok.AllArgsConstructor;
+import org.apache.tomcat.util.http.fileupload.IOUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+import java.io.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
@@ -41,13 +49,17 @@
  * @createDate 2023-12-23 10:39:43
  */
 @Service
-@AllArgsConstructor
 public class DataReportingServiceImpl extends ServiceImpl<DataReportingMapper, DataReporting>
         implements DataReportingService {
 
+    @Resource
     private DataReportingMapper dataReportingMapper;
 
+    @Resource
     private GetLook getLook;
+
+    @Value("${outPath}")
+    private String outPath;
 
     @Override
     public Map<String, Object> selectDataReportingList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) {
@@ -161,9 +173,10 @@
     @Override
     public String downDataReportingFile(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) {
         Map<String, Object> map = selectDataReportingList(page, dataReportingPageDto);
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd HH_mm_ss"));
-        String name = "D:\\Download\\鏁版嵁涓婃姤 " + time + ".csv";
-        CsvWriter writer = CsvUtil.getWriter(name, CharsetUtil.CHARSET_GBK);
+        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss"));
+        String name = "鏁版嵁涓婃姤" + time + ".csv";
+        String path = outPath + name;
+        CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK);
         writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time});
         writer.write(new String[]{});
         writer.write(new String[]{});
@@ -183,7 +196,65 @@
             writer.write(str);
         });
         writer.close();
-        return null;
+        return name;
+    }
+
+    @Override
+    public String downProductCountFile(IPage<ProductCountDto> page, ProductCountDto productCountDto) {
+        Map<String, Object> map = selectProductCountDtoPageList(page, productCountDto);
+        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss"));
+        String name = "椤圭洰鏁版嵁缁熻" + time + ".csv";
+        String path = outPath + name;
+        CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK);
+        writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class);
+        String[] str = new String[head.size()];
+        for (int i = 0; i < head.size(); i++) {
+            str[i] = head.get(i).get("value");
+        }
+        writer.write(str);
+        JSON.parseObject(JSON.toJSONString(map.get("body")), IPage.class).getRecords().forEach(a->{
+            Map<String, Object> map1 = JSON.parseObject(JSON.toJSONString(a), Map.class);
+            for (int i = 0; i < head.size(); i++) {
+                str[i] = map1.get(head.get(i).get("label"))==null?null:map1.get(head.get(i).get("label"))+"";
+            }
+            writer.write(str);
+        });
+        writer.close();
+        return name;
+    }
+
+    @Override
+    public String downRegistrantCountFile(IPage<RegistrantCountDto> page, RegistrantCountDto registrantCountDto) {
+        Map<String, Object> map = selectRegistrantCountDtoPageList(page, registrantCountDto);
+        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy_MM_dd_HH_mm_ss"));
+        String name = "鍛樺伐鏁版嵁缁熻" + time + ".csv";
+        String path = outPath + name;
+        CsvWriter writer = CsvUtil.getWriter(path, CharsetUtil.CHARSET_GBK);
+        writer.write(new String[]{"瀵煎嚭鏃堕棿锛�"+time});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        writer.write(new String[]{});
+        List<Map<String, String>> head = JSON.parseObject(JSON.toJSONString(map.get("head")), List.class);
+        String[] str = new String[head.size()];
+        for (int i = 0; i < head.size(); i++) {
+            str[i] = head.get(i).get("value");
+        }
+        writer.write(str);
+        JSON.parseObject(JSON.toJSONString(map.get("body")), IPage.class).getRecords().forEach(a->{
+            Map<String, Object> map1 = JSON.parseObject(JSON.toJSONString(a), Map.class);
+            for (int i = 0; i < head.size(); i++) {
+                str[i] = map1.get(head.get(i).get("label"))==null?null:map1.get(head.get(i).get("label"))+"";
+            }
+            writer.write(str);
+        });
+        writer.close();
+        return name;
     }
 }
 
diff --git a/data-server/src/main/resources/mapper/DataReportingMapper.xml b/data-server/src/main/resources/mapper/DataReportingMapper.xml
index 3b5fc96..506ae97 100644
--- a/data-server/src/main/resources/mapper/DataReportingMapper.xml
+++ b/data-server/src/main/resources/mapper/DataReportingMapper.xml
@@ -53,7 +53,7 @@
     </select>
     <select id="selectRegistrantCountDtoPageList" resultType="com.yuanchu.mom.dto.RegistrantCountDto">
         select * from (
-        select id, department, registrant, product, name, sum(`show`) `show`, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user
+        select id, department, registrant, product, name, sum(show_num) show_num, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user
         from data_reporting
         group by registrant
         ) a
diff --git a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
index 3e41ffd..2a58e9d 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
@@ -33,9 +33,13 @@
             response.setStatus(HttpServletResponse.SC_OK);
             return true;
         }
-        HandlerMethod h = (HandlerMethod)handler;
-        ValueAuth annotation = h.getMethodAnnotation(ValueAuth.class);
-        if(annotation!=null){
+        try {
+            HandlerMethod h = (HandlerMethod)handler;
+            ValueAuth annotation = h.getMethodAnnotation(ValueAuth.class);
+            if(annotation!=null){
+                return true;
+            }
+        }catch (Exception e){
             return true;
         }
         String[] strs = request.getRequestURL().toString().split(serverPort);
@@ -96,6 +100,7 @@
 
         list.add("/user/enter");
         list.add("/user/refresh");
+        list.add("/outPath/**");
         this.list = list;
     }
 
diff --git a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
index d9e0358..8b3fd91 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
@@ -1,8 +1,10 @@
 package com.yuanchu.mom.config;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 
 import javax.annotation.Resource;
@@ -16,6 +18,25 @@
     @Resource
     private PowerConfig powerConfig;
 
+    @Value("${file.path}")
+    private String filePath;
+
+    @Value("${outPath}")
+    private String outPath;
+
+
+
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        //閰嶇疆鎷︽埅鍣ㄨ闂潤鎬佽祫婧�
+        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+
+        //璁剧疆鏂囦欢铏氭嫙璺緞鏄犲皠
+        registry.addResourceHandler("/img/**").addResourceLocations("file:"+filePath+"/");
+        registry.addResourceHandler("/outPath/**").addResourceLocations("file:"+outPath);
+    }
+
     @Override
     protected void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(fiferConfig).addPathPatterns("/**");
diff --git a/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java b/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java
index a0cf848..ea9b1c3 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java
@@ -30,7 +30,7 @@
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         if(handler instanceof HandlerMethod) {
-            if(request.getRequestURL().toString().equals("http://127.0.0.1:8001/error")){
+            if(request.getRequestURL().toString().contains("/error") || request.getRequestURL().toString().contains("/outPath")){
                 return HandlerInterceptor.super.preHandle(request, response, handler);
             }
             HandlerMethod h = (HandlerMethod)handler;
diff --git a/framework/src/main/java/com/yuanchu/mom/config/WebMvcConfig.java b/framework/src/main/java/com/yuanchu/mom/config/WebMvcConfig.java
deleted file mode 100644
index bba42ac..0000000
--- a/framework/src/main/java/com/yuanchu/mom/config/WebMvcConfig.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.yuanchu.mom.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
-
-@Configuration
-public class WebMvcConfig extends WebMvcConfigurationSupport {
-
-    @Value("${file.path}")
-    private String filePath;
-
-    @Override
-    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
-        //閰嶇疆鎷︽埅鍣ㄨ闂潤鎬佽祫婧�
-        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
-        registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/META-INF/resources/");
-        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
-
-        //璁剧疆鏂囦欢铏氭嫙璺緞鏄犲皠
-        registry.addResourceHandler("/img/**").addResourceLocations("file:"+filePath+"/");
-    }
-}
diff --git a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
index 3e4c5e5..41f659a 100644
--- a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
+++ b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
@@ -5,6 +5,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Configuration;
 
 import javax.annotation.Resource;
 
diff --git a/system-run/src/main/resources/application.yml b/system-run/src/main/resources/application.yml
index fe0e329..e9ee9ae 100644
--- a/system-run/src/main/resources/application.yml
+++ b/system-run/src/main/resources/application.yml
@@ -25,3 +25,5 @@
     enabled: false # 鍏抽棴 httpclient
   okhttp:
     enabled: true # 寮�鍚� okhttp
+
+outPath: D:/Download/
\ No newline at end of file

--
Gitblit v1.9.3