Browse Source

Merge remote-tracking branch 'origin/dev_data_stats' into dev

master
yinzuomei 5 years ago
parent
commit
a18c76d078
  1. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java
  2. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java
  3. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java
  4. 6
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java
  5. 10
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java
  6. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
  7. 5
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
  8. 26
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
  9. 62
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
  10. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
  11. 4
      epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
  12. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
  13. 21
      epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
  14. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
  15. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java
  16. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java
  17. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java
  18. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
  19. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
  20. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java
  21. 90
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java
  22. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java
  23. 22
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java
  24. 74
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
  25. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagAgencyDTO.java

@ -47,7 +47,7 @@ public class FactTagAgencyDTO implements Serializable {
/** /**
* 固定值文章数量 * 固定值文章数量
*/ */
private String type="文章数量"; private String type="阅读次数";
/** /**
* 机关Id * 机关Id

7
epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java

@ -1,5 +1,6 @@
package com.epmet.topic.dto.result; package com.epmet.topic.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -32,4 +33,10 @@ public class TopicSubAgencyResultDTO implements Serializable {
* 机关Id * 机关Id
*/ */
private String agencyId; private String agencyId;
/**
* 排序
*/
@JsonIgnore
private Integer sort;
} }

7
epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java

@ -1,5 +1,6 @@
package com.epmet.topic.dto.result; package com.epmet.topic.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -32,4 +33,10 @@ public class TopicSubGridResultDTO implements Serializable {
* 网格Id * 网格Id
*/ */
private String gridId; private String gridId;
/**
* 排序
*/
@JsonIgnore
private Integer sort;
} }

6
epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java

@ -16,15 +16,15 @@ public class TopicSummaryInfoResultDTO implements Serializable {
/** /**
* 名称 * 名称
*/ */
private String name; private String name = "";
/** /**
* *
*/ */
private Integer value; private Integer value = 0;
/** /**
* 百分比 * 百分比
*/ */
private String ratio; private String ratio = "0.0%";
} }

10
epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java

@ -16,27 +16,27 @@ public class TopicSummaryResultDTO implements Serializable {
/** /**
* 话题总数 * 话题总数
*/ */
private Integer topicTotalCount; private Integer topicTotalCount = 0;
/** /**
* 讨论中话题数量 * 讨论中话题数量
*/ */
private Integer talkingTotalCount; private Integer talkingTotalCount = 0;
/** /**
* 已关闭话题数量 * 已关闭话题数量
*/ */
private Integer closedTotalCount; private Integer closedTotalCount = 0;
/** /**
* 已屏蔽话题数量 * 已屏蔽话题数量
*/ */
private Integer shieldedTotalCount; private Integer shieldedTotalCount = 0;
/** /**
* 话题已转议题数量 * 话题已转议题数量
*/ */
private Integer shiftedTotalCount; private Integer shiftedTotalCount = 0;
/** /**
* 数据更新至 时间 * 数据更新至 时间

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java

@ -18,27 +18,30 @@ public interface IssueDao {
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/6/22 15:19 * @date 2020/6/22 15:19
* @param agencyId * @param agencyId
* @param dateId
* @return com.epmet.issue.dto.result.IssueDataDTO * @return com.epmet.issue.dto.result.IssueDataDTO
*/ */
IssueDataDTO selectAgencyInfo(@Param("agencyId") String agencyId); IssueDataDTO selectAgencyInfo(@Param("agencyId") String agencyId, @Param("dateId") String dateId);
/** /**
* 获取下级机关统计信息 * 获取下级机关统计信息
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/6/22 15:20 * @date 2020/6/22 15:20
* @param agencyId * @param agencyId
* @param dateId
* @return java.util.List<com.epmet.issue.dto.result.IssueDataDTO> * @return java.util.List<com.epmet.issue.dto.result.IssueDataDTO>
*/ */
List<IssueDataDTO> selectSubAgencyList(@Param("agencyId") String agencyId); List<IssueDataDTO> selectSubAgencyList(@Param("agencyId") String agencyId, @Param("dateId") String dateId);
/** /**
* 获取机关下网格统计信息 * 获取机关下网格统计信息
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/6/22 15:21 * @date 2020/6/22 15:21
* @param agencyId * @param agencyId
* @param dateId
* @return java.util.List<com.epmet.issue.dto.result.IssueDataDTO> * @return java.util.List<com.epmet.issue.dto.result.IssueDataDTO>
*/ */
List<IssueDataDTO> selectGridList(@Param("agencyId") String agencyId); List<IssueDataDTO> selectGridList(@Param("agencyId") String agencyId, @Param("dateId") String dateId);
/** /**
* 获取当前机关日增量 * 获取当前机关日增量

5
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java

@ -15,7 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Author zxc * @Author zxc
@ -60,7 +62,8 @@ public class GroupServiceImpl implements GroupService {
} }
}); });
}); });
return result; //倒序
return result.stream().sorted(Comparator.comparing(GroupSubAgencyResultDTO::getValue).reversed()).collect(Collectors.toList());
} }
return new ArrayList<>(); return new ArrayList<>();
} }

26
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java

@ -35,11 +35,13 @@ public class IssueServiceImpl implements IssueService {
@Override @Override
public IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto) { public IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto) {
IssueSummaryInfoResultDTO result = new IssueSummaryInfoResultDTO(); IssueSummaryInfoResultDTO result = new IssueSummaryInfoResultDTO();
//获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
String agencyId = getAgencyId(tokenDto); String agencyId = getAgencyId(tokenDto);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId); IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId);
if (null == data) { if (null == data) {
//获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
result.setAgencyId(agencyId); result.setAgencyId(agencyId);
result.setDateName(DateUtils.format(date, "yyyy.MM.dd")); result.setDateName(DateUtils.format(date, "yyyy.MM.dd"));
result.setIssueTotal(NumConstant.ZERO); result.setIssueTotal(NumConstant.ZERO);
@ -67,7 +69,11 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSummaryPieResultDTO> getSummaryPie(TokenDto tokenDto) { public List<IssueSummaryPieResultDTO> getSummaryPie(TokenDto tokenDto) {
List<IssueSummaryPieResultDTO> list = new ArrayList<>(); List<IssueSummaryPieResultDTO> list = new ArrayList<>();
String agencyId = getAgencyId(tokenDto); String agencyId = getAgencyId(tokenDto);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId); //获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId);
if (null == data) { if (null == data) {
IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO(); IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO();
voting.setName(IssueConstant.VOTING_NAME); voting.setName(IssueConstant.VOTING_NAME);
@ -108,7 +114,11 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSubAgencyResultDTO> getSubAgency(TokenDto tokenDto) { public List<IssueSubAgencyResultDTO> getSubAgency(TokenDto tokenDto) {
List<IssueSubAgencyResultDTO> list = new ArrayList<>(); List<IssueSubAgencyResultDTO> list = new ArrayList<>();
String agencyId = getAgencyId(tokenDto); String agencyId = getAgencyId(tokenDto);
List<IssueDataDTO> dataList = issueDao.selectSubAgencyList(agencyId); //获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
List<IssueDataDTO> dataList = issueDao.selectSubAgencyList(agencyId, dateId);
if(null != dataList) { if(null != dataList) {
dataList.forEach(data -> { dataList.forEach(data -> {
IssueSubAgencyResultDTO voting = new IssueSubAgencyResultDTO(); IssueSubAgencyResultDTO voting = new IssueSubAgencyResultDTO();
@ -138,7 +148,11 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSubGridResultDTO> getSubGrid(TokenDto tokenDto) { public List<IssueSubGridResultDTO> getSubGrid(TokenDto tokenDto) {
List<IssueSubGridResultDTO> list = new ArrayList<>(); List<IssueSubGridResultDTO> list = new ArrayList<>();
String agencyId = getAgencyId(tokenDto); String agencyId = getAgencyId(tokenDto);
List<IssueDataDTO> dataList = issueDao.selectGridList(agencyId); //获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
List<IssueDataDTO> dataList = issueDao.selectGridList(agencyId, dateId);
if(null != dataList) { if(null != dataList) {
dataList.forEach(data -> { dataList.forEach(data -> {
IssueSubGridResultDTO voting = new IssueSubGridResultDTO(); IssueSubGridResultDTO voting = new IssueSubGridResultDTO();

62
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java

@ -14,9 +14,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.text.DecimalFormat;
import java.util.Comparator; import java.time.LocalDate;
import java.util.List; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -41,6 +41,7 @@ public class TopicServiceImpl implements TopicService {
TopicSummaryResultDTO result = new TopicSummaryResultDTO(); TopicSummaryResultDTO result = new TopicSummaryResultDTO();
String agencyId = this.getLoginUserDetails(tokenDto); String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicStatusResultDTO> topicStatus = topicDao.getTopicStatus(agencyId); List<TopicStatusResultDTO> topicStatus = topicDao.getTopicStatus(agencyId);
result.setDeadline(LocalDate.now().minusDays(NumConstant.ONE).toString());
if (topicStatus.size() != NumConstant.ZERO){ if (topicStatus.size() != NumConstant.ZERO){
topicStatus.forEach(topic -> { topicStatus.forEach(topic -> {
if (topic.getTopicStatus().equals(TopicConstant.DISCUSSING)){ if (topic.getTopicStatus().equals(TopicConstant.DISCUSSING)){
@ -52,11 +53,11 @@ public class TopicServiceImpl implements TopicService {
} }
}); });
result.setTopicTotalCount(topicStatus.stream().collect(Collectors.summingInt(TopicStatusResultDTO::getTopicCount))); result.setTopicTotalCount(topicStatus.stream().collect(Collectors.summingInt(TopicStatusResultDTO::getTopicCount)));
} TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId); if (shiftedCount != null){
if (shiftedCount != null){ result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount());
result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount()); result.setDeadline(shiftedCount.getDeadline());
result.setDeadline(shiftedCount.getDeadline()); }
} }
return result; return result;
} }
@ -94,6 +95,7 @@ public class TopicServiceImpl implements TopicService {
public List<TopicSubGridResultDTO> topicSubGrid(TokenDto tokenDto) { public List<TopicSubGridResultDTO> topicSubGrid(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto); String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicSubGridResultDTO> result = new ArrayList<>(); List<TopicSubGridResultDTO> result = new ArrayList<>();
List<TopicSubGridResultDTO> resultAll = new ArrayList<>();
List<String> subGridIdList = topicDao.getSubGridIdList(agencyId); List<String> subGridIdList = topicDao.getSubGridIdList(agencyId);
if (subGridIdList.size() != NumConstant.ZERO){ if (subGridIdList.size() != NumConstant.ZERO){
List<TopicSubGridResultDTO> gridAllTopicInfoLastDay = topicDao.getGridAllTopicInfoLastDay(); List<TopicSubGridResultDTO> gridAllTopicInfoLastDay = topicDao.getGridAllTopicInfoLastDay();
@ -110,7 +112,17 @@ public class TopicServiceImpl implements TopicService {
} }
}); });
}); });
return result; Map<String, List<TopicSubGridResultDTO>> collect = result.stream().collect(Collectors.groupingBy(TopicSubGridResultDTO::getGridId));
Set<Map.Entry<String, List<TopicSubGridResultDTO>>> entries = collect.entrySet();
entries.forEach(entry -> {
List<TopicSubGridResultDTO> value = entry.getValue();
Integer sort = value.stream().collect(Collectors.summingInt(TopicSubGridResultDTO::getValue));
value.forEach(v -> {
v.setSort(sort);
resultAll.add(v);
});
});
return resultAll.stream().sorted(Comparator.comparing(TopicSubGridResultDTO::getSort).reversed()).collect(Collectors.toList());
} }
return new ArrayList<>(); return new ArrayList<>();
} }
@ -124,6 +136,7 @@ public class TopicServiceImpl implements TopicService {
public List<TopicSubAgencyResultDTO> topicSubAgency(TokenDto tokenDto) { public List<TopicSubAgencyResultDTO> topicSubAgency(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto); String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicSubAgencyResultDTO> result = new ArrayList<>(); List<TopicSubAgencyResultDTO> result = new ArrayList<>();
List<TopicSubAgencyResultDTO> resultAll = new ArrayList<>();
List<String> subAgencyIdList = topicDao.getSubAgencyIdList(agencyId); List<String> subAgencyIdList = topicDao.getSubAgencyIdList(agencyId);
//存在下级机关 //存在下级机关
if (subAgencyIdList.size() != NumConstant.ZERO){ if (subAgencyIdList.size() != NumConstant.ZERO){
@ -142,7 +155,17 @@ public class TopicServiceImpl implements TopicService {
} }
}); });
}); });
return result; Map<String, List<TopicSubAgencyResultDTO>> collect = result.stream().collect(Collectors.groupingBy(TopicSubAgencyResultDTO::getAgencyId));
Set<Map.Entry<String, List<TopicSubAgencyResultDTO>>> entries = collect.entrySet();
entries.forEach(entry -> {
List<TopicSubAgencyResultDTO> value = entry.getValue();
Integer sort = value.stream().collect(Collectors.summingInt(TopicSubAgencyResultDTO::getValue));
value.forEach(v -> {
v.setSort(sort);
resultAll.add(v);
});
});
return resultAll.stream().sorted(Comparator.comparing(TopicSubAgencyResultDTO::getSort).reversed()).collect(Collectors.toList());
} }
//不存在 //不存在
return new ArrayList<>(); return new ArrayList<>();
@ -158,14 +181,17 @@ public class TopicServiceImpl implements TopicService {
String agencyId = this.getLoginUserDetails(tokenDto); String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicSummaryInfoResultDTO> topicSummaryInfo = topicDao.topicSummaryInfo(agencyId); List<TopicSummaryInfoResultDTO> topicSummaryInfo = topicDao.topicSummaryInfo(agencyId);
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId); TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
Integer collect = topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue)); if (topicSummaryInfo.size() != NumConstant.ZERO && shiftedCount != null) {
String ratio; Integer collect = topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue));
ratio = collect == NumConstant.ZERO ? NumConstant.ZERO + TopicConstant.RATIO : ((float)shiftedCount.getShiftedIssueCount() / (float)collect) * NumConstant.ONE_HUNDRED + TopicConstant.RATIO; DecimalFormat decimalFormat = new DecimalFormat(".00");
TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO(); String ratio;
result.setName(TopicConstant.SHIFTED); ratio = collect == NumConstant.ZERO ? NumConstant.ZERO + TopicConstant.RATIO : decimalFormat.format(((float) shiftedCount.getShiftedIssueCount() / (float) collect) * NumConstant.ONE_HUNDRED) + TopicConstant.RATIO;
result.setRatio(ratio); TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO();
result.setValue(shiftedCount.getShiftedIssueCount()); result.setName(TopicConstant.SHIFTED);
topicSummaryInfo.add(result); result.setRatio(ratio);
result.setValue(shiftedCount.getShiftedIssueCount());
topicSummaryInfo.add(result);
}
return topicSummaryInfo; return topicSummaryInfo;
} }

8
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java

@ -26,7 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.text.DecimalFormat; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
@ -47,7 +47,6 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired @Autowired
private UserAnalysisDao userAnalysisDao; private UserAnalysisDao userAnalysisDao;
DecimalFormat decimalFormat = new DecimalFormat("0.00");
/** /**
* @return java.lang.String * @return java.lang.String
* @param * @param
@ -69,6 +68,7 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
throw new RenException(UserAnalysisConstant.QUERY_USER_AGENCY_FAILED); throw new RenException(UserAnalysisConstant.QUERY_USER_AGENCY_FAILED);
} }
} }
logger.info(String.format("用户%s的所属机关id为%s",loginUserDetailsFormDTO.getUserId(),result.getData().getAgencyId()));
return result.getData().getAgencyId(); return result.getData().getAgencyId();
} }
/** /**
@ -92,9 +92,9 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
if(null!=userSummaryInfoResultDTO){ if(null!=userSummaryInfoResultDTO){
userSummaryInfoResultDTO.setCurrentDate(DateUtils.getxAxisDatePattern(userSummaryInfoResultDTO.getCurrentDate(),".")); userSummaryInfoResultDTO.setCurrentDate(DateUtils.getxAxisDatePattern(userSummaryInfoResultDTO.getCurrentDate(),"."));
//提取出工具类 //提取出工具类
String partyMemberProStr=decimalFormat.format(userSummaryInfoResultDTO.getPartymemberProportionValue()); String partyMemberProStr=userSummaryInfoResultDTO.getPartymemberProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
userSummaryInfoResultDTO.setPartymemberProportion(partyMemberProStr.concat("%")); userSummaryInfoResultDTO.setPartymemberProportion(partyMemberProStr.concat("%"));
String warmProStr=decimalFormat.format(userSummaryInfoResultDTO.getWarmHeartedProportionValue()); String warmProStr=userSummaryInfoResultDTO.getWarmHeartedProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
userSummaryInfoResultDTO.setWarmHeartedProportion(warmProStr.concat("%")); userSummaryInfoResultDTO.setWarmHeartedProportion(warmProStr.concat("%"));
} }
logger.info(String.format("查询用户汇总信息返参%s",JSON.toJSONString(userSummaryInfoResultDTO))); logger.info(String.format("查询用户汇总信息返参%s",JSON.toJSONString(userSummaryInfoResultDTO)));

4
epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml

@ -28,6 +28,7 @@
WHERE WHERE
del_flag = '0' del_flag = '0'
AND pid = #{agencyId} AND pid = #{agencyId}
AND agency_dim_type = 'all'
</select> </select>
<!--获取下级机关的小组数--> <!--获取下级机关的小组数-->
@ -59,6 +60,7 @@
fggd.del_flag = '0' fggd.del_flag = '0'
AND fggd.agency_id = #{agencyId} AND fggd.agency_id = #{agencyId}
AND fggd.date_id = (SELECT MAX(date_id) FROM fact_group_grid_daily WHERE del_flag = '0') AND fggd.date_id = (SELECT MAX(date_id) FROM fact_group_grid_daily WHERE del_flag = '0')
ORDER BY value DESC
</select> </select>
<!--小组数量 日增长--> <!--小组数量 日增长-->
@ -89,7 +91,7 @@
del_flag = '0' del_flag = '0'
AND agency_id = #{agencyId} AND agency_id = #{agencyId}
ORDER BY ORDER BY
month_id DESC month_id DESC, value DESC
LIMIT 12 LIMIT 12
</select> </select>

11
epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml

@ -12,12 +12,13 @@
SHIFT_PROJECT_PERCENT, SHIFT_PROJECT_PERCENT,
CLOSED_TOTAL, CLOSED_TOTAL,
CLOSED_PERCENT, CLOSED_PERCENT,
MAX(DATE_ID) AS DATE_ID, DATE_ID,
DATE_FORMAT(MAX(DATE_ID), '%Y.%m.%d') AS DATE_NAME DATE_FORMAT(DATE_ID, '%Y.%m.%d') AS DATE_NAME
FROM FROM
fact_issue_agency_daily fiad fact_issue_agency_daily fiad
WHERE DEL_FLAG = '0' WHERE DEL_FLAG = '0'
AND AGENCY_ID = #{agencyId} AND AGENCY_ID = #{agencyId}
AND DATE_ID = #{dateId}
</select> </select>
<!-- 获取下级机关统计信息--> <!-- 获取下级机关统计信息-->
<select id="selectSubAgencyList" resultType="com.epmet.issue.dto.result.IssueDataDTO"> <select id="selectSubAgencyList" resultType="com.epmet.issue.dto.result.IssueDataDTO">
@ -27,13 +28,14 @@
VOTING_TOTAL, VOTING_TOTAL,
SHIFT_PROJECT_TOTAL, SHIFT_PROJECT_TOTAL,
CLOSED_TOTAL, CLOSED_TOTAL,
MAX(DATE_ID) AS DATE_ID DATE_ID AS DATE_ID
FROM FROM
fact_issue_agency_daily fiad fact_issue_agency_daily fiad
INNER JOIN INNER JOIN
dim_agency da ON fiad.AGENCY_ID = da.ID dim_agency da ON fiad.AGENCY_ID = da.ID
WHERE fiad.DEL_FLAG = '0' WHERE fiad.DEL_FLAG = '0'
AND fiad.PID = #{agencyId} AND fiad.PID = #{agencyId}
AND fiad.DATE_ID = #{dateId}
GROUP BY AGENCY_ID GROUP BY AGENCY_ID
ORDER BY fiad.ISSUE_TOTAL DESC ORDER BY fiad.ISSUE_TOTAL DESC
</select> </select>
@ -45,13 +47,14 @@
VOTING_TOTAL, VOTING_TOTAL,
SHIFT_PROJECT_TOTAL, SHIFT_PROJECT_TOTAL,
CLOSED_TOTAL, CLOSED_TOTAL,
MAX(DATE_ID) AS DATE_ID DATE_ID AS DATE_ID
FROM FROM
fact_issue_grid_daily figd fact_issue_grid_daily figd
INNER JOIN INNER JOIN
dim_grid dg ON figd.GRID_ID = dg.ID dim_grid dg ON figd.GRID_ID = dg.ID
WHERE figd.DEL_FLAG = '0' WHERE figd.DEL_FLAG = '0'
AND figd.AGENCY_ID = #{agencyId} AND figd.AGENCY_ID = #{agencyId}
AND figd.DATE_ID = #{dateId}
GROUP BY GRID_ID GROUP BY GRID_ID
ORDER BY figd.ISSUE_TOTAL DESC ORDER BY figd.ISSUE_TOTAL DESC
</select> </select>

21
epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml

@ -24,7 +24,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND month_id = #{monthId} AND month_id = #{monthId}
GROUP BY TAG_ID GROUP BY TAG_ID
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -39,7 +39,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND quarter_id = #{quarterId} AND quarter_id = #{quarterId}
GROUP BY TAG_ID GROUP BY TAG_ID
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -54,7 +54,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND year_id = #{yearId} AND year_id = #{yearId}
GROUP BY tag_id GROUP BY tag_id
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -69,7 +69,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND month_id = #{monthId} AND month_id = #{monthId}
GROUP BY TAG_ID GROUP BY TAG_ID
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -84,7 +84,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND quarter_id = #{quarterId} AND quarter_id = #{quarterId}
GROUP BY TAG_ID GROUP BY TAG_ID
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -99,7 +99,7 @@
where agency_id = #{agencyId} where agency_id = #{agencyId}
AND year_id = #{yearId} AND year_id = #{yearId}
GROUP BY tag_id GROUP BY tag_id
ORDER BY value DESC ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize} LIMIT #{pageSize}
</select> </select>
@ -118,6 +118,7 @@
AND pub.PID =#{agencyId} AND pub.PID =#{agencyId}
AND pub.month_id=#{monthId} AND pub.month_id=#{monthId}
GROUP BY pub.agency_id GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select> </select>
@ -136,6 +137,7 @@
AND pub.PID =#{agencyId} AND pub.PID =#{agencyId}
AND pub.quarter_id=#{quarterId} AND pub.quarter_id=#{quarterId}
GROUP BY pub.agency_id GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select> </select>
<!-- 当年——下级机发文数:机关名称、机关id、发文数量、上级机关id --> <!-- 当年——下级机发文数:机关名称、机关id、发文数量、上级机关id -->
@ -153,6 +155,7 @@
AND pub.PID =#{agencyId} AND pub.PID =#{agencyId}
AND pub.year_id=#{yearId} AND pub.year_id=#{yearId}
GROUP BY pub.agency_id GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select> </select>
<!-- 当月——下级部门文数:部门名称、机关id、发文数量、部门id --> <!-- 当月——下级部门文数:部门名称、机关id、发文数量、部门id -->
@ -170,6 +173,7 @@
AND pub.agency_id =#{agencyId} AND pub.agency_id =#{agencyId}
AND pub.month_id=#{monthId} AND pub.month_id=#{monthId}
GROUP BY pub.department_id GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select> </select>
@ -188,6 +192,7 @@
AND pub.agency_id =#{agencyId} AND pub.agency_id =#{agencyId}
AND pub.quarter_id=#{quarterId} AND pub.quarter_id=#{quarterId}
GROUP BY pub.department_id GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select> </select>
<!-- 当年——下级部门文数:部门名称、机关id、发文数量、部门id --> <!-- 当年——下级部门文数:部门名称、机关id、发文数量、部门id -->
@ -205,6 +210,7 @@
AND pub.agency_id =#{agencyId} AND pub.agency_id =#{agencyId}
AND pub.year_id=#{yearId} AND pub.year_id=#{yearId}
GROUP BY pub.department_id GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select> </select>
<!-- 当月——下级网格文数:网格名称、机关id、发文数量、网格id --> <!-- 当月——下级网格文数:网格名称、机关id、发文数量、网格id -->
@ -222,6 +228,7 @@
AND pub.agency_id = #{agencyId} AND pub.agency_id = #{agencyId}
AND pub.month_id=#{monthId} AND pub.month_id=#{monthId}
GROUP BY pub.grid_id GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select> </select>
@ -240,6 +247,7 @@
AND pub.agency_id = #{agencyId} AND pub.agency_id = #{agencyId}
AND pub.quarter_id=#{quarterId} AND pub.quarter_id=#{quarterId}
GROUP BY pub.grid_id GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select> </select>
<!-- 当年——下级网格文数:网格名称、机关id、发文数量、网格id --> <!-- 当年——下级网格文数:网格名称、机关id、发文数量、网格id -->
@ -257,6 +265,7 @@
AND pub.agency_id = #{agencyId} AND pub.agency_id = #{agencyId}
AND pub.year_id = #{yearId} AND pub.year_id = #{yearId}
GROUP BY pub.grid_id GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select> </select>
</mapper> </mapper>

2
epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml

@ -41,7 +41,7 @@
WHEN topic_status_id = 'hidden' THEN '已屏蔽' WHEN topic_status_id = 'hidden' THEN '已屏蔽'
WHEN topic_status_id = 'closed' THEN '已关闭' WHEN topic_status_id = 'closed' THEN '已关闭'
ELSE '无' END) AS name, ELSE '无' END) AS name,
CONCAT(topic_proportion * 100,'%') AS ratio CONCAT(ROUND(topic_proportion * 100,2),'%') AS ratio
FROM FROM
fact_topic_status_agency_daily fact_topic_status_agency_daily
WHERE WHERE

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java

@ -21,9 +21,9 @@ public interface IssueConstant {
/** /**
*已解决 *已解决
*/ */
String RESLOVED = "resloved"; String RESOLVED = "resolved";
/** /**
*未解决 *未解决
*/ */
String UNRESLOVED = "unresloved"; String UNRESOLVED = "unresolved";
} }

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java

@ -1,12 +1,17 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.service.StatsIssueService; import com.epmet.service.StatsIssueService;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.io.Serializable;
/** /**
* @author zhaoqifeng * @author zhaoqifeng
* @dscription * @dscription
@ -30,4 +35,14 @@ public class StatsIssueController {
statsIssueService.agencyGridIssueStats(); statsIssueService.agencyGridIssueStats();
return new Result(); return new Result();
} }
@Data
private static class StatsDate implements Serializable {
private static final long serialVersionUID = 149723067011918433L;
private String date;
}
@PostMapping("date")
public Result agencyGridIssueStatsOfDate(@RequestBody StatsDate statsDate) {
statsIssueService.agencyGridIssueStatsOfDate(DateUtils.parse(statsDate.getDate(), DateUtils.DATE_PATTERN));
return new Result();
}
} }

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java

@ -18,11 +18,12 @@ public interface StatsIssueDao extends BaseDao<IssueEntity> {
* 获取当前日期组织下议题统计结果 * 获取当前日期组织下议题统计结果
* *
* @param customerId * @param customerId
* @param date
* @return java.util.List<com.epmet.dto.issue.IssueAgencyDTO> * @return java.util.List<com.epmet.dto.issue.IssueAgencyDTO>
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/6/17 14:13 * @date 2020/6/17 14:13
*/ */
List<IssueAgencyDTO> selectAgencyIssueTotal(@Param("customerId") String customerId); List<IssueAgencyDTO> selectAgencyIssueTotal(@Param("customerId") String customerId, @Param("date") String date);
/** /**
* 获取当前日期组织下议题增量 * 获取当前日期组织下议题增量

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java

@ -18,9 +18,10 @@ public interface IssueService {
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/6/17 16:04 * @date 2020/6/17 16:04
* @param customerId * @param customerId
* @param date
* @return java.util.List<com.epmet.dto.issue.IssueAgencyDTO> * @return java.util.List<com.epmet.dto.issue.IssueAgencyDTO>
*/ */
List<IssueAgencyDTO> getAgencyIssueTotal(String customerId); List<IssueAgencyDTO> getAgencyIssueTotal(String customerId, String date);
/** /**
* 获取当前日期组织下议题增量 * 获取当前日期组织下议题增量

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java

@ -26,8 +26,8 @@ public class IssueServiceImpl implements IssueService {
private StatsIssueDao statsIssueDao; private StatsIssueDao statsIssueDao;
@Override @Override
public List<IssueAgencyDTO> getAgencyIssueTotal(String customerId) { public List<IssueAgencyDTO> getAgencyIssueTotal(String customerId, String date) {
List<IssueAgencyDTO> list = statsIssueDao.selectAgencyIssueTotal(customerId); List<IssueAgencyDTO> list = statsIssueDao.selectAgencyIssueTotal(customerId, date);
list.forEach(dto -> { list.forEach(dto -> {
String[] pIds = dto.getPIds().split(":"); String[] pIds = dto.getPIds().split(":");
dto.setPId(pIds[pIds.length - 2]); dto.setPId(pIds[pIds.length - 2]);

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsIssueService.java

@ -17,6 +17,15 @@ public interface StatsIssueService {
*/ */
void agencyGridIssueStats(); void agencyGridIssueStats();
/**
* 指定日期议题统计
* @author zhaoqifeng
* @date 2020/6/28 11:01
* @param date
* @return void
*/
void agencyGridIssueStatsOfDate(Date date);
/** /**
* 机关下议题日统计 * 机关下议题日统计
* @author zhaoqifeng * @author zhaoqifeng

90
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java

@ -20,6 +20,7 @@ import com.epmet.service.project.ProjectService;
import com.epmet.service.stats.*; import com.epmet.service.stats.*;
import com.epmet.util.DimIdGenerator; import com.epmet.util.DimIdGenerator;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import oracle.sql.DATE;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -66,6 +67,28 @@ public class StatsIssueServiceImpl implements StatsIssueService {
//获取当前日期前一天 //获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date()); Date date = DateUtils.getBeforeDay(new Date());
customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize);
if (!CollectionUtils.isEmpty(customerIdList)) {
for (String customerId : customerIdList) {
//遍历统计每一个客户数据
try {
customerStats(customerId, date);
} catch(Exception e) {
log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, "agencyGridIssueStats", customerId, DateUtils.format(date),
e.getMessage()));
}
}
}
} while (!CollectionUtils.isEmpty(customerIdList) && customerIdList.size() == pageSize);
}
@Override
public void agencyGridIssueStatsOfDate(Date date) {
int pageNo = 1;
int pageSize = 100;
List<String> customerIdList = null;
do {
//获取当前日期前一天
customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize);
if (!CollectionUtils.isEmpty(customerIdList)) { if (!CollectionUtils.isEmpty(customerIdList)) {
for (String customerId : customerIdList) { for (String customerId : customerIdList) {
//遍历统计每一个客户数据 //遍历统计每一个客户数据
@ -109,7 +132,7 @@ public class StatsIssueServiceImpl implements StatsIssueService {
//获取当前客户下所有机关 //获取当前客户下所有机关
List<DimAgencyDTO> agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); List<DimAgencyDTO> agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO);
//获取机关下议题各种状态的数目统计 //获取机关下议题各种状态的数目统计
List<IssueAgencyDTO> issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId); List<IssueAgencyDTO> issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString);
//获取机关下议题各种状态的数目增量 //获取机关下议题各种状态的数目增量
List<IssueAgencyDTO> issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString); List<IssueAgencyDTO> issueAgencyIncList = issueService.getAgencyIssueInc(customerId, dateString);
//获取机关下已关闭议题统计 //获取机关下已关闭议题统计
@ -129,10 +152,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
entity.setPid(agency.getPid()); entity.setPid(agency.getPid());
String pIds; String pIds;
if (null == agency.getPids() || agency.getPids().isEmpty()) { if (NumConstant.ZERO_STR.equals(agency.getPid())) {
pIds = agency.getPid().concat(":").concat(agency.getId()); pIds = agency.getPid();
} else { } else {
pIds = ("0").concat(":").concat(agency.getPids()).concat(":").concat(agency.getId()); pIds = agency.getPids().concat(":").concat(agency.getId());
} }
//总量统计 //总量统计
saveTotal(issueAgencyTotalList, agency, entity, pIds); saveTotal(issueAgencyTotalList, agency, entity, pIds);
@ -172,7 +195,7 @@ public class StatsIssueServiceImpl implements StatsIssueService {
//获取当前客户下所有机关 //获取当前客户下所有机关
List<DimAgencyDTO> agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO); List<DimAgencyDTO> agencyList = dimAgencyService.getDimAgencyList(dimAgencyDTO);
//获取机关下议题各种状态的数目统计 //获取机关下议题各种状态的数目统计
List<IssueAgencyDTO> issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId); List<IssueAgencyDTO> issueAgencyTotalList = issueService.getAgencyIssueTotal(customerId, dateString);
//获取机关下已关闭议题统计 //获取机关下已关闭议题统计
List<IssueAgencyDTO> issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString); List<IssueAgencyDTO> issueAgencyClosedTotalList = issueService.getAgencyClosedIssueTotal(customerId, dateString);
//已结案项目统计 //已结案项目统计
@ -185,10 +208,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
FactIssueAgencyMonthlyEntity monthly = initIssueAgencyMonthly(dimId); FactIssueAgencyMonthlyEntity monthly = initIssueAgencyMonthly(dimId);
String pIds; String pIds;
if (null == agency.getPids() || agency.getPids().isEmpty()) { if (NumConstant.ZERO_STR.equals(agency.getPid())) {
pIds = agency.getPid().concat(":").concat(agency.getId()); pIds = agency.getPid();
} else { } else {
pIds = ("0").concat(":").concat(agency.getPids()).concat(":").concat(agency.getId()); pIds = agency.getPids().concat(":").concat(agency.getId());
} }
//总量统计 //总量统计
saveTotal(issueAgencyTotalList, agency, daily, pIds); saveTotal(issueAgencyTotalList, agency, daily, pIds);
@ -269,8 +292,8 @@ public class StatsIssueServiceImpl implements StatsIssueService {
})).collect(Collectors.toList()); })).collect(Collectors.toList());
Map<String, List<IssueProjectDTO>> totalMap = Map<String, List<IssueProjectDTO>> totalMap =
totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus));
List<IssueProjectDTO> resolveList = totalMap.get(IssueConstant.RESLOVED); List<IssueProjectDTO> resolveList = totalMap.get(IssueConstant.RESOLVED);
List<IssueProjectDTO> unResolveList = totalMap.get(IssueConstant.UNRESLOVED); List<IssueProjectDTO> unResolveList = totalMap.get(IssueConstant.UNRESOLVED);
if (null != resolveList) { if (null != resolveList) {
resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting()));
} }
@ -289,8 +312,8 @@ public class StatsIssueServiceImpl implements StatsIssueService {
})).collect(Collectors.toList()); })).collect(Collectors.toList());
Map<String, List<IssueProjectDTO>> incMap = Map<String, List<IssueProjectDTO>> incMap =
incList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); incList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus));
List<IssueProjectDTO> resolveIncList = incMap.get(IssueConstant.RESLOVED); List<IssueProjectDTO> resolveIncList = incMap.get(IssueConstant.RESOLVED);
List<IssueProjectDTO> unResolveIncList = incMap.get(IssueConstant.UNRESLOVED); List<IssueProjectDTO> unResolveIncList = incMap.get(IssueConstant.UNRESOLVED);
if (null != resolveIncList) { if (null != resolveIncList) {
resolveIncMap = resolveIncList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); resolveIncMap = resolveIncList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting()));
} }
@ -363,8 +386,8 @@ public class StatsIssueServiceImpl implements StatsIssueService {
})).collect(Collectors.toList()); })).collect(Collectors.toList());
Map<String, List<IssueProjectDTO>> totalMap = Map<String, List<IssueProjectDTO>> totalMap =
totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus)); totalList.stream().collect(Collectors.groupingBy(IssueProjectDTO::getStatus));
List<IssueProjectDTO> resolveList = totalMap.get(IssueConstant.RESLOVED); List<IssueProjectDTO> resolveList = totalMap.get(IssueConstant.RESOLVED);
List<IssueProjectDTO> unResolveList = totalMap.get(IssueConstant.UNRESLOVED); List<IssueProjectDTO> unResolveList = totalMap.get(IssueConstant.UNRESOLVED);
if (null != resolveList) { if (null != resolveList) {
resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting())); resolveMap = resolveList.stream().collect(Collectors.groupingBy(IssueProjectDTO:: getGridId, Collectors.counting()));
} }
@ -482,10 +505,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (IssueGridDTO dto : list) { for (IssueGridDTO dto : list) {
if (grid.getId().equals(dto.getGridId())) { if (grid.getId().equals(dto.getGridId())) {
if (IssueConstant.RESLOVED.equals(dto.getStatus())) { if (IssueConstant.RESOLVED.equals(dto.getStatus())) {
//表决中议题数量 //表决中议题数量
resolvedInc = dto.getCount(); resolvedInc = dto.getCount();
} else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(dto.getStatus())) {
//已转项目议题数量 //已转项目议题数量
unresolvedInc = dto.getCount(); unresolvedInc = dto.getCount();
} }
@ -513,10 +536,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (IssueGridDTO dto : list) { for (IssueGridDTO dto : list) {
if (grid.getId().equals(dto.getGridId())) { if (grid.getId().equals(dto.getGridId())) {
if (IssueConstant.RESLOVED.equals(dto.getStatus())) { if (IssueConstant.RESOLVED.equals(dto.getStatus())) {
//已解决议题数量 //已解决议题数量
resolvedCount = dto.getCount(); resolvedCount = dto.getCount();
} else if (IssueConstant.UNRESLOVED.equals(dto.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(dto.getStatus())) {
//未解决议题数量 //未解决议题数量
unresolvedCount = dto.getCount(); unresolvedCount = dto.getCount();
} }
@ -550,6 +573,8 @@ public class StatsIssueServiceImpl implements StatsIssueService {
int shiftInc = NumConstant.ZERO; int shiftInc = NumConstant.ZERO;
//已关闭增量 //已关闭增量
int closedInc = NumConstant.ZERO; int closedInc = NumConstant.ZERO;
//议题增量
int issueInc = NumConstant.ZERO;
for (IssueGridDTO dto : list) { for (IssueGridDTO dto : list) {
if (grid.getId().equals(dto.getGridId())) { if (grid.getId().equals(dto.getGridId())) {
if (IssueConstant.VOTING.equals(dto.getStatus())) { if (IssueConstant.VOTING.equals(dto.getStatus())) {
@ -558,17 +583,16 @@ public class StatsIssueServiceImpl implements StatsIssueService {
} else if (IssueConstant.SHIFT_PROJECT.equals(dto.getStatus())) { } else if (IssueConstant.SHIFT_PROJECT.equals(dto.getStatus())) {
//已转项目议题数量 //已转项目议题数量
shiftInc = dto.getCount(); shiftInc = dto.getCount();
} else { } else if(IssueConstant.CLOSED.equals(dto.getStatus())) {
//已关闭议题数量 //已关闭议题数量
closedInc = dto.getCount(); closedInc = dto.getCount();
} }
} }
} }
int issueInc = votingInc + shiftInc + closedInc;
entity.setVotingIncr(votingInc); entity.setVotingIncr(votingInc);
entity.setShiftProjectIncr(shiftInc); entity.setShiftProjectIncr(shiftInc);
entity.setClosedIncr(closedInc); entity.setClosedIncr(closedInc);
entity.setIssueIncr(issueInc); entity.setIssueIncr(votingInc);
} }
/** /**
@ -638,10 +662,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (ProjectAgencyDTO project : list) { for (ProjectAgencyDTO project : list) {
if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) { if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) {
if (IssueConstant.RESLOVED.equals(project.getStatus())) { if (IssueConstant.RESOLVED.equals(project.getStatus())) {
//已解决数量 //已解决数量
resolvedCount = resolvedCount + project.getCount(); resolvedCount = resolvedCount + project.getCount();
} else if (IssueConstant.SHIFT_PROJECT.equals(project.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(project.getStatus())) {
//未解决数量 //未解决数量
unresolvedCount = unresolvedCount + project.getCount(); unresolvedCount = unresolvedCount + project.getCount();
} }
@ -672,10 +696,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (ProjectAgencyDTO project : list) { for (ProjectAgencyDTO project : list) {
if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) { if (agency.getId().equals(project.getAgencyId()) || project.getPIds().contains(pIds)) {
if (IssueConstant.RESLOVED.equals(project.getStatus())) { if (IssueConstant.RESOLVED.equals(project.getStatus())) {
//已解决数量 //已解决数量
resolvedCount = resolvedCount + project.getCount(); resolvedCount = resolvedCount + project.getCount();
} else if (IssueConstant.SHIFT_PROJECT.equals(project.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(project.getStatus())) {
//未解决数量 //未解决数量
unresolvedCount = unresolvedCount + project.getCount(); unresolvedCount = unresolvedCount + project.getCount();
} }
@ -712,6 +736,8 @@ public class StatsIssueServiceImpl implements StatsIssueService {
int shiftInc = NumConstant.ZERO; int shiftInc = NumConstant.ZERO;
//已关闭增量 //已关闭增量
int closedInc = NumConstant.ZERO; int closedInc = NumConstant.ZERO;
//议题增量
int issueInc = NumConstant.ZERO;
for (IssueAgencyDTO issueAgency : list) { for (IssueAgencyDTO issueAgency : list) {
if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) {
if (IssueConstant.VOTING.equals(issueAgency.getStatus())) { if (IssueConstant.VOTING.equals(issueAgency.getStatus())) {
@ -720,17 +746,16 @@ public class StatsIssueServiceImpl implements StatsIssueService {
} else if (IssueConstant.SHIFT_PROJECT.equals(issueAgency.getStatus())) { } else if (IssueConstant.SHIFT_PROJECT.equals(issueAgency.getStatus())) {
//已转项目议题数量 //已转项目议题数量
shiftInc = shiftInc + issueAgency.getCount(); shiftInc = shiftInc + issueAgency.getCount();
} else { } else if(IssueConstant.CLOSED.equals(issueAgency.getStatus())) {
//已关闭议题数量 //已关闭议题数量
closedInc = closedInc + issueAgency.getCount(); closedInc = closedInc + issueAgency.getCount();
} }
} }
} }
int issueInc = votingInc + shiftInc + closedInc;
entity.setVotingIncr(votingInc); entity.setVotingIncr(votingInc);
entity.setShiftProjectIncr(shiftInc); entity.setShiftProjectIncr(shiftInc);
entity.setClosedIncr(closedInc); entity.setClosedIncr(closedInc);
entity.setIssueIncr(issueInc); entity.setIssueIncr(votingInc);
} }
/** /**
@ -802,10 +827,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (IssueAgencyDTO issueAgency : list) { for (IssueAgencyDTO issueAgency : list) {
if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) {
if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { if (IssueConstant.RESOLVED.equals(issueAgency.getStatus())) {
//表决中议题数量 //表决中议题数量
resolvedCount = resolvedCount + issueAgency.getCount(); resolvedCount = resolvedCount + issueAgency.getCount();
} else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(issueAgency.getStatus())) {
//已转项目议题数量 //已转项目议题数量
unresolvedCount = unresolvedCount + issueAgency.getCount(); unresolvedCount = unresolvedCount + issueAgency.getCount();
} }
@ -841,10 +866,10 @@ public class StatsIssueServiceImpl implements StatsIssueService {
for (IssueAgencyDTO issueAgency : list) { for (IssueAgencyDTO issueAgency : list) {
if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) { if (agency.getId().equals(issueAgency.getAgencyId()) || issueAgency.getPIds().contains(pIds)) {
if (IssueConstant.RESLOVED.equals(issueAgency.getStatus())) { if (IssueConstant.RESOLVED.equals(issueAgency.getStatus())) {
//表决中议题数量 //表决中议题数量
resolvedInc = resolvedInc + issueAgency.getCount(); resolvedInc = resolvedInc + issueAgency.getCount();
} else if (IssueConstant.UNRESLOVED.equals(issueAgency.getStatus())) { } else if (IssueConstant.UNRESOLVED.equals(issueAgency.getStatus())) {
//已转项目议题数量 //已转项目议题数量
unresolvedInc = unresolvedInc + issueAgency.getCount(); unresolvedInc = unresolvedInc + issueAgency.getCount();
} }
@ -854,7 +879,6 @@ public class StatsIssueServiceImpl implements StatsIssueService {
entity.setClosedUnresolvedIncr(unresolvedInc); entity.setClosedUnresolvedIncr(unresolvedInc);
} }
/** /**
* 初始化数据 * 初始化数据
* *

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java

@ -246,7 +246,7 @@ public class StatsProjectServiceImpl implements StatsProjectService {
agencyDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue()))); agencyDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue())));
} }
agencyDailyEntity.setProjectIncr(projectIncr.intValue()); agencyDailyEntity.setProjectIncr(projectIncr.intValue());
agencyDailyEntity.setPendingIncr(projectIncr.intValue() - closedIncr.intValue()); agencyDailyEntity.setPendingIncr(projectIncr.intValue());
agencyDailyEntity.setClosedIncr(closedIncr.intValue()); agencyDailyEntity.setClosedIncr(closedIncr.intValue());
agencyDailyEntity.setResolvedIncr(resolvedIncr.intValue()); agencyDailyEntity.setResolvedIncr(resolvedIncr.intValue());
agencyDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue()); agencyDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue());
@ -539,7 +539,7 @@ public class StatsProjectServiceImpl implements StatsProjectService {
gridDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue()))); gridDailyEntity.setUnresolvedRatio(new BigDecimal(numberFormat.format((float) unResolvedTotal.intValue() / (float) closedTotal.intValue())));
} }
gridDailyEntity.setProjectIncr(projectIncr.intValue()); gridDailyEntity.setProjectIncr(projectIncr.intValue());
gridDailyEntity.setPendingIncr(projectIncr.intValue() - closedIncr.intValue()); gridDailyEntity.setPendingIncr(projectIncr.intValue());
gridDailyEntity.setClosedIncr(closedIncr.intValue()); gridDailyEntity.setClosedIncr(closedIncr.intValue());
gridDailyEntity.setResolvedIncr(resolvedIncr.intValue()); gridDailyEntity.setResolvedIncr(resolvedIncr.intValue());
gridDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue()); gridDailyEntity.setUnresolvedIncr(unResolvedIncr.intValue());

22
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java

@ -389,7 +389,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
summary.setArticleTotalCount(summaryDTO.getArticleTotalCount()); summary.setArticleTotalCount(summaryDTO.getArticleTotalCount());
summary.setArticlePublishedCount(summaryDTO.getArticlePublishedCount()); summary.setArticlePublishedCount(summaryDTO.getArticlePublishedCount());
summary.setPublishedCount(summaryDTO.getPublishedCount()); summary.setPublishedCount(summaryDTO.getPublishedCount());
result.put(summaryDTO.getPublisherId(), summaryDTO); result.put(summaryDTO.getAgencyId(), summaryDTO);
} else { } else {
publishedSummaryDTO.setArticlePublishedCount(publishedSummaryDTO.getArticlePublishedCount() + summaryDTO.getArticlePublishedCount()); publishedSummaryDTO.setArticlePublishedCount(publishedSummaryDTO.getArticlePublishedCount() + summaryDTO.getArticlePublishedCount());
publishedSummaryDTO.setArticleTotalCount(publishedSummaryDTO.getArticleTotalCount() + summaryDTO.getArticlePublishedCount()); publishedSummaryDTO.setArticleTotalCount(publishedSummaryDTO.getArticleTotalCount() + summaryDTO.getArticlePublishedCount());
@ -451,6 +451,20 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
try { try {
//转换为 需要插入的Entity //转换为 需要插入的Entity
Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean); Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean);
if (!CollectionUtils.isEmpty(agencySummaryMap)){
//同一个机关下数据累加
for (Map.Entry<String, ArticleGridPublishedSummaryDTO> entry : agencySummaryMap.entrySet()) {
String agencyId = entry.getKey();
ArticleGridPublishedSummaryDTO summary = entry.getValue();
FactArticlePublishedAgencyDailyEntity dimAgencyEntity = agencyDailyEntityMap.get(agencyId);
if (dimAgencyEntity == null) {
continue;
}
dimAgencyEntity.setArticleTotalCount(dimAgencyEntity.getArticlePublishedCount()+summary.getArticleTotalCount());
dimAgencyEntity.setArticlePublishedCount(dimAgencyEntity.getPublishedCount()+summary.getArticlePublishedCount());
dimAgencyEntity.setPublishedCount(dimAgencyEntity.getPublishedCount()+summary.getPublishedCount());
}
}
//获取当天的业务数据 //获取当天的业务数据
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId, statsDate); List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId, statsDate);
Map<String, FactArticlePublishedAgencyDailyEntity> haveDataAgencyDailyMap = new HashMap<>(); Map<String, FactArticlePublishedAgencyDailyEntity> haveDataAgencyDailyMap = new HashMap<>();
@ -465,9 +479,11 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount()); gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount());
gridDailyEntities.setArticlePublishedCount(summaryDTO.getArticlePublishedCount()); gridDailyEntities.setArticlePublishedCount(summaryDTO.getArticlePublishedCount());
gridDailyEntities.setPublishedCount(summaryDTO.getPublishedCount()); gridDailyEntities.setPublishedCount(summaryDTO.getPublishedCount());
haveDataAgencyDailyMap.put(summaryDTO.getAgencyId(), gridDailyEntities); haveDataAgencyDailyMap.put(summaryDTO.getAgencyId(), gridDailyEntities);
//同一个机关下数据累加
//buildAgencySummaryData(agencySummaryMap, summaryDTO);
//构建机关自己的数据 //构建机关自己的数据
FactArticlePublishedAgencyDailyEntity selfDaily = ConvertUtils.sourceToTarget(dimIdBean, FactArticlePublishedAgencyDailyEntity.class); FactArticlePublishedAgencyDailyEntity selfDaily = ConvertUtils.sourceToTarget(dimIdBean, FactArticlePublishedAgencyDailyEntity.class);
selfDaily.setCustomerId(gridDailyEntities.getCustomerId()); selfDaily.setCustomerId(gridDailyEntities.getCustomerId());

74
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml

@ -12,26 +12,35 @@
WHERE WHERE
DEL_FLAG = '0' DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId} AND CUSTOMER_ID = #{customerId}
AND DATE(UPDATED_TIME) <![CDATA[ <= ]]> #{date}
GROUP BY GROUP BY
ORG_ID, ISSUE_STATUS ORG_ID, ISSUE_STATUS
</select> </select>
<select id="selectAgencyIssueInc" resultType="com.epmet.dto.issue.IssueAgencyDTO"> <select id="selectAgencyIssueInc" resultType="com.epmet.dto.issue.IssueAgencyDTO">
SELECT SELECT
i.ORG_ID AS "agencyId", *
i.ORG_ID_PATH AS "pIds",
ip.ISSUE_STATUS AS "status",
COUNT(ip.ID) AS "count"
FROM FROM
issue i (
INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID SELECT
AND ip.DEL_FLAG = '0' i.ORG_ID AS "agencyId",
WHERE i.ORG_ID_PATH AS "pIds",
i.DEL_FLAG = '0' ip.ISSUE_STATUS AS "status",
AND i.CUSTOMER_ID = #{customerId} COUNT( ip.ID ) AS "count"
AND DATE(ip.CREATED_TIME) = #{date} FROM
GROUP BY issue i
i.ORG_ID, INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID
ip.ISSUE_STATUS AND ip.DEL_FLAG = '0'
WHERE
i.DEL_FLAG = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE(ip.CREATED_TIME) = #{date}
GROUP BY
i.ORG_ID,
ip.ISSUE_STATUS
) a
ORDER BY
agencyId
</select> </select>
<select id="selectAgencyClosedIssueTotal" resultType="com.epmet.dto.issue.IssueAgencyDTO"> <select id="selectAgencyClosedIssueTotal" resultType="com.epmet.dto.issue.IssueAgencyDTO">
SELECT SELECT
@ -83,22 +92,29 @@
</select> </select>
<select id="selectGridIssueInc" resultType="com.epmet.dto.issue.IssueGridDTO"> <select id="selectGridIssueInc" resultType="com.epmet.dto.issue.IssueGridDTO">
SELECT SELECT
i.ORG_ID AS "agencyId", *
i.GRID_ID AS "gridId",
ip.ISSUE_STATUS AS "status",
COUNT(ip.ID) AS "count"
FROM FROM
issue i (
INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID SELECT
AND ip.DEL_FLAG = '0' i.ORG_ID AS "agencyId",
WHERE i.GRID_ID AS "gridId",
i.DEL_FLAG = '0' ip.ISSUE_STATUS AS "status",
AND i.CUSTOMER_ID = #{customerId} COUNT( ip.ID ) AS "count"
AND DATE(ip.CREATED_TIME) = #{date} FROM
GROUP BY issue i
i.ORG_ID, INNER JOIN issue_process ip ON i.ID = ip.ISSUE_ID
i.GRID_ID, AND ip.DEL_FLAG = '0'
ip.ISSUE_STATUS WHERE
i.DEL_FLAG = '0'
AND i.CUSTOMER_ID = #{customerId}
AND DATE(ip.CREATED_TIME) = #{date}
GROUP BY
i.ORG_ID,
i.GRID_ID,
ip.ISSUE_STATUS
) a
ORDER BY
agencyId
</select> </select>
<select id="selectGridClosedIssueTotal" resultType="com.epmet.dto.issue.IssueGridDTO"> <select id="selectGridClosedIssueTotal" resultType="com.epmet.dto.issue.IssueGridDTO">
SELECT SELECT

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

@ -5,9 +5,9 @@
<select id="selectProcessList" resultType="com.epmet.entity.project.ProjectProcessEntity"> <select id="selectProcessList" resultType="com.epmet.entity.project.ProjectProcessEntity">
SELECT SELECT
pro.project_id, pro.project_id AS "projectId",
pro.operation, pro.operation AS "operation",
DATE_FORMAT(pro.created_time, "%Y-%m-%d"), DATE_FORMAT(pro.created_time, "%Y-%m-%d") AS "createdTime",
p.agency_id p.agency_id
FROM FROM
project_process pro project_process pro

Loading…
Cancel
Save