Browse Source

集成平台数据导出

dev_shibei_match
jianjun 4 years ago
parent
commit
8136ab26b8
  1. 7
      epmet-commons/epmet-commons-tools/pom.xml
  2. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/BaseDataFormDTO.java
  3. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/SubTopicAndGroupResultDTO.java
  4. 4
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/SubUserTotalResultDTO.java
  5. 3
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  6. 70
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java
  7. 16
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  8. BIN
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/excel/data_template.xlsx

7
epmet-commons/epmet-commons-tools/pom.xml

@ -18,7 +18,7 @@
<commons.fileupload.version>1.3.3</commons.fileupload.version> <commons.fileupload.version>1.3.3</commons.fileupload.version>
<commons.io.version>2.6</commons.io.version> <commons.io.version>2.6</commons.io.version>
<hutool.version>4.6.1</hutool.version> <hutool.version>4.6.1</hutool.version>
<easypoi.version>4.1.0</easypoi.version> <easypoi.version>4.1.3</easypoi.version>
<joda.time.version>2.9.9</joda.time.version> <joda.time.version>2.9.9</joda.time.version>
<fastjson.version>1.2.60</fastjson.version> <fastjson.version>1.2.60</fastjson.version>
<gson.version>2.8.6</gson.version> <gson.version>2.8.6</gson.version>
@ -95,6 +95,11 @@
<artifactId>easypoi-web</artifactId> <artifactId>easypoi-web</artifactId>
<version>${easypoi.version}</version> <version>${easypoi.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>${easypoi.version}</version>
</dependency>
<dependency> <dependency>
<groupId>joda-time</groupId> <groupId>joda-time</groupId>
<artifactId>joda-time</artifactId> <artifactId>joda-time</artifactId>

1
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/BaseDataFormDTO.java

@ -28,6 +28,7 @@ public class BaseDataFormDTO implements Serializable {
private String dateId; private String dateId;
private String startDateId; private String startDateId;
private String endDateId; private String endDateId;
private String agencyName;
public interface BaseData extends CustomerClientShowGroup{} public interface BaseData extends CustomerClientShowGroup{}
public interface AgencyIdAndLevel extends CustomerClientShowGroup{} public interface AgencyIdAndLevel extends CustomerClientShowGroup{}

1
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/SubTopicAndGroupResultDTO.java

@ -19,5 +19,6 @@ public class SubTopicAndGroupResultDTO implements Serializable {
private Integer topicTotal = 0; private Integer topicTotal = 0;
//小组总数 //小组总数
private Integer groupTotal = 0; private Integer groupTotal = 0;
private Integer sort = 1;
} }

4
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/SubUserTotalResultDTO.java

@ -19,5 +19,9 @@ public class SubUserTotalResultDTO implements Serializable {
private Integer userTotal = 0; private Integer userTotal = 0;
//党员总数 //党员总数
private Integer partyMemberTotal = 0; private Integer partyMemberTotal = 0;
/**
* 排名
*/
private Integer sort = 1;
} }

3
epmet-module/data-aggregator/data-aggregator-server/pom.xml

@ -97,6 +97,9 @@
<resource> <resource>
<filtering>true</filtering> <filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory> <directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/*.xlsx</exclude>
</excludes>
</resource> </resource>
</resources> </resources>
</build> </build>

70
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java

@ -1,5 +1,9 @@
package com.epmet.dataaggre.controller.pub; package com.epmet.dataaggre.controller.pub;
import cn.afterturn.easypoi.entity.vo.TemplateExcelConstants;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.view.EasypoiTemplateExcelView;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.datastats.form.BaseDataFormDTO; import com.epmet.dataaggre.dto.datastats.form.BaseDataFormDTO;
@ -8,16 +12,18 @@ import com.epmet.dataaggre.dto.datastats.result.SubTopicAndGroupResultDTO;
import com.epmet.dataaggre.dto.datastats.result.SubUserTotalResultDTO; import com.epmet.dataaggre.dto.datastats.result.SubUserTotalResultDTO;
import com.epmet.dataaggre.dto.datastats.result.WorkFactResultDTO; import com.epmet.dataaggre.dto.datastats.result.WorkFactResultDTO;
import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.datastats.DataStatsService;
import lombok.extern.log4j.Log4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 小程序相关配置可以放在这目前只放了footbar * 小程序相关配置可以放在这目前只放了footbar
@ -25,7 +31,7 @@ import java.util.List;
* @author yinzuomei@elink-cn.com * @author yinzuomei@elink-cn.com
* @date 2021/7/27 18:36 * @date 2021/7/27 18:36
*/ */
@Log4j @Slf4j
@RestController @RestController
@RequestMapping("pub") @RequestMapping("pub")
public class PubController { public class PubController {
@ -89,30 +95,52 @@ public class PubController {
/** /**
* 导出数据使用map接收 * 导出数据使用map接收
* *
* @param map * @param formDTO
* @param response * @param response
* @throws IOException * @throws IOException
* @return
*/ */
@PostMapping("/exportExcel") @RequestMapping("/exportExcel")
public void exportExcel(@RequestBody BaseDataFormDTO formDTO, HttpServletResponse response) throws IOException { public ModelAndView exportExcel(@RequestBody(required = false) BaseDataFormDTO formDTO) throws IOException {
/* try { String paramStr = "{\"agencyId\":\"7b6f9a9f9f38d5f9fa7ce94a93d6eb28\",\"agencyLevel\":\"city\",\"dateId\":\"20210616\",\"type\":\"thisWeek\",\"agencyName\":\"组织名称\"}";
formDTO = JSON.parseObject(paramStr, BaseDataFormDTO.class);
Map<String, Object> mapData = new HashMap<>(); Map<String, Object> mapData = new HashMap<>();
BaseStatsDataResultDTO baseStatsData = dataStatsService.getBaseStatsData(formDTO); mapData.put("collectData", dataStatsService.getBaseStatsData(formDTO));
String templatePath = "excel/trace_temp.xlsx"; mapData.put("subWorkFactList", dataStatsService.getSubWorkFact(formDTO));
log.info("exportExcel templatePath:{}",templatePath); mapData.put("subUserTotalList", dataStatsService.subUserTotal(formDTO));
mapData.put("dataType", baseStatsData); mapData.put("subTopicAndGroupList", dataStatsService.subTopicAndGroup(formDTO));
mapData.put("orgName",formDTO.getAgencyName());
mapData.put("type",getSearchTimeStr(formDTO.getType()));
long start = System.currentTimeMillis();
//自定义导出字段
//String templatePath = this.getClass().getClassLoader().getResource("excel/data_template.xlsx").getPath();
start = System.currentTimeMillis(); String templatePath = "excel/data_template.xlsx";
Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath, "数据汇总"), baseStatsData); log.info("exportExcel templatePath:"+templatePath);
//header
response.setHeader("content-Type", "application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("继续追踪导出详情-".concat(DateUtils.formatDate()) + ".xlsx", "UTF-8"));
//加密
log.error("excelExport build wb cost:{}",System.currentTimeMillis()-start);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}*/
ModelAndView mv = new ModelAndView(new EasypoiTemplateExcelView());
mv.addObject(TemplateExcelConstants.FILE_NAME, "数据导出-");
TemplateExportParams templateExportParams = new TemplateExportParams(templatePath);
Integer[] integers = {0,1,2,3};
templateExportParams.setSheetNum(integers);
mv.addObject(TemplateExcelConstants.PARAMS, templateExportParams);
mv.addObject(TemplateExcelConstants.MAP_DATA, mapData);
log.info("excelExport build wb cost:{}",System.currentTimeMillis()-start);
return mv;
}
private String getSearchTimeStr(String type){
//昨日/本周/本月
switch (type){
case "yesterday":
return "昨日";
case "thisWeek":
return "本周";
case "thisMonth":
return "本月";
default:
return "";
}
} }
} }

16
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -1702,14 +1702,12 @@ public class DataStatsServiceImpl implements DataStatsService {
} }
//4.按用户数降序排序并返回 //4.按用户数降序排序并返回
Collections.sort(resultList, new Comparator<SubUserTotalResultDTO>() { Collections.sort(resultList, (o1, o2) -> {
@Override
public int compare(SubUserTotalResultDTO o1, SubUserTotalResultDTO o2) {
//降序 //降序
return o2.getUserTotal().compareTo(o1.getUserTotal()); return o2.getUserTotal().compareTo(o1.getUserTotal());
}
}); });
AtomicInteger i = new AtomicInteger(1);
resultList.forEach(e->e.setSort(i.getAndIncrement()));
return resultList; return resultList;
} }
@ -1792,14 +1790,12 @@ public class DataStatsServiceImpl implements DataStatsService {
} }
//4.按用户数降序排序并返回 //4.按用户数降序排序并返回
Collections.sort(resultList, new Comparator<SubTopicAndGroupResultDTO>() { Collections.sort(resultList, (o1, o2) -> {
@Override
public int compare(SubTopicAndGroupResultDTO o1, SubTopicAndGroupResultDTO o2) {
//降序 //降序
return o2.getTopicTotal().compareTo(o1.getTopicTotal()); return o2.getTopicTotal().compareTo(o1.getTopicTotal());
}
}); });
AtomicInteger i = new AtomicInteger(1);
resultList.forEach(e->e.setSort(i.getAndIncrement()));
return resultList; return resultList;
} }

BIN
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/excel/data_template.xlsx

Binary file not shown.
Loading…
Cancel
Save