diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java new file mode 100644 index 0000000000..1381870afa --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 基础数据-组织各种数据汇总-接口返参 + * @Auth sun + */ +@Data +public class BaseStatsDataResultDTO implements Serializable { + private static final long serialVersionUID = -771436069527114021L; + + private Integer topicTotal; + private Integer topicIncr; + private Integer issueTotal; + private Integer issueIncr; + private Integer projectTotal; + private Integer projectIncr; + private Integer closedProjectTotal; + private Integer closedProjectIncr; + + + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java new file mode 100644 index 0000000000..59ce8a4aa1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.datastats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 基础数据-组织各种数据汇总-接口返参 + * @Auth sun + */ +@Data +public class TotalAndIncrResultDTO implements Serializable { + + private static final long serialVersionUID = -6624315950853255235L; + private Integer total; + private Integer incr; + private Integer total2; + private Integer incr2; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java new file mode 100644 index 0000000000..60bb5474c8 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java @@ -0,0 +1,41 @@ +package com.epmet.dataaggre.controller.pub; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.app.form.AppFootBarFormDTO; +import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO; +import com.epmet.dataaggre.dto.datastats.result.BaseStatsDataResultDTO; +import com.epmet.dataaggre.service.datastats.DataStatsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 小程序相关配置,可以放在这,目前只放了footbar + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/27 18:36 + */ +@RestController +@RequestMapping("pub") +public class PubController { + @Autowired + private DataStatsService dataStatsService; + + /** + * 查询 话题 议题 项目数 + * + * @param formDTO + * @return com.epmet.dataaggre.dto.app.result.AppFootBarResultDTO + * @author yinzuomei + * @date 2021/7/27 18:59 + */ + @PostMapping("baseDataAgg") + public Result getBaseStatsData(@RequestBody AgenctBasicDataFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,AppFootBarFormDTO.AddUserInternalGroup.class); + BaseStatsDataResultDTO resultDTO=dataStatsService.getBaseStatsData(formDTO); + return new Result().ok(resultDTO); + } +} 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 d157058b2e..0ae15cd019 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 @@ -33,7 +33,7 @@ import java.util.List; /** * @Author sun - * @Description 数据统计服务 + * @Description 数据统计服务 */ @Mapper public interface DataStatsDao { @@ -178,50 +178,54 @@ public interface DataStatsDao { /** * 查询组织党员先锋详情 - * @author zhaoqifeng - * @date 2021/5/18 14:40 + * * @param agencyId * @return com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO + * @author zhaoqifeng + * @date 2021/5/18 14:40 */ PartyMemberVanguardDetailResultDTO selectAgencyVanguardDetail(@Param("agencyId") String agencyId); /** * 查询网格党员先锋详情 - * @author zhaoqifeng - * @date 2021/5/18 14:40 + * * @param grid * @return com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO + * @author zhaoqifeng + * @date 2021/5/18 14:40 */ PartyMemberVanguardDetailResultDTO selectGridVanguardDetail(@Param("grid") String grid); /** * 查询组织党员先锋排行 - * @author zhaoqifeng - * @date 2021/5/18 15:02 + * * @param agencyId * @return java.util.List + * @author zhaoqifeng + * @date 2021/5/18 15:02 */ List selectAgencyVanguardRank(@Param("agencyId") String agencyId); /** * 查询网格党员先锋排行 - * @author zhaoqifeng - * @date 2021/5/18 15:03 + * * @param agencyId * @return java.util.List + * @author zhaoqifeng + * @date 2021/5/18 15:03 */ List selectGridVanguardRank(@Param("agencyId") String agencyId); - List branchConAnalysis(@Param("customerId")String customerId, - @Param("orgId")String orgId, - @Param("orgType")String orgType, - @Param("dateId")String dateId, - @Param("parentCode")String parentCode); + List branchConAnalysis(@Param("customerId") String customerId, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("dateId") String dateId, + @Param("parentCode") String parentCode); - List querySubAnalysisByCode(@Param("customerId")String customerId, - @Param("pid")String pid, - @Param("dateId")String dateId, - @Param("categoryCode")String categoryCode); + List querySubAnalysisByCode(@Param("customerId") String customerId, + @Param("pid") String pid, + @Param("dateId") String dateId, + @Param("categoryCode") String categoryCode); List selectGroupActRankDetail(@Param("customerId") String customerId, @Param("dateId") String dateId, @@ -246,11 +250,27 @@ public interface DataStatsDao { /** * 根据组织Id查询事件治理指数 - * @author zhaoqifeng - * @date 2021/6/25 15:08 + * * @param agencyIds * @param dateId * @return com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity + * @author zhaoqifeng + * @date 2021/6/25 15:08 */ List getAgencyGovernDaily(@Param("agencyIds") List agencyIds, @Param("dateId") String dateId); -} \ No newline at end of file + + /** + * desc: 根据组织Id和时间获取 话题总数及增量 + * + * @param agencyList + * @param dateId + * @return com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO + * @author LiuJanJun + * @date 2021/8/5 3:59 下午 + */ + TotalAndIncrResultDTO getAgencySumTopic(@Param("agencyList") List agencyList, @Param("dateId") String dateId); + + TotalAndIncrResultDTO getAgencySumIssue(@Param("agencyList") List agencyList, @Param("dateId") String dateId); + + TotalAndIncrResultDTO getAgencySumProject(@Param("agencyList") List agencyList, @Param("dateId") String dateId); +} 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 36ec2943db..2fb47aab0d 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,7 +7,6 @@ import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; -import java.security.PrivateKey; import java.util.List; /** @@ -182,4 +181,7 @@ public interface DataStatsService { * @date 2021.07.05 16:05 */ GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String staffId); + + BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO 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 bfa9a29710..32848cc717 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,6 +1,5 @@ package com.epmet.dataaggre.service.datastats.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; @@ -11,20 +10,18 @@ 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.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; +import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; -import com.epmet.dataaggre.entity.datastats.DimGridEntity; -import com.epmet.dataaggre.entity.datastats.FactGridMemberStatisticsDailyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; -import com.github.pagehelper.PageHelper; 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; @@ -1428,6 +1425,49 @@ public class DataStatsServiceImpl implements DataStatsService { public GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String staffId) { return factGridMemberStatisticsDailyDao.getGridMemberIssueProjectStats( staffId); } + + @Override + public BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO formDTO) { + //入参有日期的则按具体时间执行,没有的则按当前时间前一天执行 + if (StringUtils.isBlank(formDTO.getDateId())) { + Date yesterday = DateUtils.addDateDays(new Date(), -1); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + formDTO.setDateId(format.format(yesterday)); + } + BaseStatsDataResultDTO result = new BaseStatsDataResultDTO(); + result.setTopicTotal(0); + result.setTopicIncr(0); + + result.setIssueTotal(0); + result.setIssueIncr(0); + result.setProjectTotal(0); + result.setProjectIncr(0); + result.setClosedProjectTotal(0); + result.setClosedProjectIncr(0); + + + //0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表 + List agencyList = indexService.getAgencyIdsByAgencyId(formDTO.getAgencyId()); + agencyList.add(formDTO.getAgencyId()); + TotalAndIncrResultDTO sum = dataStatsDao.getAgencySumTopic(agencyList, formDTO.getDateId()); + if (sum == null){ + return result; + } + result.setTopicIncr(sum.getIncr()); + result.setTopicTotal(sum.getTotal()); + + sum = dataStatsDao.getAgencySumIssue(agencyList,formDTO.getDateId()); + result.setIssueIncr(sum.getIncr()); + result.setIssueTotal(sum.getTotal()); + + sum = dataStatsDao.getAgencySumProject(agencyList,formDTO.getDateId()); + result.setProjectIncr(sum.getIncr()); + result.setProjectTotal(sum.getTotal()); + result.setClosedProjectIncr(sum.getIncr2()); + result.setClosedProjectTotal(sum.getTotal2()); + return result; + } + private String getPercentage(Integer countInt, Integer totalInt) { if (NumConstant.ZERO == totalInt) { return "0%"; diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java index fc9e6b8ba6..8f682b1e43 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java @@ -1,9 +1,7 @@ package com.epmet.dataaggre.service.evaluationindex.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; -import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.constant.DataSourceConstant; -import com.epmet.dataaggre.dao.datastats.DataStatsDao; import com.epmet.dataaggre.dao.evaluationindex.EvaluationIndexDao; import com.epmet.dataaggre.dto.datastats.form.GovrnRatioFormDTO; import com.epmet.dataaggre.dto.datastats.result.GovrnRatioResultDTO; @@ -14,13 +12,10 @@ import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.opercrm.CustomerRelation; 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 java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; /** @@ -114,6 +109,9 @@ public class EvaluationIndexServiceImpl implements EvaluationIndexService { public List getAgencyIdsByAgencyId(String agencyId) { //1.查询agencyId对应组织信息 ScreenCustomerAgencyDTO dto = evaluationIndexDao.getByAgencyId(agencyId); + if (dto == null){ + return new ArrayList<>(); + } //2.判断客户是否存在子客户 List list = customerRelation.haveSubCustomer(dto.getCustomerId()); if (!CollectionUtils.isNotEmpty(list)) { 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 7b4361e463..c1d88ccc8e 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 @@ -685,5 +685,47 @@ AGENCY_ID = #{agencyId} + + +