diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index cfca4dec6f..72ef2b483d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -890,4 +890,31 @@ public class DateUtils { format = DateUtils.format(DateUtils.getMonthEnd(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD); System.out.println(format); } + + /** + * @Author sun + * @Description 获取dateId对应的num天的dateId活monthId + * dateId yyyymmdd + * type[date;month] + * num[1;-1] + * 20211201 date 1 -> 20211202 + * 20211201 month -1 -> 202111 + **/ + public static String dateOrmonthId(String dateId, String type, int num){ + Calendar cal=Calendar.getInstance(); + if (StringUtils.isNotBlank(dateId)){ + cal.setTime(DateUtils.parseDate(dateId,DateUtils.DATE_PATTERN_YYYYMMDD)); + } + if("date".equals(type)){ + cal.add(Calendar.DATE, num); + }else if("month".equals(type)){ + cal.add(Calendar.MONTH, num); + } + Date time=cal.getTime(); + if("month".equals(type)){ + return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMM).format(time); + } + return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(time); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java new file mode 100644 index 0000000000..4418c02cb3 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/FactAgencyProjectResultDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 项目总数-接口返参 + * @Auth sun + */ +@Data +public class FactAgencyProjectResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + @JsonIgnore + BigDecimal bi = new BigDecimal(0); + //组织Id + private String agencyId; + //组织名称 + private String dateId; + //问题解决总数 + private String monthId; + //党群自治占比 + private Integer projectTotal = 0; + //网格自治占比 + private Integer pendingTotal = 0; + //社区解决占比 + private String pendingRatio = "0%"; + //区直部门解决占比 + private Integer closedTotal = 0; + //街道解决占比 + private String closedRatio = "0%"; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java index 975e22596b..bf02cf40f2 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectTotalFormDTO.java @@ -32,4 +32,9 @@ public class ProjectTotalFormDTO implements Serializable { public interface Statuslist extends CustomerClientShowGroup { } + //较昨日的dateId值 + private String yeDateId; + //较dateId上月的monthId值 + private String monthId; + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java index 541a742582..9afb3cb712 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectTotalResultDTO.java @@ -17,18 +17,18 @@ public class ProjectTotalResultDTO implements Serializable { //日期yyyymmdd private String dateId; //项目总数 - private Integer projectTotal; + private Integer projectTotal = 0; //较昨日数 - private Integer dateIncr; + private Integer dateIncr = 0; //较上月数 - private Integer monthIncr; + private Integer monthIncr = 0; //未结案项目数 - private Integer pendingTotal; + private Integer pendingTotal = 0; //为结案项目占比 xx% - private String pendingRatio; + private String pendingRatio = "0%"; //已结案项目数 - private Integer closedTotal; + private Integer closedTotal = 0; //已结案项目占比 - private String closedRatio; + private String closedRatio = "0%"; } 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 8696fa47a3..b41d0cd9b1 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 @@ -24,6 +24,7 @@ import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; 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.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; @@ -335,4 +336,10 @@ public interface DataStatsDao { * @author sun */ List projectList(CustomerDataManageFormDTO formDTO); + + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + List getProjectTotal(ProjectTotalFormDTO 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 36fa24c7b2..80aa4defb5 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 @@ -6,6 +6,7 @@ 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.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; @@ -247,4 +248,9 @@ public interface DataStatsService { */ CustomerDataManageResultDTO operateExport(CustomerDataManageFormDTO formDTO) throws ParseException; + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + List getProjectTotal(ProjectTotalFormDTO 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 e2156dbadb..88ff22c7db 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 @@ -23,7 +23,8 @@ 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.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; @@ -2114,5 +2115,14 @@ public class DataStatsServiceImpl implements DataStatsService { return resultDTO; } + /** + * @Description 分别查询组织下dateId、较昨日、较上月项目统计数据 + * @author sun + */ + @Override + public List getProjectTotal(ProjectTotalFormDTO formDTO) { + return dataStatsDao.getProjectTotal(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 a0401eb9b8..16e8dd97d0 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 @@ -5,10 +5,12 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; 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.Result; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.ProjectConstant; import com.epmet.dataaggre.dao.govproject.ProjectDao; +import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; @@ -17,6 +19,7 @@ import com.epmet.dataaggre.dto.govproject.form.ProjectDistributionFormDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; +import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.govissue.GovIssueService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; @@ -52,6 +55,8 @@ public class GovProjectServiceImpl implements GovProjectService { private GovIssueService govIssueService; @Autowired private ResiGroupService resiGroupService; + @Autowired + private DataStatsService dataStatsService; /** * @Description 查询项目信息 @@ -251,7 +256,37 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public ProjectTotalResultDTO projectTotal(ProjectTotalFormDTO formDTO) { - return null; + ProjectTotalResultDTO result = new ProjectTotalResultDTO(); + result.setAgencyId(formDTO.getAgencyId()); + result.setDateId(formDTO.getDateId()); + //较昨日dateId值 + formDTO.setYeDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", -1)); + //较上月monthId值 + formDTO.setMonthId(DateUtils.dateOrmonthId(formDTO.getDateId(), "month", -1)); + + //1.分别查询组织下dateId、较昨日、较上月项目统计数据 + List list = dataStatsService.getProjectTotal(formDTO); + if (CollectionUtils.isEmpty(list) || !formDTO.getDateId().equals(list.get(0).getDateId())) { + return result; + } + + //2.封装数据 + list.forEach(l -> { + if (formDTO.getDateId().equals(l.getDateId())) { + s result.setProjectTotal(l.getProjectTotal()); + result.setPendingTotal(l.getPendingTotal()); + result.setPendingRatio(l.getPendingRatio()); + result.setClosedTotal(l.getClosedTotal()); + result.setClosedRatio(l.getClosedRatio()); + } + if (formDTO.getYeDateId().equals(l.getDateId())) { + result.setDateIncr(result.getProjectTotal() - l.getProjectTotal()); + } else if (formDTO.getMonthId().equals(l.getMonthId())) { + result.setMonthIncr(result.getProjectTotal() - l.getProjectTotal()); + } + }); + + return result; } /** 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 3332f525f3..2c39797518 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 @@ -1035,4 +1035,52 @@ GROUP BY t.orgId + +