From 88420ebd9344307d3e1cc8d3a6e8c75c5915cb63 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 27 Jul 2022 16:33:41 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dataaggre/constant/OrgConstant.java | 3 +- .../dto/govorg/form/OrgStatisticsFormDTO.java | 22 +++ .../result/MemberProjectInfoResultDTO.java | 23 +++ .../dto/govorg/result/OrgCountDTO.java | 17 +++ .../result/OrgProjectDetailResultDTO.java | 24 +++ .../controller/GovOrgController.java | 11 ++ .../dataaggre/dao/datastats/DataStatsDao.java | 6 + .../dataaggre/dao/epmetuser/StaffRoleDao.java | 3 + .../dao/govorg/CustomerAgencyDao.java | 2 + .../dataaggre/dao/govproject/ProjectDao.java | 5 + .../service/datastats/DataStatsService.java | 6 + .../datastats/impl/DataStatsServiceImpl.java | 144 +++++++++++------- .../service/epmetuser/EpmetUserService.java | 11 +- .../epmetuser/impl/EpmetUserServiceImpl.java | 23 ++- .../service/govorg/GovOrgService.java | 26 +++- .../govorg/impl/GovOrgServiceImpl.java | 134 +++++++++++++++- .../service/govproject/GovProjectService.java | 6 +- .../impl/GovProjectServiceImpl.java | 20 +++ .../mapper/datastats/DatsStatsDao.xml | 37 +++++ .../mapper/epmetuser/StaffRoleDao.xml | 19 +++ .../mapper/govorg/CustomerAgencyDao.xml | 10 ++ .../mapper/govproject/ProjectDao.xml | 39 +++++ 22 files changed, 520 insertions(+), 71 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java index 5119475926..f6e180eb7f 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java @@ -10,7 +10,8 @@ public interface OrgConstant { String PROVINCE = "province"; String CITY = "city"; String DISTRICT = "district"; - + String STREET = "street"; + String COMMUNITY = "community"; String GRID_ID="GRID_ID"; String GENDER="GENDER"; String HOUSE_TYPE_KEY="HOUSE_TYPE"; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java new file mode 100644 index 0000000000..f6f81f36d7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:27 + */ +@Data +public class OrgStatisticsFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -1043502365053945317L; + private String agencyId; + private String orgId; + private String orgType; + private String type; + private String startDate; + private String endDate; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java new file mode 100644 index 0000000000..4b4ac940a3 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:33 + */ +@NoArgsConstructor +@Data +public class MemberProjectInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -4880909768378661921L; + private String staffId; + private String staffName; + private String orgName; + private String projectCount; + private String closedCount; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java new file mode 100644 index 0000000000..1163413ab7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgCountDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 14:56 + */ +@Data +public class OrgCountDTO implements Serializable { + private static final long serialVersionUID = -1875812403619088015L; + private String orgId; + private Integer count; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java new file mode 100644 index 0000000000..302e232d8d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/OrgProjectDetailResultDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/7/27 9:32 + */ +@NoArgsConstructor +@Data +public class OrgProjectDetailResultDTO implements Serializable { + private static final long serialVersionUID = 6333117500929136144L; + private String orgId; + private String orgName; + private Integer memberCount = 0; + private Integer projectCount = 0; + private Integer closedCount = 0; + private Integer projectAve = 0; + private Integer closedAve = 0; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 134278d433..2e5f0bff93 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -439,4 +439,15 @@ public class GovOrgController { } return new Result().ok(govOrgService.queryBuildingInfo(buildingId)); } + + @PostMapping("orgProjectDetailList") + public Result> orgProjectDetailList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { + return new Result>().ok(govOrgService.orgProjectDetailList(tokenDto, formDTO)); + } + + @PostMapping("memberProjectInfoList") + public Result> memberProjectInfoList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { + return new Result>().ok(govOrgService.memberProjectInfoList(tokenDto, 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 af97c5e52c..2c910a3057 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 @@ -26,7 +26,9 @@ import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -373,4 +375,8 @@ public interface DataStatsDao { */ List getGridProejctToProjectMain(GridLivelyFormDTO formDTO); + List getAgencyProjectTotal(OrgStatisticsFormDTO formDTO); + + List getMemberCount(@Param("agencyId")String agencyId, @Param("dateId") String dateId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java index e508cb2666..1540c564d6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.RoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -74,4 +75,6 @@ public interface StaffRoleDao extends BaseDao { */ List selectStaffByRole(@Param("customerId") String customerId, @Param("roleId") String roleId, @Param("userId") String userId); + List getMemberCount(@Param("customerId") String customerId); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index 076b7af7bd..ba9043c0f4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -106,4 +106,6 @@ public interface CustomerAgencyDao extends BaseDao { */ LinkedList subAgencyListAndGridSumNum(@Param("agencyId") String agencyId); + List getSubAgencyList(@Param("agencyId") String agencyId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 35dd1601b5..3057cfbb25 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -19,6 +19,8 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; @@ -123,4 +125,7 @@ public interface ProjectDao extends BaseDao { */ List getEventOrgList(@Param("eventIds") List eventIds); List getCategoryCount(ProjectCategoryTotalFormDTO formDTO); + + List getGridProjectCount(OrgStatisticsFormDTO formDTO); + List getGridClosedProjectCount(OrgStatisticsFormDTO 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 754ee01d50..db0827a62a 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 @@ -7,6 +7,7 @@ import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; @@ -16,6 +17,7 @@ import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.util.List; +import java.util.Map; /** * @Author sun @@ -296,4 +298,8 @@ public interface DataStatsService { * @author sun */ List getGridProejctToProjectMain(GridLivelyFormDTO formDTO); + + Map getAgencyProjectTotal(OrgStatisticsFormDTO formDTO); + + Map getMemberMap(String agencyId); } 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 8682ec5876..b89ce1b0c3 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 @@ -1,63 +1,66 @@ package com.epmet.dataaggre.service.datastats.impl; import cn.afterturn.easypoi.excel.entity.ExportParams; -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.enums.OrgLevelEnum; -import com.epmet.commons.tools.enums.OrgTypeEnum; -import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.feign.ResultDataResolver; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; -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.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; -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.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.form.GridLivelyFormDTO; -import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; -import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; -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.govorg.GovOrgService; -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.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; + 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.enums.OrgLevelEnum; + import com.epmet.commons.tools.enums.OrgTypeEnum; + import com.epmet.commons.tools.exception.RenException; + import com.epmet.commons.tools.feign.ResultDataResolver; + import com.epmet.commons.tools.utils.ConvertUtils; + import com.epmet.commons.tools.utils.DateUtils; + import com.epmet.commons.tools.utils.ExcelUtils; + import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; + 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.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; + 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.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.form.GridLivelyFormDTO; + import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; + import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; + import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; + import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; + import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; + 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.govorg.GovOrgService; + 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.ParseException; + import java.text.SimpleDateFormat; + import java.util.*; + import java.util.concurrent.atomic.AtomicInteger; + import java.util.concurrent.atomic.AtomicReference; + import java.util.function.Function; + import java.util.stream.Collectors; /** * @Author sun @@ -2267,4 +2270,31 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve public List getGridProejctToProjectMain(GridLivelyFormDTO formDTO) { return dataStatsDao.getGridProejctToProjectMain(formDTO); } + + @Override + public Map getAgencyProjectTotal(OrgStatisticsFormDTO formDTO) { + List list = dataStatsDao.getAgencyProjectTotal(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(SubAgencyProjectResultDTO::getAgencyId, Function.identity())); + } + + /** + * 组织下网格的网格员数量统计 + * @Param agencyId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 16:11 + */ + @Override + public Map getMemberMap(String agencyId) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + List list = dataStatsDao.getMemberCount(agencyId, dateId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 01b9dae907..014135e533 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -13,7 +13,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import java.util.List; -import java.util.Set; +import java.util.Map; /** * @Author zxc @@ -208,4 +208,13 @@ public interface EpmetUserService { Integer getTotalByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, List resiRule, List houseIds); + /** + * 统计各组织下网格员数量 + * + * @Param customerId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 14:58 + */ + Map getMemberCount(String customerId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 000affa6ff..79cb151439 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -26,10 +26,7 @@ import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; -import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; -import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; -import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO; -import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; @@ -857,4 +854,22 @@ public class EpmetUserServiceImpl implements EpmetUserService { public Integer getTotalByPolicyRules(String customerId, String orgIdPath, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, List resiRule, List houseIds) { return icResiUserDao.getTotalByPolicyRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, houseId, idCard, name, resiRule, houseIds); } + + /** + * 统计各组织下网格员数量 + * + * @param customerId + * @Param customerId + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/27 14:58 + */ + @Override + public Map getMemberCount(String customerId) { + List list = staffRoleDao.getMemberCount(customerId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index ee502bd493..aee2f7dbd7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; @@ -11,13 +12,10 @@ import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; -import com.epmet.dataaggre.entity.govorg.IcHouseEntity; import com.epmet.dto.IcNeighborHoodDTO; -import com.epmet.dto.result.NeighborHoodListResultDTO; import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Set; /** * @Author zxc @@ -223,4 +221,26 @@ public interface GovOrgService { List statRule, Integer pageNo, Integer pageSize); List neighborhoodsByIds(List neighborhoodIds); + + /** + * 组织项目统计 + * + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:43 + */ + PageData orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO); + + /** + * 网格员项目相关统计 + * + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:44 + */ + PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 86999e17bd..fb237d158e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -5,7 +5,6 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dingtalk.api.request.OapiRobotSendRequest; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.Constant; @@ -18,6 +17,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; @@ -27,11 +27,12 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.govorg.*; +import com.epmet.dataaggre.dto.datastats.result.SubAgencyProjectResultDTO; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; @@ -41,7 +42,7 @@ import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; -import com.epmet.dataaggre.entity.govorg.IcHouseEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dataaggre.excel.GridLivelyDetailExcel; import com.epmet.dataaggre.excel.GridLivelyExcel; import com.epmet.dataaggre.service.commonservice.AreaCodeService; @@ -49,11 +50,13 @@ import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.feign.OssFeignClient; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.fileupload.FileItem; @@ -66,6 +69,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.commons.CommonsMultipartFile; +import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -117,6 +121,8 @@ public class GovOrgServiceImpl implements GovOrgService { private IcHouseDao houseDao; @Autowired private IcNeighborhoodDao neighborhoodDao; + @Resource + private GovProjectService govProjectService; /** * @param staffId @@ -1130,4 +1136,126 @@ public class GovOrgServiceImpl implements GovOrgService { public List neighborhoodsByIds(List neighborhoodIds) { return neighborhoodDao.neighborhoodsByIds(neighborhoodIds); } + + /** + * 组织项目统计 + * + * @param tokenDto + * @param formDTO + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData < MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:43 + */ + @Override + public PageData orgProjectDetailList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { + List resultList = new ArrayList<>(); + if (StringUtils.isBlank(formDTO.getAgencyId())) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + } + CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + long total = 0; + if (OrgConstant.COMMUNITY.equals(agencyEntity.getLevel()) && NumConstant.ONE_STR.equals(formDTO.getType())) { + //获取网格列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CustomerGridEntity::getCustomerId, tokenDto.getCustomerId()); + wrapper.eq(CustomerGridEntity::getPid, formDTO.getAgencyId()); + wrapper.last("ORDER BY CONVERT ( GRID_NAME USING gbk ) ASC"); + List gridList = customerGridDao.selectList(wrapper); + //拼装数据 + if (CollectionUtils.isNotEmpty(gridList)) { + //统计网格项目数 + Map projectMap = govProjectService.getGridProjectMap(formDTO); + //统计网格关闭项目数 + Map closedMap = govProjectService.getGridClosedProjectMap(formDTO); + //网格员统计 + Map memberMap = dataStatsService.getMemberMap(formDTO.getAgencyId()); + resultList = gridList.stream().map(grid -> { + OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO(); + dto.setOrgId(grid.getId()); + dto.setOrgName(grid.getGridName()); + if (projectMap.containsKey(grid.getId())) { + dto.setProjectCount(projectMap.get(grid.getId())); + } + if (closedMap.containsKey(grid.getId())) { + dto.setClosedCount(closedMap.get(grid.getId())); + } + if (memberMap.containsKey(grid.getId())) { + dto.setMemberCount(memberMap.get(grid.getId())); + dto.setProjectAve(dto.getProjectCount()/memberMap.get(grid.getId())); + dto.setClosedAve(dto.getClosedCount()/memberMap.get(grid.getId())); + } + return dto; + }).collect(Collectors.toList()); + } + //获取统计数据 + PageInfo pageInfo = new PageInfo<>(gridList); + total = pageInfo.getTotal(); + } else { + //获取组织列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CustomerAgencyEntity::getCustomerId, tokenDto.getCustomerId()); + if (NumConstant.ZERO_STR.equals(formDTO.getType())) { + wrapper.eq(CustomerAgencyEntity::getId, formDTO.getAgencyId()); + } else { + wrapper.eq(CustomerAgencyEntity::getPid, formDTO.getAgencyId()); + } + wrapper.last("ORDER BY CONVERT ( ORGANIZATION_NAME USING gbk ) ASC"); + List agencyList = customerAgencyDao.selectList(wrapper); + //拼装数据 + if (CollectionUtils.isNotEmpty(agencyList)) { + //项目相关统计 + Map projectMap = dataStatsService.getAgencyProjectTotal(formDTO); + //网格员统计 + Map memberMap = epmetUserService.getMemberCount(tokenDto.getCustomerId()); + + resultList = agencyList.stream().map(agency -> { + OrgProjectDetailResultDTO dto = new OrgProjectDetailResultDTO(); + dto.setOrgId(agency.getId()); + dto.setOrgName(agency.getOrganizationName()); + if (projectMap.containsKey(agency.getId())) { + dto.setProjectCount(projectMap.get(agency.getId()).getProjectTotal()); + dto.setClosedCount(projectMap.get(agency.getId()).getClosedProjectTotal()); + } + //获取当前组织的所有下级组织ID(包含本级) + List agencyIds = customerAgencyDao.getSubAgencyList(agency.getId()); + //将下级组织网格员数加起来 + int memberCount = agencyIds.stream().filter(memberMap::containsKey).mapToInt(memberMap::get).sum(); + dto.setMemberCount(memberCount); + if (memberCount != NumConstant.ZERO) { + dto.setProjectAve(dto.getProjectCount()/memberCount); + dto.setClosedAve(dto.getClosedCount()/memberCount); + } + return dto; + + }).collect(Collectors.toList()); + } + //获取统计数据 + PageInfo pageInfo = new PageInfo<>(agencyList); + total = pageInfo.getTotal(); + } + return new PageData<>(resultList, total); + } + + /** + * 网格员项目相关统计 + * + * @param tokenDto + * @param formDTO + * @Param tokenDto + * @Param formDTO + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 9:44 + */ + @Override + public PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { + return null; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index 44ec60c4cd..e7123f51ca 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -2,13 +2,14 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.IcEventEntity; -import com.sun.org.apache.xpath.internal.operations.Bool; import java.util.LinkedList; import java.util.List; +import java.util.Map; /** * @Author zxc @@ -120,5 +121,6 @@ public interface GovProjectService { */ List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize); - + Map getGridProjectMap(OrgStatisticsFormDTO formDTO); + Map getGridClosedProjectMap(OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index de4c2c2bc5..f491b2f3b2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -26,6 +26,8 @@ import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; +import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; @@ -665,6 +667,24 @@ public class GovProjectServiceImpl implements GovProjectService { return icEventDao.selectList(query); } + @Override + public Map getGridProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getGridProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + @Override + public Map getGridClosedProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getGridClosedProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + /** * 构造事件查询 * @param customerId 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 330f564b25..b35342302d 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 @@ -1206,4 +1206,41 @@ GROUP BY grid_id, date_id + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index cbe39ede21..2a5232fd8c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -93,4 +93,23 @@ AND b.STAFF_ID != #{userId} + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index e5594fdb5e..a77f1f22e0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -298,5 +298,15 @@ AND pid = #{agencyId} ORDER BY created_time ASC + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index 8bd1c33ee7..a5ed36af1a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -419,5 +419,44 @@ GROUP BY LEFT(c.CATEGORY_CODE,#{categoryOneLength}) ORDER BY total DESC + + From 9243f4e334917510e1a33be49360589e7484dd47 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 28 Jul 2022 11:13:17 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1,=E7=BD=91=E6=A0=BC=E5=91=98=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/govorg/form/OrgStatisticsFormDTO.java | 3 + .../result/MemberProjectInfoResultDTO.java | 5 +- .../controller/GovOrgController.java | 103 ++++++++++++++++++ .../dataaggre/dao/datastats/DataStatsDao.java | 3 + .../dataaggre/dao/epmetuser/StaffRoleDao.java | 3 +- .../dataaggre/dao/govproject/ProjectDao.java | 2 + .../excel/MemberProjectInfoExcel.java | 40 +++++++ .../excel/OrgProjectDetailExcel.java | 47 ++++++++ .../service/datastats/DataStatsService.java | 4 + .../datastats/impl/DataStatsServiceImpl.java | 13 +++ .../service/epmetuser/EpmetUserService.java | 13 +++ .../epmetuser/impl/EpmetUserServiceImpl.java | 20 ++++ .../govorg/impl/GovOrgServiceImpl.java | 47 +++++++- .../service/govproject/GovProjectService.java | 30 +++++ .../impl/GovProjectServiceImpl.java | 36 ++++++ .../mapper/datastats/DatsStatsDao.xml | 12 ++ .../mapper/epmetuser/StaffRoleDao.xml | 21 ++++ .../mapper/govproject/ProjectDao.xml | 43 ++++++++ 18 files changed, 441 insertions(+), 4 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java index f6f81f36d7..559a08d9f9 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/OrgStatisticsFormDTO.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description @@ -13,10 +14,12 @@ import java.io.Serializable; @Data public class OrgStatisticsFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = -1043502365053945317L; + private String customerId; private String agencyId; private String orgId; private String orgType; private String type; private String startDate; private String endDate; + private List agencyList; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java index 4b4ac940a3..e0c941e8e3 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/MemberProjectInfoResultDTO.java @@ -17,7 +17,8 @@ public class MemberProjectInfoResultDTO implements Serializable { private static final long serialVersionUID = -4880909768378661921L; private String staffId; private String staffName; + private String orgId; private String orgName; - private String projectCount; - private String closedCount; + private Integer projectCount = 0; + private Integer closedCount = 0; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 2e5f0bff93..e1538f0168 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -3,6 +3,7 @@ package com.epmet.dataaggre.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.aop.NoRepeatSubmit; @@ -18,7 +19,9 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.beans.GridMemberDataAnalysisExcelExportBean; import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; @@ -27,6 +30,8 @@ import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; +import com.epmet.dataaggre.excel.MemberProjectInfoExcel; +import com.epmet.dataaggre.excel.OrgProjectDetailExcel; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.govorg.GovOrgService; import lombok.extern.slf4j.Slf4j; @@ -39,11 +44,13 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; +import java.io.PrintWriter; import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /** @@ -440,14 +447,110 @@ public class GovOrgController { return new Result().ok(govOrgService.queryBuildingInfo(buildingId)); } + /** + * 组织项目统计 + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< PageData< OrgProjectDetailResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/7/28 10:34 + */ @PostMapping("orgProjectDetailList") public Result> orgProjectDetailList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { return new Result>().ok(govOrgService.orgProjectDetailList(tokenDto, formDTO)); } + /** + * 网格员项目统计 + * @Param tokenDto + * @Param formDTO + * @Return {@link Result< PageData< MemberProjectInfoResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/7/28 10:34 + */ @PostMapping("memberProjectInfoList") public Result> memberProjectInfoList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { return new Result>().ok(govOrgService.memberProjectInfoList(tokenDto, formDTO)); } + @NoRepeatSubmit + @PostMapping("orgProjectDetailList/export") + public void orgProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "组织项目统计.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), OrgProjectDetailExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = govOrgService.orgProjectDetailList(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), OrgProjectDetailExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + @NoRepeatSubmit + @PostMapping("memberProjectInfoList/export") + public void memberProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "网格员项目统计.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), MemberProjectInfoExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = govOrgService.memberProjectInfoList(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), MemberProjectInfoExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } 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 2c910a3057..d32ddf47ed 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 @@ -28,6 +28,7 @@ import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; @@ -379,4 +380,6 @@ public interface DataStatsDao { List getMemberCount(@Param("agencyId")String agencyId, @Param("dateId") String dateId); + List getMemberList(@Param("gridId") String gridId, @Param("dateId") String dateId); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java index 1540c564d6..6f49f5a6d0 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.RoleListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; @@ -76,5 +77,5 @@ public interface StaffRoleDao extends BaseDao { List selectStaffByRole(@Param("customerId") String customerId, @Param("roleId") String roleId, @Param("userId") String userId); List getMemberCount(@Param("customerId") String customerId); - + List getMemberList(@Param("customerId") String customerId, @Param("orgIds") List orgIds); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 3057cfbb25..05354d0b8b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -128,4 +128,6 @@ public interface ProjectDao extends BaseDao { List getGridProjectCount(OrgStatisticsFormDTO formDTO); List getGridClosedProjectCount(OrgStatisticsFormDTO formDTO); + List getMemberProjectCount(OrgStatisticsFormDTO formDTO); + List getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java new file mode 100644 index 0000000000..58a5d8014e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java @@ -0,0 +1,40 @@ +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class MemberProjectInfoExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(30) + @ExcelProperty(value = "网格员",order = 2) + private String name; + + @ColumnWidth(40) + @ExcelProperty(value = "所属组织",order = 3) + private String idCard; + + @ColumnWidth(20) + @ExcelProperty(value = "上报数量",order = 4) + private String mobile; + + @ColumnWidth(20) + @ExcelProperty(value = "办结数",order = 5) + private String rdsj; + + +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java new file mode 100644 index 0000000000..e7c5ba3d91 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java @@ -0,0 +1,47 @@ +package com.epmet.dataaggre.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +/** + * 数字平台党员信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class OrgProjectDetailExcel { + + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; + + @ColumnWidth(40) + @ExcelProperty(value = "所属组织",order = 2) + private String orgName; + + @ColumnWidth(20) + @ExcelProperty(value = "网格员数",order = 3) + private String memberCount; + + @ColumnWidth(20) + @ExcelProperty(value = "上报数量",order = 4) + private String projectCount; + + @ColumnWidth(20) + @ExcelProperty(value = "办结数",order = 5) + private String closedCount; + + @ColumnWidth(20) + @ExcelProperty(value = "人均上报",order = 6) + private String projectAve; + + @ColumnWidth(20) + @ExcelProperty(value = "人均办结",order = 7) + private String closedAve; + +} \ 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 db0827a62a..7ce06a88e5 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 @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.datastats; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; @@ -10,6 +11,7 @@ import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -302,4 +304,6 @@ public interface DataStatsService { Map getAgencyProjectTotal(OrgStatisticsFormDTO formDTO); Map getMemberMap(String agencyId); + + PageData getMemberList(OrgStatisticsFormDTO 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 b89ce1b0c3..bf56d8cdb8 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 @@ -8,6 +8,7 @@ import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.ResultDataResolver; + import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; @@ -31,6 +32,7 @@ import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; + import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; @@ -44,6 +46,7 @@ import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.github.pagehelper.PageHelper; + import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -2297,4 +2300,14 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve } return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); } + + @Override + public PageData getMemberList(OrgStatisticsFormDTO formDTO) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = dataStatsDao.getMemberList(formDTO.getOrgId(), dateId); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 014135e533..894e1fea1c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -1,12 +1,15 @@ package com.epmet.dataaggre.service.epmetuser; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridDateIdResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govorg.result.MemberProjectInfoResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dto.IcResiUserDTO; @@ -217,4 +220,14 @@ public interface EpmetUserService { * @Date 2022/7/27 14:58 */ Map getMemberCount(String customerId); + + /** + * 获取组织下网格员列表 + * + * @Param agencyId + * @Return {@link PageData< MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 17:32 + */ + PageData getMemberList(OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 79cb151439..4e31dd4a5d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.IdAndNameDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.OrgTypeEnum; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; @@ -25,6 +26,7 @@ import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; +import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; @@ -43,6 +45,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; @@ -872,4 +875,21 @@ public class EpmetUserServiceImpl implements EpmetUserService { } return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); } + + /** + * 获取组织下网格员列表 + * + * @param formDTO + * @Param agencyId + * @Return {@link PageData < MemberProjectInfoResultDTO>} + * @Author zhaoqifeng + * @Date 2022/7/27 17:32 + */ + @Override + public PageData getMemberList(OrgStatisticsFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = staffRoleDao.getMemberList(formDTO.getCustomerId(), formDTO.getAgencyList()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index fb237d158e..aeffe22264 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -1256,6 +1256,51 @@ public class GovOrgServiceImpl implements GovOrgService { */ @Override public PageData memberProjectInfoList(TokenDto tokenDto, OrgStatisticsFormDTO formDTO) { - return null; + formDTO.setCustomerId(tokenDto.getCustomerId()); + PageData result; + if (StringUtils.isBlank(formDTO.getAgencyId())) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(OrgConstant.AGENCY); + } + if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { + //获取当前组织的所有下级组织ID(包含本级) + List agencyIds = customerAgencyDao.getSubAgencyList(formDTO.getOrgId()); + formDTO.setAgencyList(agencyIds); + //获取组织下的网格员 + result = epmetUserService.getMemberList(formDTO); + } else { + //获取网格下的网格员 + result = dataStatsService.getMemberList(formDTO); + } + if (CollectionUtils.isNotEmpty(result.getList())) { + //统计项目数 + Map projectMap = govProjectService.getMemberProjectMap(formDTO); + //统计关闭项目数 + Map closedMap = govProjectService.getMemberClosedProjectMap(formDTO); + result.getList().forEach(item -> { + if (projectMap.containsKey(item.getStaffId())) { + item.setProjectCount(projectMap.get(item.getStaffId())); + } + if (projectMap.containsKey(item.getStaffId())) { + item.setClosedCount(closedMap.get(item.getStaffId())); + } + if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(item.getOrgId()); + if (null != agencyInfo) { + item.setOrgName(agencyInfo.getOrganizationName()); + } + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getOrgId()); + if (null != gridInfo) { + item.setOrgName(gridInfo.getGridName()); + } + } + }); + } + return result; } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index e7123f51ca..31beec2422 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -121,6 +121,36 @@ public interface GovProjectService { */ List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize); + /** + * 网格上报项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ Map getGridProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 网格关闭项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ Map getGridClosedProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 工作人员上报项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:28 + */ + Map getMemberProjectMap(OrgStatisticsFormDTO formDTO); + /** + * 工作人员关闭项目数 + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index f491b2f3b2..72e51a6a54 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -685,6 +685,42 @@ public class GovProjectServiceImpl implements GovProjectService { return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); } + /** + * 工作人员上报项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:28 + */ + @Override + public Map getMemberProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getMemberProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + + /** + * 工作人员关闭项目数 + * + * @param formDTO + * @Param formDTO + * @Return {@link Map< String, Integer>} + * @Author zhaoqifeng + * @Date 2022/7/28 9:29 + */ + @Override + public Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO) { + List list = projectDao.getMemberProjectCount(formDTO); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(OrgCountDTO::getOrgId, OrgCountDTO::getCount, (o1, o2) -> o1)); + } + /** * 构造事件查询 * @param customerId 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 b35342302d..a473f03daf 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 @@ -1242,5 +1242,17 @@ GROUP BY GRID_ID + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index 2a5232fd8c..9c5999aeb3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -112,4 +112,25 @@ GROUP BY ORG_ID + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index a5ed36af1a..e56a84c754 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -458,5 +458,48 @@ GROUP BY GRID_ID + + From ab6072c1ce6e9e46a48b320115dbc389cd3ecebf Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 28 Jul 2022 14:06:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1,=E7=BD=91=E6=A0=BC=E5=91=98=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dataaggre/excel/MemberProjectInfoExcel.java | 8 ++++---- .../epmet/dataaggre/excel/OrgProjectDetailExcel.java | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java index 58a5d8014e..e7b5e2045c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/MemberProjectInfoExcel.java @@ -22,19 +22,19 @@ public class MemberProjectInfoExcel { @ColumnWidth(30) @ExcelProperty(value = "网格员",order = 2) - private String name; + private String staffName; @ColumnWidth(40) @ExcelProperty(value = "所属组织",order = 3) - private String idCard; + private String orgName; @ColumnWidth(20) @ExcelProperty(value = "上报数量",order = 4) - private String mobile; + private Integer projectCount; @ColumnWidth(20) @ExcelProperty(value = "办结数",order = 5) - private String rdsj; + private Integer closedCount; } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java index e7c5ba3d91..91b30e0e89 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/OrgProjectDetailExcel.java @@ -26,22 +26,22 @@ public class OrgProjectDetailExcel { @ColumnWidth(20) @ExcelProperty(value = "网格员数",order = 3) - private String memberCount; + private Integer memberCount; @ColumnWidth(20) @ExcelProperty(value = "上报数量",order = 4) - private String projectCount; + private Integer projectCount; @ColumnWidth(20) @ExcelProperty(value = "办结数",order = 5) - private String closedCount; + private Integer closedCount; @ColumnWidth(20) @ExcelProperty(value = "人均上报",order = 6) - private String projectAve; + private Integer projectAve; @ColumnWidth(20) @ExcelProperty(value = "人均办结",order = 7) - private String closedAve; + private Integer closedAve; } \ No newline at end of file From e6eabdde06309675fed24c14d9c2a3f47631923c Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 28 Jul 2022 14:47:04 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1,=E7=BD=91=E6=A0=BC=E5=91=98=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/govorg/impl/GovOrgServiceImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index aeffe22264..dc3c3a5d8b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; @@ -1158,6 +1159,11 @@ public class GovOrgServiceImpl implements GovOrgService { } formDTO.setAgencyId(staffInfo.getAgencyId()); } + if (StringUtils.isEmpty(formDTO.getStartDate()) && StringUtils.isEmpty(formDTO.getEndDate())) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + formDTO.setEndDate(dateId); + } CustomerAgencyEntity agencyEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); long total = 0; @@ -1266,6 +1272,11 @@ public class GovOrgServiceImpl implements GovOrgService { formDTO.setOrgId(staffInfo.getAgencyId()); formDTO.setOrgType(OrgConstant.AGENCY); } + if (StringUtils.isEmpty(formDTO.getStartDate()) && StringUtils.isEmpty(formDTO.getEndDate())) { + //当前日期前一天 + String dateId = DateUtils.format(DateUtils.addDateDays(new Date(), NumConstant.ONE_NEG), DateUtils.DATE_PATTERN_YYYYMMDD); + formDTO.setEndDate(dateId); + } if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { //获取当前组织的所有下级组织ID(包含本级) List agencyIds = customerAgencyDao.getSubAgencyList(formDTO.getOrgId());