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