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/20] =?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/20] 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/20] 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/20] 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/20] =?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/20] =?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/20] =?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/20] =?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/20] =?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/20] =?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/20] 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); } /** From 55ef5c34c1c6116af9ffc21b8bd16dfc0e729487 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 13 Sep 2021 15:58:25 +0800 Subject: [PATCH 12/20] =?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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 3dd0fc8a8e..9f84657fe1 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,8 +236,8 @@ public class DataStatsController { * @Description 运营情况数据查询 * @author sun */ - @PostMapping("operateexport") - public Result> operateexport(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { + @PostMapping("operatedata") + public Result> operatedata(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); return new Result>().ok(dataStatsService.operateExport(formDTO)); } From e62e3fd4715a68cfb6b7fda759ee3771b4ceef8b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 13 Sep 2021 16:30:14 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E8=BF=90=E8=90=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/CustomerDataManageFormDTO.java | 6 + .../result/CustomerDataManageResultDTO.java | 32 ++- .../ScreenAgencyOrGridListDTO.java | 10 +- .../dataaggre/dao/datastats/DataStatsDao.java | 27 +++ .../StatsStaffPatrolRecordDailyDao.java | 8 + .../datastats/impl/DataStatsServiceImpl.java | 161 ++++++++++++- .../StatsStaffPatrolRecordDailyService.java | 7 + ...tatsStaffPatrolRecordDailyServiceImpl.java | 11 + .../impl/EvaluationIndexServiceImpl.java | 15 +- .../mapper/datastats/DatsStatsDao.xml | 216 ++++++++++++++++++ .../StatsStaffPatrolRecordDailyDao.xml | 41 ++++ .../evaluationindex/EvaluationIndexDao.xml | 2 + 12 files changed, 503 insertions(+), 33 deletions(-) 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 9ac1b660fe..d87beecab2 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 @@ -5,6 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; /** * @Author zxc @@ -56,4 +57,9 @@ public class CustomerDataManageFormDTO implements Serializable { */ @NotNull(message = "是否分页不能为空",groups = CustomerDataManageForm.class) private Boolean isPage; + + //组织或网格Id集合 + private List idList; + //数据类型【组织agency 网格grid】 + private String dataType; } 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 d7ae66100c..5c0827da7b 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 @@ -1,5 +1,6 @@ package com.epmet.dataaggre.dto.datastats.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; /** @@ -9,31 +10,38 @@ import lombok.Data; @Data public class CustomerDataManageResultDTO { - //组织 + //组织、网格Id + private String orgId; + //组织、网格名称 private String orgName; //用户数 - private Integer userCount; + private Integer userCount = 0; //居民数 - private Integer residentCount; + private Integer residentCount = 0; //党员数 - private Integer partyMemberCount; + private Integer partyMemberCount = 0; //小组数 - private Integer groupCount; + private Integer groupCount = 0; //话题数 - private Integer topicCount; + private Integer topicCount = 0; //议题数 - private Integer issueCount; + private Integer issueCount = 0; //项目数 - private Integer projectCount; + private Integer projectCount = 0; //结案项目数 - private Integer closedProjectCount; + private Integer closedProjectCount = 0; //巡查人数 - private Integer patrolPeopleCount; + private Integer patrolPeopleCount = 0; //巡查次数 - private Integer patrolCount; + private Integer patrolCount = 0; //巡查时长 private String patrolDuration; + //未转换前的巡查时长 + private Integer patrolDurationInteger = 0; + //数据对应dateId + @JsonIgnore + private String dateId; - private Integer patrolDurationInteger; + private String staffId; } 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 index 07afb7fbb6..02c5c9cbc8 100644 --- 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 @@ -18,14 +18,10 @@ public class ScreenAgencyOrGridListDTO implements Serializable { private List agencyGridList; @Data - public class AgencyGrid { + public static class AgencyGrid { //组织id - private String agencyId; + private String orgId; //组织名称 - private String agencyName; - //网格Id - private String gridId; - //网格name - private String gridName; + private String orgName; } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 9cf5a3a6e1..7172164e18 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.datastats; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; +import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; @@ -308,4 +309,30 @@ public interface DataStatsDao { * @author sun */ List selectGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO); + + /** + * @Description 直属组织或网格下注册用户数据 + * @author sun + */ + List regUserList(CustomerDataManageFormDTO formDTO); + /** + * @Description 直属组织或网格下群组数据 + * @author sun + */ + List groupList(CustomerDataManageFormDTO formDTO); + /** + * @Description 直属组织或网格下话题数据 + * @author sun + */ + List topicList(CustomerDataManageFormDTO formDTO); + /** + * @Description 直属组织或网格下议题数据 + * @author sun + */ + List issueList(CustomerDataManageFormDTO formDTO); + /** + * @Description 直属组织或网格下项目数据 + * @author sun + */ + List projectList(CustomerDataManageFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java index c7e68c410e..8f01bdda96 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java @@ -19,6 +19,8 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; +import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; import org.apache.ibatis.annotations.Mapper; @@ -43,4 +45,10 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao getPatrolSumList(@Param("agencyFullIdList") List agencyFullIdList, @Param("startDateId") String startDateId, @Param("endDateId") String endDateId); + + /** + * @Description 直属组织或网格下巡查数据 + * @author sun + */ + List patrolList(CustomerDataManageFormDTO formDTO); } 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 f62f24156a..76c49dbcbd 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 @@ -1934,10 +1934,15 @@ public class DataStatsServiceImpl implements DataStatsService { */ @Override public List operateExport(CustomerDataManageFormDTO formDTO) throws ParseException { + List resultList = new ArrayList<>(); //1.必要参数校验及处理 - if (!"Interval".equals(formDTO.getType()) && StringUtils.isEmpty(formDTO.getStartTime())) { + if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(formDTO.getStartTime())) { throw new RenException("请选择开始时间或查询累计值"); } + if (formDTO.getIsPage()) { + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + } //入参有开始时间的则需要减去一天 if (StringUtils.isNotBlank(formDTO.getStartTime())) { SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); @@ -1946,22 +1951,154 @@ public class DataStatsServiceImpl implements DataStatsService { formDTO.setStartTime(format.format(yesterday)); } - //2.查询组织现在,判断查询下级组织还是网格数据 + //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()); + //组织或网格Id集合 + List idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList()); + formDTO.setDataType(!"community".equals(agencyGrid.getLevel()) ? "agency" : "grid"); + formDTO.setIdList(idList); + + //3.查询截止日期用户、群组、话题、议题、项目、巡查数据 + List userEnd = dataStatsDao.regUserList(formDTO); + List groupEnd = dataStatsDao.groupList(formDTO); + List topicEnd = dataStatsDao.topicList(formDTO); + List issueEnd = dataStatsDao.issueList(formDTO); + List projectEnd = dataStatsDao.projectList(formDTO); + List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); + //4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 + List userStart = new ArrayList<>(); + List groupStart = new ArrayList<>(); + List topicStart = new ArrayList<>(); + List issueStart = new ArrayList<>(); + List projectStart = new ArrayList<>(); + if ("Interval".equals(formDTO.getType())) { + userStart = dataStatsDao.regUserList(formDTO); + groupStart = dataStatsDao.groupList(formDTO); + topicStart = dataStatsDao.topicList(formDTO); + issueStart = dataStatsDao.issueList(formDTO); + projectStart = dataStatsDao.projectList(formDTO); + } + //5.封装数据并返回 + List finalUserStart = userStart; + List finalGroupStart = groupStart; + List finalTopicStart = topicStart; + List finalIssueStart = issueStart; + List finalProjectStart = projectStart; + agencyGrid.getAgencyGridList().forEach(org -> { + CustomerDataManageResultDTO dto = new CustomerDataManageResultDTO(); + dto.setOrgId(org.getOrgId()); + dto.setOrgName(org.getOrgName()); + int user = 0; + int resi = 0; + int part = 0; + for (CustomerDataManageResultDTO u : userEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + user = u.getUserCount(); + resi = u.getResidentCount(); + part = u.getPartyMemberCount(); + if ("Interval".equals(formDTO.getType())) { + for (CustomerDataManageResultDTO s : finalUserStart) { + if (u.getOrgId().equals(s.getOrgId())) { + user = user - s.getUserCount(); + resi = resi - s.getResidentCount(); + part = part - s.getPartyMemberCount(); + } + } + } + } + } + int group = 0; + for (CustomerDataManageResultDTO u : groupEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + group = u.getGroupCount(); + if ("Interval".equals(formDTO.getType())) { + for (CustomerDataManageResultDTO s : finalGroupStart) { + if (u.getOrgId().equals(s.getOrgId())) { + group = group - s.getGroupCount(); + } + } + } + } + } + int topic = 0; + for (CustomerDataManageResultDTO u : topicEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + topic = u.getTopicCount(); + if ("Interval".equals(formDTO.getType())) { + for (CustomerDataManageResultDTO s : finalTopicStart) { + if (u.getOrgId().equals(s.getOrgId())) { + topic = topic - s.getTopicCount(); + } + } + } + } + } + int issue = 0; + for (CustomerDataManageResultDTO u : issueEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + issue = u.getIssueCount(); + if ("Interval".equals(formDTO.getType())) { + for (CustomerDataManageResultDTO s : finalIssueStart) { + if (u.getOrgId().equals(s.getOrgId())) { + issue = issue - s.getIssueCount(); + } + } + } + } + } + int project = 0; + int closed = 0; + for (CustomerDataManageResultDTO u : projectEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + project = u.getProjectCount(); + closed = u.getClosedProjectCount(); + if ("Interval".equals(formDTO.getType())) { + for (CustomerDataManageResultDTO s : finalProjectStart) { + if (u.getOrgId().equals(s.getOrgId())) { + project = project - s.getProjectCount(); + closed = closed - s.getClosedProjectCount(); + } + } + } + } + } + int patro = 0; + int patroCount = 0; + String patrolDuration = ""; + int patrolDurationInteger = 0; + List list = new ArrayList<>(); + for (CustomerDataManageResultDTO u : patrolEnd) { + if (org.getOrgId().equals(u.getOrgId())) { + patroCount += u.getPatrolCount(); + patrolDurationInteger += u.getPatrolDurationInteger(); + list.add(u.getStaffId()); + } + } + HashSet set = new HashSet(list); + patro = set.size(); + Integer minutes = patrolDurationInteger / 60; + patrolDuration = (minutes / 60 > 0 ? minutes / 60 + "小时" : "") + (minutes % 60 > 0 ? minutes % 60 + "分钟" : "0分钟"); + + dto.setUserCount(user); + dto.setResidentCount(resi); + dto.setPartyMemberCount(part); + dto.setGroupCount(group); + dto.setTopicCount(topic); + dto.setIssueCount(issue); + dto.setProjectCount(project); + dto.setClosedProjectCount(closed); + dto.setPatrolPeopleCount(patro); + dto.setPatrolCount(patroCount); + dto.setPatrolDuration(patrolDuration); + dto.setPatrolDurationInteger(patrolDurationInteger); - } - //3.封装数据并返回 - return null; + resultList.add(dto); + }); + + return resultList; } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java index e8ec143b3c..bd2e1ccf11 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java @@ -18,6 +18,8 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; +import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; @@ -40,4 +42,9 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService getPatrolSumList(List agencyList, String startDateId, String endDateId); + /** + * @Description 直属组织或网格下巡查数据 + * @author sun + */ + List patrolList(CustomerDataManageFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java index aad90034f3..22a2496ffe 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -4,6 +4,8 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.StatsStaffPatrolRecordDailyDao; +import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; +import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; @@ -36,4 +38,13 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl patrolList(CustomerDataManageFormDTO formDTO) { + return baseDao.patrolList(formDTO); + } + } 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 6e97769b26..ea95c436a8 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 @@ -173,6 +173,7 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { //2.根据组织级别判断查询直属组织或网格列表 List agencyList = new ArrayList<>(); List gridList = new ArrayList<>(); + List finalAgencyGridList = agencyGridList; if (!"community".equals(dto.getLevel())) { //2-1.直属下级组织列表 //2.判断客户是否存在子客户 @@ -183,11 +184,21 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { list.add(dto.getCustomerId()); agencyList = evaluationIndexDao.getSubAgencyListByAgency(null, dto.getAreaCode(), list); } - agencyGridList = ConvertUtils.sourceToTarget(agencyList, ScreenAgencyOrGridListDTO.AgencyGrid.class); + agencyList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getAgencyId()); + org.setOrgName(gr.getAgencyName()); + finalAgencyGridList.add(org); + }); } else { //2-2.直属下级网格列表 gridList = evaluationIndexDao.getSubGridList(agencyId); - agencyGridList = ConvertUtils.sourceToTarget(gridList, ScreenAgencyOrGridListDTO.AgencyGrid.class); + gridList.forEach(gr->{ + ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid(); + org.setOrgId(gr.getGridId()); + org.setOrgName(gr.getGridName()); + finalAgencyGridList.add(org); + }); } resultDTO.setLevel(dto.getLevel()); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 9f99415f2b..8df88699ac 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -797,4 +797,220 @@ GROUP BY staff_id + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index 5642d17f40..1bcc9ef704 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -15,4 +15,45 @@ + + + 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 afa7e56c2d..d140a0dbf3 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 @@ -76,6 +76,7 @@ WHERE del_flag = '0' AND parent_agency_id = #{agencyId} + ORDER BY CONVERT(grid_name USING gbk) ASC From d678089b80706169854bf310ff84af7cbbcf4267 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 13 Sep 2021 16:44:52 +0800 Subject: [PATCH 14/20] emm --- .../src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bc2659eccc..773291dfcc 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 @@ -106,7 +106,7 @@ public class ExcelUtils { //当前日期 fileName = DateUtils.format(new Date()); } - ExportParams params = new ExportParams(fileName, "sheet的Name"); + ExportParams params = new ExportParams(fileName,fileName); Workbook workbook = ExcelExportUtil.exportExcel(params, pojoClass, list); Sheet sheet1 = workbook.getSheetAt(0); sheet1.setDefaultColumnWidth(50*256); From 797ce8fbd25630848681c239717232f75e6289b7 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 13 Sep 2021 17:07:55 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=9A=82=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/CustomerDataManageResultDTO.java | 2 +- .../service/datastats/impl/DataStatsServiceImpl.java | 12 +++++++++++- .../mapper/evaluationindex/EvaluationIndexDao.xml | 2 -- 3 files changed, 12 insertions(+), 4 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 5c0827da7b..b5668643a1 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 @@ -41,7 +41,7 @@ public class CustomerDataManageResultDTO { //数据对应dateId @JsonIgnore private String dateId; - + @JsonIgnore private String staffId; } 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 76c49dbcbd..293ae7fc3d 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 @@ -1968,6 +1968,7 @@ public class DataStatsServiceImpl implements DataStatsService { List issueEnd = dataStatsDao.issueList(formDTO); List projectEnd = dataStatsDao.projectList(formDTO); List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); + //4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 List userStart = new ArrayList<>(); List groupStart = new ArrayList<>(); @@ -1981,7 +1982,8 @@ public class DataStatsServiceImpl implements DataStatsService { issueStart = dataStatsDao.issueList(formDTO); projectStart = dataStatsDao.projectList(formDTO); } - //5.封装数据并返回 + + //5.封装数据 List finalUserStart = userStart; List finalGroupStart = groupStart; List finalTopicStart = topicStart; @@ -2098,6 +2100,14 @@ public class DataStatsServiceImpl implements DataStatsService { resultList.add(dto); }); + //6.默认按用户总数降序 + Collections.sort(resultList, new Comparator() { + @Override + public int compare(CustomerDataManageResultDTO o1, CustomerDataManageResultDTO o2) { + return o2.getUserCount().compareTo(o1.getUserCount()); + } + }); + return resultList; } 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 d140a0dbf3..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 @@ -76,7 +76,6 @@ WHERE del_flag = '0' AND parent_agency_id = #{agencyId} - ORDER BY CONVERT(grid_name USING gbk) ASC From a27dbf979abb54735b388d72003a5c7d905b10bf Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 14 Sep 2021 09:39:03 +0800 Subject: [PATCH 16/20] mlgb --- .../result/CustomerDataManageResultDTO.java | 76 ++++++++------- .../controller/DataStatsController.java | 4 +- .../dataaggre/dao/datastats/DataStatsDao.java | 10 +- .../StatsStaffPatrolRecordDailyDao.java | 2 +- .../service/datastats/DataStatsService.java | 2 +- .../datastats/impl/DataStatsServiceImpl.java | 92 ++++++++++--------- .../StatsStaffPatrolRecordDailyService.java | 2 +- ...tatsStaffPatrolRecordDailyServiceImpl.java | 2 +- .../mapper/datastats/DatsStatsDao.xml | 25 +---- .../StatsStaffPatrolRecordDailyDao.xml | 2 +- 10 files changed, 110 insertions(+), 107 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 b5668643a1..2c7391672e 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 @@ -3,6 +3,9 @@ package com.epmet.dataaggre.dto.datastats.result; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; +import java.util.ArrayList; +import java.util.List; + /** * @Description 运营情况数据导出-接口返参 * @Auth sun @@ -10,38 +13,45 @@ import lombok.Data; @Data public class CustomerDataManageResultDTO { - //组织、网格Id - private String orgId; - //组织、网格名称 - private String orgName; - //用户数 - private Integer userCount = 0; - //居民数 - private Integer residentCount = 0; - //党员数 - private Integer partyMemberCount = 0; - //小组数 - private Integer groupCount = 0; - //话题数 - private Integer topicCount = 0; - //议题数 - private Integer issueCount = 0; - //项目数 - private Integer projectCount = 0; - //结案项目数 - private Integer closedProjectCount = 0; - //巡查人数 - private Integer patrolPeopleCount = 0; - //巡查次数 - private Integer patrolCount = 0; - //巡查时长 - private String patrolDuration; - //未转换前的巡查时长 - private Integer patrolDurationInteger = 0; - //数据对应dateId - @JsonIgnore - private String dateId; - @JsonIgnore - private String staffId; + List dataManageList = new ArrayList<>(); + private Integer total; + + @Data + public static class CustomerDataManage { + //组织、网格Id + private String orgId; + //组织、网格名称 + private String orgName; + //用户数 + private Integer userCount = 0; + //居民数 + private Integer residentCount = 0; + //党员数 + private Integer partyMemberCount = 0; + //小组数 + private Integer groupCount = 0; + //话题数 + private Integer topicCount = 0; + //议题数 + private Integer issueCount = 0; + //项目数 + private Integer projectCount = 0; + //结案项目数 + private Integer closedProjectCount = 0; + //巡查人数 + private Integer patrolPeopleCount = 0; + //巡查次数 + private Integer patrolCount = 0; + //巡查时长 + private String patrolDuration; + //未转换前的巡查时长 + private Integer patrolDurationInteger = 0; + //数据对应dateId + @JsonIgnore + private String dateId; + @JsonIgnore + private String staffId; + } + } 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 9f84657fe1..9e1929056d 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 @@ -237,9 +237,9 @@ public class DataStatsController { * @author sun */ @PostMapping("operatedata") - public Result> operatedata(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { + public Result operatedata(@RequestBody CustomerDataManageFormDTO formDTO) throws ParseException { ValidatorUtils.validateEntity(formDTO, CustomerDataManageFormDTO.CustomerDataManageForm.class); - return new Result>().ok(dataStatsService.operateExport(formDTO)); + return new Result().ok(dataStatsService.operateExport(formDTO)); } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 7172164e18..8db54dd03b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -314,25 +314,25 @@ public interface DataStatsDao { * @Description 直属组织或网格下注册用户数据 * @author sun */ - List regUserList(CustomerDataManageFormDTO formDTO); + List regUserList(CustomerDataManageFormDTO formDTO); /** * @Description 直属组织或网格下群组数据 * @author sun */ - List groupList(CustomerDataManageFormDTO formDTO); + List groupList(CustomerDataManageFormDTO formDTO); /** * @Description 直属组织或网格下话题数据 * @author sun */ - List topicList(CustomerDataManageFormDTO formDTO); + List topicList(CustomerDataManageFormDTO formDTO); /** * @Description 直属组织或网格下议题数据 * @author sun */ - List issueList(CustomerDataManageFormDTO formDTO); + List issueList(CustomerDataManageFormDTO formDTO); /** * @Description 直属组织或网格下项目数据 * @author sun */ - List projectList(CustomerDataManageFormDTO formDTO); + List projectList(CustomerDataManageFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java index 8f01bdda96..11ed072080 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java @@ -50,5 +50,5 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao patrolList(CustomerDataManageFormDTO formDTO); + List patrolList(CustomerDataManageFormDTO 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 11fd673ceb..36fa24c7b2 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 @@ -245,6 +245,6 @@ public interface DataStatsService { * @Description 运营情况数据查询 * @author sun */ - List operateExport(CustomerDataManageFormDTO formDTO) throws ParseException; + CustomerDataManageResultDTO 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 293ae7fc3d..73e191dec1 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 @@ -1933,16 +1933,13 @@ public class DataStatsServiceImpl implements DataStatsService { * @author sun */ @Override - public List operateExport(CustomerDataManageFormDTO formDTO) throws ParseException { - List resultList = new ArrayList<>(); + public CustomerDataManageResultDTO operateExport(CustomerDataManageFormDTO formDTO) throws ParseException { + CustomerDataManageResultDTO resultDTO = new CustomerDataManageResultDTO(); + List dataManageList = new ArrayList<>(); //1.必要参数校验及处理 if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(formDTO.getStartTime())) { throw new RenException("请选择开始时间或查询累计值"); } - if (formDTO.getIsPage()) { - int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - formDTO.setPageNo(pageIndex); - } //入参有开始时间的则需要减去一天 if (StringUtils.isNotBlank(formDTO.getStartTime())) { SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); @@ -1954,27 +1951,29 @@ public class DataStatsServiceImpl implements DataStatsService { //2.查询组织信息,判断查询下级组织还是网格数据 ScreenAgencyOrGridListDTO agencyGrid = indexService.getSubAgencyOrGridList(formDTO.getAgencyId()); if (null == agencyGrid) { - return new ArrayList<>(); + return new CustomerDataManageResultDTO(); } //组织或网格Id集合 List idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList()); formDTO.setDataType(!"community".equals(agencyGrid.getLevel()) ? "agency" : "grid"); formDTO.setIdList(idList); + resultDTO.setTotal(idList.size()); //3.查询截止日期用户、群组、话题、议题、项目、巡查数据 - List userEnd = dataStatsDao.regUserList(formDTO); - List groupEnd = dataStatsDao.groupList(formDTO); - List topicEnd = dataStatsDao.topicList(formDTO); - List issueEnd = dataStatsDao.issueList(formDTO); - List projectEnd = dataStatsDao.projectList(formDTO); - List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); + List userEnd = dataStatsDao.regUserList(formDTO); + List groupEnd = dataStatsDao.groupList(formDTO); + List topicEnd = dataStatsDao.topicList(formDTO); + List issueEnd = dataStatsDao.issueList(formDTO); + List projectEnd = dataStatsDao.projectList(formDTO); + //巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员 + List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); //4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 - List userStart = new ArrayList<>(); - List groupStart = new ArrayList<>(); - List topicStart = new ArrayList<>(); - List issueStart = new ArrayList<>(); - List projectStart = new ArrayList<>(); + List userStart = new ArrayList<>(); + List groupStart = new ArrayList<>(); + List topicStart = new ArrayList<>(); + List issueStart = new ArrayList<>(); + List projectStart = new ArrayList<>(); if ("Interval".equals(formDTO.getType())) { userStart = dataStatsDao.regUserList(formDTO); groupStart = dataStatsDao.groupList(formDTO); @@ -1984,25 +1983,25 @@ public class DataStatsServiceImpl implements DataStatsService { } //5.封装数据 - List finalUserStart = userStart; - List finalGroupStart = groupStart; - List finalTopicStart = topicStart; - List finalIssueStart = issueStart; - List finalProjectStart = projectStart; + List finalUserStart = userStart; + List finalGroupStart = groupStart; + List finalTopicStart = topicStart; + List finalIssueStart = issueStart; + List finalProjectStart = projectStart; agencyGrid.getAgencyGridList().forEach(org -> { - CustomerDataManageResultDTO dto = new CustomerDataManageResultDTO(); + CustomerDataManageResultDTO.CustomerDataManage dto = new CustomerDataManageResultDTO.CustomerDataManage(); dto.setOrgId(org.getOrgId()); dto.setOrgName(org.getOrgName()); int user = 0; int resi = 0; int part = 0; - for (CustomerDataManageResultDTO u : userEnd) { + for (CustomerDataManageResultDTO.CustomerDataManage u : userEnd) { if (org.getOrgId().equals(u.getOrgId())) { user = u.getUserCount(); resi = u.getResidentCount(); part = u.getPartyMemberCount(); if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO s : finalUserStart) { + for (CustomerDataManageResultDTO.CustomerDataManage s : finalUserStart) { if (u.getOrgId().equals(s.getOrgId())) { user = user - s.getUserCount(); resi = resi - s.getResidentCount(); @@ -2013,11 +2012,11 @@ public class DataStatsServiceImpl implements DataStatsService { } } int group = 0; - for (CustomerDataManageResultDTO u : groupEnd) { + for (CustomerDataManageResultDTO.CustomerDataManage u : groupEnd) { if (org.getOrgId().equals(u.getOrgId())) { group = u.getGroupCount(); if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO s : finalGroupStart) { + for (CustomerDataManageResultDTO.CustomerDataManage s : finalGroupStart) { if (u.getOrgId().equals(s.getOrgId())) { group = group - s.getGroupCount(); } @@ -2026,11 +2025,11 @@ public class DataStatsServiceImpl implements DataStatsService { } } int topic = 0; - for (CustomerDataManageResultDTO u : topicEnd) { + for (CustomerDataManageResultDTO.CustomerDataManage u : topicEnd) { if (org.getOrgId().equals(u.getOrgId())) { topic = u.getTopicCount(); if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO s : finalTopicStart) { + for (CustomerDataManageResultDTO.CustomerDataManage s : finalTopicStart) { if (u.getOrgId().equals(s.getOrgId())) { topic = topic - s.getTopicCount(); } @@ -2039,11 +2038,11 @@ public class DataStatsServiceImpl implements DataStatsService { } } int issue = 0; - for (CustomerDataManageResultDTO u : issueEnd) { + for (CustomerDataManageResultDTO.CustomerDataManage u : issueEnd) { if (org.getOrgId().equals(u.getOrgId())) { issue = u.getIssueCount(); if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO s : finalIssueStart) { + for (CustomerDataManageResultDTO.CustomerDataManage s : finalIssueStart) { if (u.getOrgId().equals(s.getOrgId())) { issue = issue - s.getIssueCount(); } @@ -2053,12 +2052,12 @@ public class DataStatsServiceImpl implements DataStatsService { } int project = 0; int closed = 0; - for (CustomerDataManageResultDTO u : projectEnd) { + for (CustomerDataManageResultDTO.CustomerDataManage u : projectEnd) { if (org.getOrgId().equals(u.getOrgId())) { project = u.getProjectCount(); closed = u.getClosedProjectCount(); if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO s : finalProjectStart) { + for (CustomerDataManageResultDTO.CustomerDataManage s : finalProjectStart) { if (u.getOrgId().equals(s.getOrgId())) { project = project - s.getProjectCount(); closed = closed - s.getClosedProjectCount(); @@ -2071,15 +2070,14 @@ public class DataStatsServiceImpl implements DataStatsService { int patroCount = 0; String patrolDuration = ""; int patrolDurationInteger = 0; - List list = new ArrayList<>(); - for (CustomerDataManageResultDTO u : patrolEnd) { + HashSet set = new HashSet(); + for (CustomerDataManageResultDTO.CustomerDataManage u : patrolEnd) { if (org.getOrgId().equals(u.getOrgId())) { patroCount += u.getPatrolCount(); patrolDurationInteger += u.getPatrolDurationInteger(); - list.add(u.getStaffId()); + set.add(u.getStaffId()); } } - HashSet set = new HashSet(list); patro = set.size(); Integer minutes = patrolDurationInteger / 60; patrolDuration = (minutes / 60 > 0 ? minutes / 60 + "小时" : "") + (minutes % 60 > 0 ? minutes % 60 + "分钟" : "0分钟"); @@ -2097,18 +2095,28 @@ public class DataStatsServiceImpl implements DataStatsService { dto.setPatrolDuration(patrolDuration); dto.setPatrolDurationInteger(patrolDurationInteger); - resultList.add(dto); + dataManageList.add(dto); }); //6.默认按用户总数降序 - Collections.sort(resultList, new Comparator() { + Collections.sort(dataManageList, new Comparator() { @Override - public int compare(CustomerDataManageResultDTO o1, CustomerDataManageResultDTO o2) { + public int compare(CustomerDataManageResultDTO.CustomerDataManage o1, CustomerDataManageResultDTO.CustomerDataManage o2) { return o2.getUserCount().compareTo(o1.getUserCount()); } }); - return resultList; + //7.物理分页并返回 + if (formDTO.getIsPage()) { + int firstIndex = (formDTO.getPageNo() - 1) * formDTO.getPageSize(); + int lastIndex = formDTO.getPageNo() * formDTO.getPageSize(); + List list = dataManageList.subList((firstIndex > dataManageList.size() ? dataManageList.size() : firstIndex), (lastIndex > dataManageList.size() ? dataManageList.size() : lastIndex)); + resultDTO.setDataManageList(list); + return resultDTO; + } + resultDTO.setDataManageList(dataManageList); + return resultDTO; } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java index bd2e1ccf11..ce49c18f73 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java @@ -46,5 +46,5 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService patrolList(CustomerDataManageFormDTO formDTO); + List patrolList(CustomerDataManageFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java index 22a2496ffe..d24dcbe10c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -43,7 +43,7 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl patrolList(CustomerDataManageFormDTO formDTO) { + public List patrolList(CustomerDataManageFormDTO formDTO) { return baseDao.patrolList(formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 8df88699ac..dc6772b551 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -797,7 +797,7 @@ GROUP BY staff_id - SELECT t.orgId, t.dateId, t.userCount, t.partyMemberCount,t.residentCount FROM @@ -836,11 +836,8 @@ ) t GROUP BY t.orgId - - LIMIT #{pageNo}, #{pageSize} - - SELECT t.orgId, t.dateId, t.groupCount FROM @@ -879,11 +876,8 @@ ) t GROUP BY t.orgId - - LIMIT #{pageNo}, #{pageSize} - - SELECT t.orgId, t.dateId, t.topicCount FROM @@ -922,11 +916,8 @@ ) t GROUP BY t.orgId - - LIMIT #{pageNo}, #{pageSize} - - SELECT t.orgId, t.dateId, t.issueCount FROM @@ -965,11 +956,8 @@ ) t GROUP BY t.orgId - - LIMIT #{pageNo}, #{pageSize} - - SELECT t.orgId, t.dateId, t.projectCount, t.closedProjectCount FROM @@ -1008,9 +996,6 @@ ) t GROUP BY t.orgId - - LIMIT #{pageNo}, #{pageSize} - diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index 1bcc9ef704..5c9bc40337 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -16,7 +16,7 @@ - SELECT t.dateId, t.orgId, t.staffId, sum(t.patrolCount),SUM(t.patrolDurationInteger) FROM ( From b28b956d34131c2c22cf68df5d42369a8b59d5ce Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 14 Sep 2021 09:42:48 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E5=BA=94=E5=89=8D=E7=AB=AF=E8=A6=81?= =?UTF-8?q?=E6=B1=82=E6=A0=BC=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datastats/impl/DataStatsServiceImpl.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) 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 73e191dec1..e2c9ec6ce4 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,21 +1856,21 @@ public class DataStatsServiceImpl implements DataStatsService { */ @Override public void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception { - List result = operateExport(formDTO); + List result = operateExport(formDTO).getDataManageList(); if (!CollectionUtils.isEmpty(result)){ - CustomerDataManageResultDTO c = new CustomerDataManageResultDTO(); + CustomerDataManageResultDTO.CustomerDataManage c = new CustomerDataManageResultDTO.CustomerDataManage(); 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.setUserCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getUserCount))); + c.setResidentCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getResidentCount))); + c.setPartyMemberCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getPartyMemberCount))); + c.setGroupCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getGroupCount))); + c.setTopicCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getTopicCount))); + c.setIssueCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getIssueCount))); + c.setProjectCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getProjectCount))); + c.setClosedProjectCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getClosedProjectCount))); + c.setPatrolPeopleCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolPeopleCount))); + c.setPatrolCount(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolCount))); + c.setPatrolDurationInteger(result.stream().collect(Collectors.summingInt(CustomerDataManageResultDTO.CustomerDataManage::getPatrolDurationInteger))); c.setPatrolDuration(getHm(c.getPatrolDurationInteger())); result.add(c); } From be58a18db8e01701873856707fc2cf0fcba3dafd Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 14 Sep 2021 10:06:03 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=B8=8D=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/datastats/result/CustomerDataManageResultDTO.java | 2 +- .../service/datastats/impl/DataStatsServiceImpl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 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 2c7391672e..e736309945 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 @@ -13,7 +13,7 @@ import java.util.List; @Data public class CustomerDataManageResultDTO { - List dataManageList = new ArrayList<>(); + List list = new ArrayList<>(); private Integer total; @Data 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 e2c9ec6ce4..0948ea0f84 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,7 +1856,7 @@ public class DataStatsServiceImpl implements DataStatsService { */ @Override public void CustomerDataManage(CustomerDataManageFormDTO formDTO, HttpServletResponse response) throws Exception { - List result = operateExport(formDTO).getDataManageList(); + List result = operateExport(formDTO).getList(); if (!CollectionUtils.isEmpty(result)){ CustomerDataManageResultDTO.CustomerDataManage c = new CustomerDataManageResultDTO.CustomerDataManage(); c.setOrgName("合计"); @@ -2111,10 +2111,10 @@ public class DataStatsServiceImpl implements DataStatsService { int firstIndex = (formDTO.getPageNo() - 1) * formDTO.getPageSize(); int lastIndex = formDTO.getPageNo() * formDTO.getPageSize(); List list = dataManageList.subList((firstIndex > dataManageList.size() ? dataManageList.size() : firstIndex), (lastIndex > dataManageList.size() ? dataManageList.size() : lastIndex)); - resultDTO.setDataManageList(list); + resultDTO.setList(list); return resultDTO; } - resultDTO.setDataManageList(dataManageList); + resultDTO.setList(dataManageList); return resultDTO; } From 84ce7bf0873b2f5f25e0fdc1dfa234effb85651b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 14 Sep 2021 14:33:51 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/CustomerDataManageFormDTO.java | 2 + .../datastats/impl/DataStatsServiceImpl.java | 124 ++++++++---------- .../mapper/datastats/DatsStatsDao.xml | 20 +-- 3 files changed, 65 insertions(+), 81 deletions(-) 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 d87beecab2..e707ef6d6c 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 @@ -60,6 +60,8 @@ public class CustomerDataManageFormDTO implements Serializable { //组织或网格Id集合 private List idList; + //按起始时间还是结束时间查数据【start end】 + private String sourceType; //数据类型【组织agency 网格grid】 private String dataType; } 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 0948ea0f84..59be2dfd15 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 @@ -1960,34 +1960,46 @@ public class DataStatsServiceImpl implements DataStatsService { resultDTO.setTotal(idList.size()); //3.查询截止日期用户、群组、话题、议题、项目、巡查数据 + formDTO.setSourceType("end"); List userEnd = dataStatsDao.regUserList(formDTO); + HashMap uEndMap = new HashMap<>(); + userEnd.stream().forEach(u->uEndMap.put(u.getOrgId(),u)); List groupEnd = dataStatsDao.groupList(formDTO); + HashMap gEndMap = new HashMap<>(); + groupEnd.stream().forEach(u->gEndMap.put(u.getOrgId(),u)); List topicEnd = dataStatsDao.topicList(formDTO); + HashMap tEndMap = new HashMap<>(); + topicEnd.stream().forEach(u->tEndMap.put(u.getOrgId(),u)); List issueEnd = dataStatsDao.issueList(formDTO); + HashMap iEndMap = new HashMap<>(); + issueEnd.stream().forEach(u->iEndMap.put(u.getOrgId(),u)); List projectEnd = dataStatsDao.projectList(formDTO); + HashMap pEndMap = new HashMap<>(); + projectEnd.stream().forEach(u->pEndMap.put(u.getOrgId(),u)); //巡查数据不区分区间差值,只计算累计值,人员做去重处理且是有巡查记录的人员 List patrolEnd = statsStaffPatrolRecordDailyService.patrolList(formDTO); //4.判断是否需要查询起始日期用户、群组、话题、议题、项目、巡查数据 - List userStart = new ArrayList<>(); - List groupStart = new ArrayList<>(); - List topicStart = new ArrayList<>(); - List issueStart = new ArrayList<>(); - List projectStart = new ArrayList<>(); + HashMap uStartMap = new HashMap<>(); + HashMap gStartMap = new HashMap<>(); + HashMap tStartMap = new HashMap<>(); + HashMap iStartMap = new HashMap<>(); + HashMap pStartMap = new HashMap<>(); if ("Interval".equals(formDTO.getType())) { - userStart = dataStatsDao.regUserList(formDTO); - groupStart = dataStatsDao.groupList(formDTO); - topicStart = dataStatsDao.topicList(formDTO); - issueStart = dataStatsDao.issueList(formDTO); - projectStart = dataStatsDao.projectList(formDTO); + formDTO.setSourceType("start"); + List userStart = dataStatsDao.regUserList(formDTO); + userStart.stream().forEach(u->uStartMap.put(u.getOrgId(),u)); + List groupStart = dataStatsDao.groupList(formDTO); + groupStart.stream().forEach(u->gStartMap.put(u.getOrgId(),u)); + List topicStart = dataStatsDao.topicList(formDTO); + topicStart.stream().forEach(u->tStartMap.put(u.getOrgId(),u)); + List issueStart = dataStatsDao.issueList(formDTO); + issueStart.stream().forEach(u->iStartMap.put(u.getOrgId(),u)); + List projectStart = dataStatsDao.projectList(formDTO); + projectStart.stream().forEach(u->pStartMap.put(u.getOrgId(),u)); } //5.封装数据 - List finalUserStart = userStart; - List finalGroupStart = groupStart; - List finalTopicStart = topicStart; - List finalIssueStart = issueStart; - List finalProjectStart = projectStart; agencyGrid.getAgencyGridList().forEach(org -> { CustomerDataManageResultDTO.CustomerDataManage dto = new CustomerDataManageResultDTO.CustomerDataManage(); dto.setOrgId(org.getOrgId()); @@ -1995,75 +2007,45 @@ public class DataStatsServiceImpl implements DataStatsService { int user = 0; int resi = 0; int part = 0; - for (CustomerDataManageResultDTO.CustomerDataManage u : userEnd) { - if (org.getOrgId().equals(u.getOrgId())) { - user = u.getUserCount(); - resi = u.getResidentCount(); - part = u.getPartyMemberCount(); - if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO.CustomerDataManage s : finalUserStart) { - if (u.getOrgId().equals(s.getOrgId())) { - user = user - s.getUserCount(); - resi = resi - s.getResidentCount(); - part = part - s.getPartyMemberCount(); - } - } - } + if(uEndMap.containsKey(org.getOrgId())){ + user = uEndMap.get(org.getOrgId()).getUserCount(); + resi = uEndMap.get(org.getOrgId()).getResidentCount(); + part = uEndMap.get(org.getOrgId()).getPartyMemberCount(); + if ("Interval".equals(formDTO.getType())&&uStartMap.containsKey(org.getOrgId())) { + user = user - uStartMap.get(org.getOrgId()).getUserCount(); + resi = resi - uStartMap.get(org.getOrgId()).getResidentCount(); + part = part - uStartMap.get(org.getOrgId()).getPartyMemberCount(); } } int group = 0; - for (CustomerDataManageResultDTO.CustomerDataManage u : groupEnd) { - if (org.getOrgId().equals(u.getOrgId())) { - group = u.getGroupCount(); - if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO.CustomerDataManage s : finalGroupStart) { - if (u.getOrgId().equals(s.getOrgId())) { - group = group - s.getGroupCount(); - } - } - } + if(gEndMap.containsKey(org.getOrgId())){ + group = gEndMap.get(org.getOrgId()).getGroupCount(); + if ("Interval".equals(formDTO.getType())&&gStartMap.containsKey(org.getOrgId())) { + group = group - gStartMap.get(org.getOrgId()).getGroupCount(); } } int topic = 0; - for (CustomerDataManageResultDTO.CustomerDataManage u : topicEnd) { - if (org.getOrgId().equals(u.getOrgId())) { - topic = u.getTopicCount(); - if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO.CustomerDataManage s : finalTopicStart) { - if (u.getOrgId().equals(s.getOrgId())) { - topic = topic - s.getTopicCount(); - } - } - } + if(tEndMap.containsKey(org.getOrgId())){ + topic = tEndMap.get(org.getOrgId()).getTopicCount(); + if ("Interval".equals(formDTO.getType())&&tStartMap.containsKey(org.getOrgId())) { + topic = topic - tStartMap.get(org.getOrgId()).getTopicCount(); } } int issue = 0; - for (CustomerDataManageResultDTO.CustomerDataManage u : issueEnd) { - if (org.getOrgId().equals(u.getOrgId())) { - issue = u.getIssueCount(); - if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO.CustomerDataManage s : finalIssueStart) { - if (u.getOrgId().equals(s.getOrgId())) { - issue = issue - s.getIssueCount(); - } - } - } + if(iEndMap.containsKey(org.getOrgId())){ + issue = iEndMap.get(org.getOrgId()).getIssueCount(); + if ("Interval".equals(formDTO.getType())&&iStartMap.containsKey(org.getOrgId())) { + issue = issue - iStartMap.get(org.getOrgId()).getIssueCount(); } } int project = 0; int closed = 0; - for (CustomerDataManageResultDTO.CustomerDataManage u : projectEnd) { - if (org.getOrgId().equals(u.getOrgId())) { - project = u.getProjectCount(); - closed = u.getClosedProjectCount(); - if ("Interval".equals(formDTO.getType())) { - for (CustomerDataManageResultDTO.CustomerDataManage s : finalProjectStart) { - if (u.getOrgId().equals(s.getOrgId())) { - project = project - s.getProjectCount(); - closed = closed - s.getClosedProjectCount(); - } - } - } + if(pEndMap.containsKey(org.getOrgId())){ + project = pEndMap.get(org.getOrgId()).getProjectCount(); + closed = pEndMap.get(org.getOrgId()).getClosedProjectCount(); + if ("Interval".equals(formDTO.getType())&&pStartMap.containsKey(org.getOrgId())) { + project = project - pStartMap.get(org.getOrgId()).getProjectCount(); + closed = closed - pStartMap.get(org.getOrgId()).getClosedProjectCount(); } } int patro = 0; diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index dc6772b551..0850b865c5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -822,11 +822,11 @@ - + AND date_id =]]> #{startTime} ORDER BY date_id ASC - + AND date_id #{endTime} ORDER BY date_id DESC @@ -862,11 +862,11 @@ - + AND date_id =]]> #{startTime} ORDER BY date_id ASC - + AND date_id #{endTime} ORDER BY date_id DESC @@ -902,11 +902,11 @@ - + AND date_id =]]> #{startTime} ORDER BY date_id ASC - + AND date_id #{endTime} ORDER BY date_id DESC @@ -942,11 +942,11 @@ - + AND date_id =]]> #{startTime} ORDER BY date_id ASC - + AND date_id #{endTime} ORDER BY date_id DESC @@ -982,11 +982,11 @@ - + AND date_id =]]> #{startTime} ORDER BY date_id ASC - + AND date_id #{endTime} ORDER BY date_id DESC From 368b4ee98bda530a45a60d2f615ab9637174675f Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 15 Sep 2021 13:55:21 +0800 Subject: [PATCH 20/20] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index 5c9bc40337..b9a488a03b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -18,10 +18,10 @@