Browse Source

获取总数

dev_shibei_match
jianjun 4 years ago
parent
commit
c4eda026df
  1. 26
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/BaseStatsDataResultDTO.java
  2. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/TotalAndIncrResultDTO.java
  3. 41
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java
  4. 62
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  5. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  6. 50
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  7. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/evaluationindex/impl/EvaluationIndexServiceImpl.java
  8. 42
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

26
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;
}

19
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;
}

41
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<BaseStatsDataResultDTO> getBaseStatsData(@RequestBody AgenctBasicDataFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,AppFootBarFormDTO.AddUserInternalGroup.class);
BaseStatsDataResultDTO resultDTO=dataStatsService.getBaseStatsData(formDTO);
return new Result<BaseStatsDataResultDTO>().ok(resultDTO);
}
}

62
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<com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO>
* @author zhaoqifeng
* @date 2021/5/18 15:02
*/
List<PartyMemberVanguardDetailResultDTO> selectAgencyVanguardRank(@Param("agencyId") String agencyId);
/**
* 查询网格党员先锋排行
* @author zhaoqifeng
* @date 2021/5/18 15:03
*
* @param agencyId
* @return java.util.List<com.epmet.dataaggre.dto.datastats.result.PartyMemberVanguardDetailResultDTO>
* @author zhaoqifeng
* @date 2021/5/18 15:03
*/
List<PartyMemberVanguardDetailResultDTO> selectGridVanguardRank(@Param("agencyId") String agencyId);
List<FactGroupActDailyDTO> branchConAnalysis(@Param("customerId")String customerId,
@Param("orgId")String orgId,
@Param("orgType")String orgType,
@Param("dateId")String dateId,
@Param("parentCode")String parentCode);
List<FactGroupActDailyDTO> branchConAnalysis(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType,
@Param("dateId") String dateId,
@Param("parentCode") String parentCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(@Param("customerId")String customerId,
@Param("pid")String pid,
@Param("dateId")String dateId,
@Param("categoryCode")String categoryCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(@Param("customerId") String customerId,
@Param("pid") String pid,
@Param("dateId") String dateId,
@Param("categoryCode") String categoryCode);
List<GroupActRankDetailDTO> 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<FactAgencyGovernDailyEntity> getAgencyGovernDaily(@Param("agencyIds") List<String> agencyIds, @Param("dateId") String dateId);
}
/**
* 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<String> agencyList, @Param("dateId") String dateId);
TotalAndIncrResultDTO getAgencySumIssue(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
TotalAndIncrResultDTO getAgencySumProject(@Param("agencyList") List<String> agencyList, @Param("dateId") String dateId);
}

4
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);
}

50
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<String> 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%";

8
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<String> getAgencyIdsByAgencyId(String agencyId) {
//1.查询agencyId对应组织信息
ScreenCustomerAgencyDTO dto = evaluationIndexDao.getByAgencyId(agencyId);
if (dto == null){
return new ArrayList<>();
}
//2.判断客户是否存在子客户
List<String> list = customerRelation.haveSubCustomer(dto.getCustomerId());
if (!CollectionUtils.isNotEmpty(list)) {

42
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -685,5 +685,47 @@
AGENCY_ID = #{agencyId}
</foreach>
</select>
<select id="getAgencySumTopic" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
sum(topic_count) AS total,
sum(TOPIC_INCREMENT) AS incr
FROM
fact_topic_status_agency_daily
WHERE
del_flag = '0'
AND topic_status_id in('discussing','closed','hidden')<!-- 讨论中(热议中!=讨论中)、已处理、已屏蔽 -->
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
<select id="getAgencySumIssue" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
sum(ISSUE_TOTAL) AS total,
sum(ISSUE_INCR) AS incr
FROM
fact_issue_agency_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
<select id="getAgencySumProject" resultType="com.epmet.dataaggre.dto.datastats.result.TotalAndIncrResultDTO">
SELECT
IFNULL(project_total, 0) AS total,
IFNULL(PROJECT_INCR, 0) AS incr,
IFNULL(CLOSED_TOTAL, 0) AS total2,
IFNULL(CLOSED_INCR, 0) AS incr2
FROM
fact_agency_project_daily
WHERE
del_flag = '0'
AND date_id = #{dateId}
<foreach item="agencyId" collection="agencyList" open="AND (" separator="or" close=")" index="">
agency_id = #{agencyId}
</foreach>
</select>
</mapper>

Loading…
Cancel
Save