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