| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | * @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) { |
| | |
| | | @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[]{}); |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |