From 1443c242bb5273451ac98b6b51ac82e62765b32a Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 10 Sep 2021 10:27:57 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/CustomerDataManageExcel.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java new file mode 100644 index 0000000000..22d159a349 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java @@ -0,0 +1,50 @@ +package com.epmet.dataaggre.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @Author zxc + * @DateTime 2021/9/10 10:15 上午 + * @DESC + */ +@Data +public class CustomerDataManageExcel { + + @Excel(name = "组织") + private String orgName; + + @Excel(name = "用户数") + private Integer userCount; + + @Excel(name = "居民数") + private Integer residentCount; + + @Excel(name = "党员数") + private Integer partyMemberCount; + + @Excel(name = "小组数") + private Integer groupCount; + + @Excel(name = "话题数") + private Integer topicCount; + + @Excel(name = "议题数") + private Integer issueCount; + + @Excel(name = "项目数") + private Integer projectCount; + + @Excel(name = "结案项目数") + private Integer closedProjectCount; + + @Excel(name = "巡查人数") + private Integer patrolPeopleCount; + + @Excel(name = "巡查次数") + private Integer patrolCount; + + @Excel(name = "巡查时长") + private Integer patrolDuration; + +} From 3a25ada1ff65be30d5cadd59be9d57a2bba1e7b6 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 10 Sep 2021 10:55:01 +0800 Subject: [PATCH 02/11] xxxx --- .../java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java index 22d159a349..4c2dd81ba0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java @@ -45,6 +45,6 @@ public class CustomerDataManageExcel { private Integer patrolCount; @Excel(name = "巡查时长") - private Integer patrolDuration; + private String patrolDuration; } From 68e4833d49f5c4be8e112d2c0a2cfff1ca02d34b Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 10 Sep 2021 11:12:02 +0800 Subject: [PATCH 03/11] DTO --- .../form/CustomerDataManageFormDTO.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java new file mode 100644 index 0000000000..950169c020 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java @@ -0,0 +1,58 @@ +package com.epmet.dataaggre.dto.datastats.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/9/10 11:04 上午 + * @DESC + */ +@Data +public class CustomerDataManageFormDTO implements Serializable { + + private static final long serialVersionUID = 6462094914874831738L; + + public interface CustomerDataManageForm{} + + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空",groups = CustomerDataManageForm.class) + private String customerId; + + /** + * 组织ID + */ + @NotBlank(message = "组织ID不能为空",groups = CustomerDataManageForm.class) + private String agencyId; + + /** + * 区间:Interval 截止:end + */ + @NotBlank(message = "type不能为空",groups = CustomerDataManageForm.class) + private String type; + + /** + * 开始时间【yyyymmdd】 + */ + private String startTime; + + /** + * 结束时间【yyyymmdd】 + */ + @NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class) + private String endTime; + + private Integer pageNo; + + private Integer pageSize; + + /** + * 是否分页【true分 false不分】 + */ + @NotBlank(message = "是否分页不能为空",groups = CustomerDataManageForm.class) + private Boolean isPage; +} From 132482b8063659a3d36e158891e8f37be26e6ed1 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 10 Sep 2021 13:49:22 +0800 Subject: [PATCH 04/11] dto --- .../dto/datastats/form/CustomerDataManageFormDTO.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java index 950169c020..164efa9f1c 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.dataaggre.dto.datastats.form; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -53,6 +54,6 @@ public class CustomerDataManageFormDTO implements Serializable { /** * 是否分页【true分 false不分】 */ - @NotBlank(message = "是否分页不能为空",groups = CustomerDataManageForm.class) + @NotNull(message = "是否分页不能为空",groups = CustomerDataManageForm.class) private Boolean isPage; } From 6a02bc00eae495c22d5e07f1e7f9144cb63dd330 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 10 Sep 2021 16:59:56 +0800 Subject: [PATCH 05/11] =?UTF-8?q?poi=E6=A1=86=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/ExcelUtils.java | 41 ++++++++++++ .../controller/DataStatsController.java | 24 +++++-- .../evaluationindex/EvaluationIndexDao.java | 8 +++ .../service/datastats/DataStatsService.java | 10 +++ .../datastats/impl/DataStatsServiceImpl.java | 64 ++++++++++++++++++- .../EvaluationIndexService.java | 8 +++ .../impl/EvaluationIndexServiceImpl.java | 11 ++++ .../evaluationindex/EvaluationIndexDao.xml | 7 ++ 8 files changed, 166 insertions(+), 7 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java index 2ac6af82a5..6eef730ad4 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java @@ -14,11 +14,13 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; +import org.springframework.util.CollectionUtils; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -80,4 +82,43 @@ public class ExcelUtils { exportExcel(response, fileName, targetList, targetClass); } + + public static void exportExcelToTargetDisposeAll(HttpServletResponse response, String fileName, Collection sourceList, + Class targetClass) throws Exception { + if (!CollectionUtils.isEmpty(sourceList)){ + List targetList = new ArrayList<>(sourceList.size()); + for(Object source : sourceList){ + Object target = targetClass.newInstance(); + BeanUtils.copyProperties(source, target); + targetList.add(target); + } + exportExcelDispose(response, fileName, targetList, targetClass); + }else { + exportExcelDispose(response, fileName, new ArrayList<>(), targetClass); + } + + + } + + public static void exportExcelDispose(HttpServletResponse response, String fileName, Collection list, + Class pojoClass) throws IOException { + if(StringUtils.isBlank(fileName)){ + //当前日期 + fileName = DateUtils.format(new Date()); + } + ExportParams params = new ExportParams(fileName, "sheet的Name"); + Workbook workbook = ExcelExportUtil.exportExcel(params, pojoClass, list); + Sheet sheet1 = workbook.getSheetAt(0); + sheet1.setDefaultColumnWidth(50*256); + sheet1.setDefaultRowHeight((short)(2*256)); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls"); + ServletOutputStream out = response.getOutputStream(); + workbook.write(out); + out.flush(); + out.close(); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index a56d769119..3e495ab112 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -1,18 +1,20 @@ package com.epmet.dataaggre.controller; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.excel.CustomerDataManageExcel; import com.epmet.dataaggre.service.datastats.DataStatsService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @Author sun @@ -215,4 +217,18 @@ public class DataStatsController { return new Result().ok(dataStatsService.governRatio(formDTO)); } + /** + * @Description 客户数据管理导出 + * @Param formDTO + * @Param response + * @author zxc + * @date 2021/9/10 3:52 下午 + */ + @PostMapping("operateexport") + public void CustomerDataManage(@RequestBody CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception { + ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); + dataStatsService.CustomerDataManage(formDTO,response); + } + + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java index 197b4e05e6..138ff3d449 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/evaluationindex/EvaluationIndexDao.java @@ -95,4 +95,12 @@ public interface EvaluationIndexDao { */ List getSubAgencyListByAgency(@Param("agencyId") String agencyId, @Param("areaCode") String areaCode, @Param("list") List list); + /** + * @Description 根据组织ID查询组织名 + * @Param agencyId + * @author zxc + * @date 2021/9/10 3:54 下午 + */ + String selectAgencyNameByAgencyId(@Param("agencyId")String agencyId); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index d4756648a0..30df4925a1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -9,6 +9,7 @@ import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -229,4 +230,13 @@ public interface DataStatsService { * @author sun */ List getGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO); + + /** + * @Description 客户数据管理导出 + * @Param formDTO + * @Param response + * @author zxc + * @date 2021/9/10 3:52 下午 + */ + void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 1002b8c34a..19441f076a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -6,7 +6,8 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.enums.OrgLevelEnum; import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.dataaggre.constant.DataSourceConstant; + import com.epmet.commons.tools.utils.ExcelUtils; + import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.datastats.DataStatsDao; import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; @@ -24,7 +25,8 @@ import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; -import com.epmet.dataaggre.service.datastats.DataStatsService; + import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; @@ -35,7 +37,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.math.BigDecimal; + import javax.servlet.http.HttpServletResponse; + import java.math.BigDecimal; import java.math.RoundingMode; import java.text.NumberFormat; import java.text.SimpleDateFormat; @@ -1841,4 +1844,59 @@ public class DataStatsServiceImpl implements DataStatsService { return dataStatsDao.selectGirdMemberPatrol(formDTO); } + /** + * @Description 客户数据管理导出 + * @Param formDTO + * @Param response + * @author zxc + * @date 2021/9/10 3:52 下午 + */ + @Override + public void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception { + List l = new ArrayList<>(); + if (!CollectionUtils.isEmpty(l)){ + CustomerDataManageExcel d3 = new CustomerDataManageExcel(); + d3.setOrgName("合计"); + d3.setUserCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getUserCount))); + d3.setResidentCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getResidentCount))); + d3.setPartyMemberCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPartyMemberCount))); + d3.setGroupCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getGroupCount))); + d3.setTopicCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getTopicCount))); + d3.setIssueCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getIssueCount))); + d3.setProjectCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getProjectCount))); + d3.setClosedProjectCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getClosedProjectCount))); + d3.setPatrolPeopleCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolPeopleCount))); + d3.setPatrolCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolCount))); + d3.setPatrolDuration(""); + l.add(d3); + } + String fileName = excelName(formDTO); + ExcelUtils.exportExcelToTargetDisposeAll(response,fileName,l, CustomerDataManageExcel.class); + } + + public String excelName(CustomerDataManageFormDTO formDTO){ + StringBuffer s = new StringBuffer(); + String agencyName = indexService.selectAgencyNameByAgencyId(formDTO.getAgencyId()); + s.append(agencyName); + if (StringUtils.isNotBlank(formDTO.getStartTime())){ + String startTime = formDTO.getStartTime(); + String sYear = startTime.substring(0, 4); + String sMonth = startTime.substring(4, 6); + String sDay = startTime.substring(6, 8); + String endTime = formDTO.getEndTime(); + String eYear = endTime.substring(0, 4); + String eMonth = endTime.substring(4, 6); + String eDay = endTime.substring(6, 8); + s.append(sYear).append("年").append(sMonth).append("月").append(sDay).append("日-") + .append(eYear).append("年").append(eMonth).append("月").append(eDay).append("日区间新增值"); + }else { + String endTime = formDTO.getEndTime(); + String eYear = endTime.substring(0, 4); + String eMonth = endTime.substring(4, 6); + String eDay = endTime.substring(6, 8); + s.append(eYear).append("年").append(eMonth).append("月").append(eDay).append("日截止累计值"); + } + return s.toString(); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java index 43be38a84f..fe37824d86 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java @@ -71,4 +71,12 @@ public interface EvaluationIndexService { */ List getSubAgencyListByAgency(String agencyId); + /** + * @Description 根据组织ID查询组织名 + * @Param agencyId + * @author zxc + * @date 2021/9/10 3:54 下午 + */ + String selectAgencyNameByAgencyId(String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java index f8c7eb301a..d648c07732 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java @@ -143,4 +143,15 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { } } + /** + * @Description 根据组织ID查询组织名 + * @Param agencyId + * @author zxc + * @date 2021/9/10 3:54 下午 + */ + @Override + public String selectAgencyNameByAgencyId(String agencyId) { + return evaluationIndexDao.selectAgencyNameByAgencyId(agencyId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml index 7ad70627dc..afa7e56c2d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml @@ -175,4 +175,11 @@ + + + From b9a5c2d1716a8252135a1fd9a04148b498cddcd1 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 10 Sep 2021 17:33:14 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/CustomerDataManageFormDTO.java | 4 +- .../result/CustomerDataManageResultDTO.java | 37 +++++++ .../ScreenAgencyOrGridListDTO.java | 31 ++++++ .../controller/DataStatsController.java | 10 ++ .../service/datastats/DataStatsService.java | 8 ++ .../datastats/impl/DataStatsServiceImpl.java | 104 ++++++++++++------ .../EvaluationIndexService.java | 7 ++ .../impl/EvaluationIndexServiceImpl.java | 41 +++++++ 8 files changed, 208 insertions(+), 34 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/ScreenAgencyOrGridListDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java index 164efa9f1c..9ac1b660fe 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/CustomerDataManageFormDTO.java @@ -47,9 +47,9 @@ public class CustomerDataManageFormDTO implements Serializable { @NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class) private String endTime; - private Integer pageNo; + private Integer pageNo = 1; - private Integer pageSize; + private Integer pageSize = 20; /** * 是否分页【true分 false不分】 diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java new file mode 100644 index 0000000000..71ed7bf9b1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import lombok.Data; + +/** + * @Description 运营情况数据导出-接口返参 + * @Auth sun + */ +@Data +public class CustomerDataManageResultDTO { + + //组织 + private String orgName; + //用户数 + private Integer userCount; + //居民数 + private Integer residentCount; + //党员数 + private Integer partyMemberCount; + //小组数 + private Integer groupCount; + //话题数 + private Integer topicCount; + //议题数 + private Integer issueCount; + //项目数 + private Integer projectCount; + //结案项目数 + private Integer closedProjectCount; + //巡查人数 + private Integer patrolPeopleCount; + //巡查次数 + private Integer patrolCount; + //巡查时长 + private String patrolDuration; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/ScreenAgencyOrGridListDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/ScreenAgencyOrGridListDTO.java new file mode 100644 index 0000000000..07afb7fbb6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/evaluationindex/ScreenAgencyOrGridListDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dataaggre.dto.evaluationindex; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author sun + * @Description 根据组织Id判断查询直属下级组织/网格列表,组织存在子客户的查询包含子客户组织数据 + */ +@Data +public class ScreenAgencyOrGridListDTO implements Serializable { + private static final long serialVersionUID = 6328123559936824470L; + //组织级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city,省级:province) + private String level; + //直属下级组织或网格集合 + private List agencyGridList; + + @Data + public class AgencyGrid { + //组织id + private String agencyId; + //组织名称 + private String agencyName; + //网格Id + private String gridId; + //网格name + private String gridName; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index 3e495ab112..25268127cf 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -230,5 +230,15 @@ public class DataStatsController { dataStatsService.CustomerDataManage(formDTO,response); } + /** + * @Param formDTO + * @Description 运营情况数据查询 + * @author sun + */ + @PostMapping("governratio") + public Result> operateexport(@RequestBody CustomerDataManageFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); + return new Result>().ok(dataStatsService.operateExport(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 30df4925a1..11fd673ceb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -10,6 +10,7 @@ import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import javax.servlet.http.HttpServletResponse; +import java.text.ParseException; import java.util.List; /** @@ -239,4 +240,11 @@ public interface DataStatsService { * @date 2021/9/10 3:52 下午 */ void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception; + + /** + * @Description 运营情况数据查询 + * @author sun + */ + List operateExport(CustomerDataManageFormDTO formDTO) throws ParseException; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 19441f076a..062a51d105 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -2,50 +2,53 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.dynamic.datasource.annotation.DataSource; -import com.epmet.commons.tools.constant.NumConstant; + import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.enums.OrgLevelEnum; -import com.epmet.commons.tools.utils.DateUtils; + import com.epmet.commons.tools.exception.RenException; + import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.dataaggre.constant.DataSourceConstant; -import com.epmet.dataaggre.constant.OrgConstant; -import com.epmet.dataaggre.dao.datastats.DataStatsDao; -import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; -import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; -import com.epmet.dataaggre.dto.datastats.form.*; -import com.epmet.dataaggre.dto.datastats.result.*; + import com.epmet.dataaggre.constant.OrgConstant; + import com.epmet.dataaggre.dao.datastats.DataStatsDao; + import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; + import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; + import com.epmet.dataaggre.dto.datastats.form.*; + import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; -import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; -import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; -import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; -import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; -import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; -import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; + import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; + import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; + import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; + import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; + import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; + import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; + import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; import com.epmet.dataaggre.excel.CustomerDataManageExcel; import com.epmet.dataaggre.service.datastats.DataStatsService; -import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; -import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; -import com.epmet.dataaggre.service.opercrm.CustomerRelation; -import com.github.pagehelper.PageHelper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; + import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; + import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; + import com.epmet.dataaggre.service.opercrm.CustomerRelation; + import com.github.pagehelper.PageHelper; + import lombok.extern.slf4j.Slf4j; + import org.apache.commons.collections4.CollectionUtils; + import org.apache.commons.lang3.StringUtils; + import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.NumberFormat; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; + import java.math.RoundingMode; + import java.text.NumberFormat; + import java.text.ParseException; + import java.text.SimpleDateFormat; + import java.util.*; + import java.util.concurrent.atomic.AtomicInteger; + import java.util.concurrent.atomic.AtomicReference; + import java.util.stream.Collectors; /** * @Author sun @@ -1899,4 +1902,41 @@ public class DataStatsServiceImpl implements DataStatsService { return s.toString(); } + /** + * @Param formDTO + * @Description 运营情况数据查询 + * @author sun + */ + @Override + public List operateExport(CustomerDataManageFormDTO formDTO) throws ParseException { + //1.必要参数校验及处理 + if (!"Interval".equals(formDTO.getType()) && StringUtils.isEmpty(formDTO.getStartTime())) { + throw new RenException("请选择开始时间或查询累计值"); + } + //入参有开始时间的则需要减去一天 + if (StringUtils.isNotBlank(formDTO.getStartTime())) { + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + Date date = format.parse(formDTO.getStartTime()); + Date yesterday = DateUtils.addDateDays(date, -1); + formDTO.setStartTime(format.format(yesterday)); + } + + //2.查询组织现在,判断查询下级组织还是网格数据 + ScreenAgencyOrGridListDTO agencyGrid = indexService.getSubAgencyOrGridList(formDTO.getAgencyId()); + if (null == agencyGrid) { + return new ArrayList<>(); + } + List idList; + if (!"community".equals(agencyGrid.getLevel())) { + //组织层级用户、群组、话题、议题、项目、巡查数据查询 + idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getAgencyId).collect(Collectors.toList()); + } else { + //网格层级用户、群组、话题、议题、项目、巡查数据查询 + idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getGridId).collect(Collectors.toList()); + + } + //3.封装数据并返回 + return null; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java index fe37824d86..67468e32de 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/EvaluationIndexService.java @@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.evaluationindex; import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO; import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; @@ -79,4 +80,10 @@ public interface EvaluationIndexService { */ String selectAgencyNameByAgencyId(String agencyId); + /** + * @Description 根据组织Id判断查询直属下级组织/网格列表,组织存在子客户的查询包含子客户组织数据 + * @author sun + */ + ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java index d648c07732..6e97769b26 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java @@ -2,10 +2,12 @@ package com.epmet.dataaggre.service.evaluationindex.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.evaluationindex.EvaluationIndexDao; import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO; import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO; +import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; @@ -154,4 +156,43 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { return evaluationIndexDao.selectAgencyNameByAgencyId(agencyId); } + /** + * @Description 根据组织Id判断查询直属下级组织/网格列表,组织存在子客户的查询包含子客户组织数据 + * @author sun + */ + @Override + public ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String agencyId) { + ScreenAgencyOrGridListDTO resultDTO = new ScreenAgencyOrGridListDTO(); + List agencyGridList = new ArrayList<>(); + //1.查询组织信息 + ScreenCustomerAgencyDTO dto = evaluationIndexDao.getByAgencyId(agencyId); + if (dto == null) { + log.error(String.format("组织信息不存在,组织Id->%s"), agencyId); + return new ScreenAgencyOrGridListDTO(); + } + //2.根据组织级别判断查询直属组织或网格列表 + List agencyList = new ArrayList<>(); + List gridList = new ArrayList<>(); + if (!"community".equals(dto.getLevel())) { + //2-1.直属下级组织列表 + //2.判断客户是否存在子客户 + List list = customerRelation.haveSubCustomer(dto.getCustomerId()); + if (!CollectionUtils.isNotEmpty(list)) { + agencyList = evaluationIndexDao.getSubAgencyListByAgency(agencyId, null, null); + } else { + list.add(dto.getCustomerId()); + agencyList = evaluationIndexDao.getSubAgencyListByAgency(null, dto.getAreaCode(), list); + } + agencyGridList = ConvertUtils.sourceToTarget(agencyList, ScreenAgencyOrGridListDTO.AgencyGrid.class); + } else { + //2-2.直属下级网格列表 + gridList = evaluationIndexDao.getSubGridList(agencyId); + agencyGridList = ConvertUtils.sourceToTarget(gridList, ScreenAgencyOrGridListDTO.AgencyGrid.class); + } + + resultDTO.setLevel(dto.getLevel()); + resultDTO.setAgencyGridList(agencyGridList); + return resultDTO; + } + } From f91d3d5dc48eb78aa15706002793714684783a18 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 13 Sep 2021 09:56:15 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=B7=A1=E6=9F=A5=E6=97=B6=E9=95=BF?= =?UTF-8?q?=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dataaggre/excel/CustomerDataManageExcel.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java index 4c2dd81ba0..821a11426f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/CustomerDataManageExcel.java @@ -47,4 +47,9 @@ public class CustomerDataManageExcel { @Excel(name = "巡查时长") private String patrolDuration; + /** + * 未转换前的巡查时长 + */ + private Integer patrolDurationInteger; + } From b314b9d19d89adf5c8214a62042aa07e10a069d5 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 13 Sep 2021 10:22:17 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dataaggre/controller/DataStatsController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index 25268127cf..62218578b4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.text.ParseException; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -236,7 +237,7 @@ public class DataStatsController { * @author sun */ @PostMapping("governratio") - public Result> operateexport(@RequestBody CustomerDataManageFormDTO formDTO) { + public Result> operateexport(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); return new Result>().ok(dataStatsService.operateExport(formDTO)); } From c03c83ea7a5b030c82be070ea02af50779ac6837 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 13 Sep 2021 10:36:09 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=96=B0=E6=96=B9=E6=B3=95=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/ExcelUtils.java | 3 ++- .../datastats/impl/DataStatsServiceImpl.java | 27 ++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java index 6eef730ad4..bc2659eccc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java @@ -113,8 +113,9 @@ public class ExcelUtils { sheet1.setDefaultRowHeight((short)(2*256)); response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel"); + fileName = fileName + ".xls"; response.setHeader("Content-Disposition", - "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls"); + "attachment;filename=" +fileName); ServletOutputStream out = response.getOutputStream(); workbook.write(out); out.flush(); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 062a51d105..2ee14db994 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1870,13 +1870,38 @@ public class DataStatsServiceImpl implements DataStatsService { d3.setClosedProjectCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getClosedProjectCount))); d3.setPatrolPeopleCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolPeopleCount))); d3.setPatrolCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolCount))); - d3.setPatrolDuration(""); + d3.setPatrolDurationInteger(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolDurationInteger))); + d3.setPatrolDuration(getHm(d3.getPatrolDurationInteger())); l.add(d3); } String fileName = excelName(formDTO); ExcelUtils.exportExcelToTargetDisposeAll(response,fileName,l, CustomerDataManageExcel.class); } + /** + * @Description 秒转换时分 + * @Param seconds + * @author zxc + * @date 2021/9/13 10:03 上午 + */ + public String getHm(Integer seconds){ + String result = "0分钟"; + if (seconds >= NumConstant.SIXTY) { + Integer hours = seconds / 3600; + Integer minutes = seconds % 3600 / 60; + result = (hours < NumConstant.ONE ? "" : hours + "小时") + (minutes < NumConstant.ONE ? "" : minutes + "分钟"); + }else if (seconds < NumConstant.SIXTY && seconds > NumConstant.ZERO){ + result = "1分钟"; + } + return result; + } + + /** + * @Description 表头获取 + * @Param formDTO + * @author zxc + * @date 2021/9/13 10:02 上午 + */ public String excelName(CustomerDataManageFormDTO formDTO){ StringBuffer s = new StringBuffer(); String agencyName = indexService.selectAgencyNameByAgencyId(formDTO.getAgencyId()); From 88b5e10ca7cc4210cc72646691298131156e0a12 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 13 Sep 2021 15:41:43 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dataaggre/controller/DataStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java index 62218578b4..3dd0fc8a8e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java @@ -236,7 +236,7 @@ public class DataStatsController { * @Description 运营情况数据查询 * @author sun */ - @PostMapping("governratio") + @PostMapping("operateexport") public Result> operateexport(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); return new Result>().ok(dataStatsService.operateExport(formDTO)); From 6878418ec7146bef90c1358e466a425378e11305 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 13 Sep 2021 15:44:54 +0800 Subject: [PATCH 11/11] emm --- .../result/CustomerDataManageResultDTO.java | 2 ++ .../datastats/impl/DataStatsServiceImpl.java | 36 +++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java index 71ed7bf9b1..d7ae66100c 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/CustomerDataManageResultDTO.java @@ -34,4 +34,6 @@ public class CustomerDataManageResultDTO { //巡查时长 private String patrolDuration; + private Integer patrolDurationInteger; + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 2ee14db994..f62f24156a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1856,26 +1856,26 @@ public class DataStatsServiceImpl implements DataStatsService { */ @Override public void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception { - List l = new ArrayList<>(); - if (!CollectionUtils.isEmpty(l)){ - CustomerDataManageExcel d3 = new CustomerDataManageExcel(); - d3.setOrgName("合计"); - d3.setUserCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getUserCount))); - d3.setResidentCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getResidentCount))); - d3.setPartyMemberCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPartyMemberCount))); - d3.setGroupCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getGroupCount))); - d3.setTopicCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getTopicCount))); - d3.setIssueCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getIssueCount))); - d3.setProjectCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getProjectCount))); - d3.setClosedProjectCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getClosedProjectCount))); - d3.setPatrolPeopleCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolPeopleCount))); - d3.setPatrolCount(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolCount))); - d3.setPatrolDurationInteger(l.stream().collect(Collectors.summingInt(CustomerDataManageExcel::getPatrolDurationInteger))); - d3.setPatrolDuration(getHm(d3.getPatrolDurationInteger())); - l.add(d3); + List result = operateExport(formDTO); + if (!CollectionUtils.isEmpty(result)){ + CustomerDataManageResultDTO c = new CustomerDataManageResultDTO(); + c.setOrgName("合计"); + c.setUserCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getUserCount))); + c.setResidentCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getResidentCount))); + c.setPartyMemberCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getPartyMemberCount))); + c.setGroupCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getGroupCount))); + c.setTopicCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getTopicCount))); + c.setIssueCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getIssueCount))); + c.setProjectCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getProjectCount))); + c.setClosedProjectCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getClosedProjectCount))); + c.setPatrolPeopleCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getPatrolPeopleCount))); + c.setPatrolCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getPatrolCount))); + c.setPatrolDurationInteger(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO::getPatrolDurationInteger))); + c.setPatrolDuration(getHm(c.getPatrolDurationInteger())); + result.add(c); } String fileName = excelName(formDTO); - ExcelUtils.exportExcelToTargetDisposeAll(response,fileName,l, CustomerDataManageExcel.class); + ExcelUtils.exportExcelToTargetDisposeAll(response,fileName,result, CustomerDataManageExcel.class); } /**