Browse Source

Merge branch 'release' of http://git.elinkit.com.cn:7070/r/epmet-cloud into release

 Conflicts:
	epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
	epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml
	epmet-module/data-statistical/data-statistical-server/pom.xml
feature/evaluate
wxz 6 years ago
parent
commit
1fdb49304a
  1. 2
      epmet-auth/deploy/docker-compose-dev.yml
  2. 2
      epmet-auth/pom.xml
  3. 17
      epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java
  4. 19
      epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java
  5. 7
      epmet-auth/src/main/java/com/epmet/service/GovLoginService.java
  6. 33
      epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java
  7. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java
  8. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
  9. 103
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingTalkTextMsg.java
  10. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  11. 116
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
  12. 185
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java
  13. 36
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
  14. 3
      epmet-gateway/pom.xml
  15. 25
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/DimDepartmentDTO.java
  16. 9
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserIncrTrendFormDTO.java
  17. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSubAgencyFormDTO.java
  18. 8
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSubGridFormDTO.java
  19. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSummaryInfoFormDTO.java
  20. 29
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/UserAgencyInfoResultDTO.java
  21. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/UserSummaryInfoResultDTO.java
  22. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/group/constant/GroupConstant.java
  23. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/constant/IssueConstant.java
  24. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java
  25. 3
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagUsedAgencyDTO.java
  26. 63
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagViewedAgencyDTO.java
  27. 2
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/constant/TopicConstant.java
  28. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubAgencyResultDTO.java
  29. 7
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSubGridResultDTO.java
  30. 6
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java
  31. 10
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryResultDTO.java
  32. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
  33. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
  34. 2
      epmet-module/data-report/data-report-server/pom.xml
  35. 2
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/project/ProjectController.java
  36. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/publicity/PublicityController.java
  37. 29
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java
  38. 2
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java
  39. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/issue/IssueDao.java
  40. 40
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java
  41. 4
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java
  42. 18
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java
  43. 10
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/group/impl/GroupServiceImpl.java
  44. 104
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/issue/impl/IssueServiceImpl.java
  45. 4
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java
  46. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java
  47. 20
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java
  48. 69
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
  49. 24
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java
  50. 178
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/impl/UserAnalysisServiceImpl.java
  51. 17
      epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
  52. 15
      epmet-module/data-report/data-report-server/src/main/resources/mapper/group/GroupDao.xml
  53. 11
      epmet-module/data-report/data-report-server/src/main/resources/mapper/issue/IssueDao.xml
  54. 12
      epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
  55. 50
      epmet-module/data-report/data-report-server/src/main/resources/mapper/publicity/PublicityDao.xml
  56. 29
      epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
  57. 78
      epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml
  58. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/GroupConstant.java
  59. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/IssueConstant.java
  60. 121
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueAgencyDailyDTO.java
  61. 111
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueAgencyMonthlyDTO.java
  62. 121
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueGridDailyDTO.java
  63. 111
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueGridMonthlyDTO.java
  64. 137
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusAgencyDailyDTO.java
  65. 127
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusAgencyMonthlyDTO.java
  66. 136
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusGridDailyDTO.java
  67. 131
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicTotalAgencyDailyDTO.java
  68. 131
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicTotalGridDailyDTO.java
  69. 38
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/GridTopicData.java
  70. 38
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/GroupTopicData.java
  71. 43
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/TopicStatisticalData.java
  72. 1
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridDailyDTO.java
  73. 41
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/result/UserStatisticalData.java
  74. 27
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiGroupTopicResultDTO.java
  75. 31
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicOperationResultDTO.java
  76. 24
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicResultDTO.java
  77. 34
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  78. 58
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  79. 131
      epmet-module/data-statistical/data-statistical-client/src/main/java/feign/DataStatisticalOpenFeignClient.java
  80. 135
      epmet-module/data-statistical/data-statistical-client/src/main/java/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  81. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
  82. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml
  83. 24
      epmet-module/data-statistical/data-statistical-server/pom.xml
  84. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
  85. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java
  86. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  87. 43
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java
  88. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsIssueController.java
  89. 31
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsTopicController.java
  90. 31
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java
  91. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java
  92. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java
  93. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java
  94. 40
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueAgencyDailyDao.java
  95. 40
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueAgencyMonthlyDao.java
  96. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueGridDailyDao.java
  97. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueGridMonthlyDao.java
  98. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusAgencyDailyDao.java
  99. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusAgencyMonthlyDao.java
  100. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusGridDailyDao.java

2
epmet-auth/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-auth-server:
container_name: epmet-auth-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.22
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.26
ports:
- "8081:8081"
network_mode: host # 使用现有网络

2
epmet-auth/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.22</version>
<version>0.3.26</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

17
epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java

@ -4,10 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.GovWxmpEnteOrgFormDTO;
import com.epmet.dto.form.GovWxmpFormDTO;
import com.epmet.dto.form.SendSmsCodeFormDTO;
import com.epmet.dto.form.StaffOrgsFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.GovLoginService;
@ -98,5 +95,17 @@ public class GovLoginController {
govLoginService.loginOut(tokenDto);
return new Result();
}
/**
* 更新缓存的角色列表
* @param form
* @return
*/
@PostMapping("/updatecachedroles")
public Result updateCachedRoles(@RequestBody UpdateCachedRolesFormDTO form) {
ValidatorUtils.validateEntity(form);
govLoginService.updateCachedRoles(form.getStaffId(), form.getOrgId(), form.getRoleIds());
return new Result();
}
}

19
epmet-auth/src/main/java/com/epmet/dto/form/UpdateCachedRolesFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class UpdateCachedRolesFormDTO {
@NotBlank(message = "客户ID不能为空")
private String staffId;
@NotBlank(message = "机关ID不能为空")
private String orgId;
private List<String> roleIds;
}

7
epmet-auth/src/main/java/com/epmet/service/GovLoginService.java

@ -61,4 +61,11 @@ public interface GovLoginService {
* @Date 2020/4/21 22:08
**/
void loginOut(TokenDto tokenDto);
/**
* 更新缓存中的角色列表
* @param staffId
* @param roleIds
*/
void updateCachedRoles(String staffId, String orgId, List<String> roleIds);
}

33
epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java

@ -2,6 +2,7 @@ package com.epmet.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -21,6 +22,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.jwt.JwtTokenProperties;
import com.epmet.jwt.JwtTokenUtils;
@ -61,6 +63,8 @@ public class GovLoginServiceImpl implements GovLoginService {
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
/**
* @param formDTO
@ -115,8 +119,7 @@ public class GovLoginServiceImpl implements GovLoginService {
String rightSmsCode = captchaRedis.getSmsCode(formDTO.getMobile());
if (!formDTO.getSmsCode().equals(rightSmsCode)) {
logger.error(String.format("验证码错误code[%s],msg[%s]",EpmetErrorCode.MOBILE_CODE_ERROR.getCode(),EpmetErrorCode.MOBILE_CODE_ERROR.getMsg()));
//TODO 2020-05-21 校验验证码先去掉方便测试
//throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode());
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode());
}
//3、查询用户所有的组织信息
List<String> customerIdList = new ArrayList<>();
@ -291,6 +294,32 @@ public class GovLoginServiceImpl implements GovLoginService {
cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId());
}
@Override
public void updateCachedRoles(String staffId, String orgId, List<String> roleIds) {
GovTokenDto userDetails = cpUserDetailRedis.get(AppClientConstant.APP_GOV, AppClientConstant.CLIENT_WXMP, staffId, GovTokenDto.class);
if (userDetails == null) {
return;
}
GovStaffRoleFormDTO form = new GovStaffRoleFormDTO();
form.setRoleIdList(roleIds);
Result<List<GovStaffRoleResultDTO>> result = userOpenFeignClient.getByIds(form);
if (!result.success()) {
throw new RenException("更新缓存中的角色列表失败:" + result.getInternalMsg());
}
List<GovTokenDto.Role> roles = result.getData().stream().map(roleDto -> {
GovTokenDto.Role role = new GovTokenDto.Role();
role.setRoleName(roleDto.getRoleName());
role.setRoleKey(roleDto.getRoleKey());
role.setId(roleDto.getRoleId());
return role;
}).collect(Collectors.toList());
userDetails.setRoleList(roles);
cpUserDetailRedis.set(userDetails, jwtTokenProperties.getExpire());
}
//保存登录日志
private Result saveStaffLoginRecord(GovWxmpEnteOrgFormDTO formDTO, String staffId, String openId) {
StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO();

4
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java

@ -127,4 +127,8 @@ public interface Constant {
*/
String UNREAD = "unread";
/**
* 创建时间字段名
*/
String CREATED_TIME = "created_time";
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java

@ -117,5 +117,5 @@ public interface ServiceConstant {
/**
* 数据统计
*/
String DATA_STATISTICAL = "data-statistical-server";
String DATA_STATISTICAL_SERVER = "data-statistical-server";
}

103
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingTalkTextMsg.java

@ -0,0 +1,103 @@
package com.epmet.commons.tools.dto.form;
import com.alibaba.fastjson.JSON;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* desc: 钉钉文本消息参数 实体类
*
* @date: 2020/6/29 9:06
* @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn
*/
public class DingTalkTextMsg implements Serializable {
private static final long serialVersionUID = -3611771312188821915L;
/**
* 消息接收者
*/
private String webHook;
/**
* 密钥
*/
private String secret;
/**
* 发送内容
*/
private String content;
/**
* at的群成员手机号
*/
private List<String> atMobiles;
/**
* 是否at所有人
*/
private boolean isAtAll;
public String getWebHook() {
return webHook;
}
public void setWebHook(String webHook) {
this.webHook = webHook;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public List<String> getAtMobiles() {
return atMobiles;
}
public void setAtMobiles(List<String> atMobiles) {
this.atMobiles = atMobiles;
}
public boolean isAtAll() {
return isAtAll;
}
public void setAtAll(boolean atAll) {
isAtAll = atAll;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
public String getMsgContent() {
Map<String, Object> items = new HashMap<>();
items.put("msgtype", "text");
Map<String, String> textContent = new HashMap<>();
textContent.put("content", getContent());
items.put("text", textContent);
Map<String, Object> atItems = new HashMap<>();
if (!CollectionUtils.isEmpty(atMobiles)) {
atItems.put("atMobiles", atMobiles);
}
if (isAtAll) {
atItems.put("isAtAll", isAtAll);
}
items.put("at", atItems);
return JSON.toJSONString(items);
}
}

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -60,7 +60,8 @@ public enum EpmetErrorCode {
ALREADY_EVALUATE(8501,"您已评价"),
ALREADY_VOTE(8502,"您已表态"),
TEXT_SCAN_FAILED(8503,"内容审核失败,请重新编辑"),
IMG_SCAN_FAILED(8504,"图片审核失败,请重新上传"),
PROJECT_IS_CLOSED(8601,"项目已结案"),
// 该错误不会提示给前端,只是后端传输错误信息用。

116
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java

@ -0,0 +1,116 @@
package com.epmet.commons.tools.filter;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.filter.LevelFilter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.StackTraceElementProxy;
import ch.qos.logback.core.spi.FilterReply;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.utils.DingdingMsgSender;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
/**
* desc: 发送日志消息
*
* @date: 2020/6/24 17:47
* @author: jianjun liu
*/
public class LogMsgSendFilter extends LevelFilter {
private static final Logger logger = LoggerFactory.getLogger(LogMsgSendFilter.class);
private DingdingMsgSender msgSender = new DingdingMsgSender();
private String webHook;
private String secret;
@Override
public FilterReply decide(ILoggingEvent event) {
//如果日志级别等于设置的日志级别 则发送消息
if (event.getLevel().isGreaterOrEqual(Level.ERROR)) {
try {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("【日志告警】\n");
stringBuilder.append("\n");
stringBuilder.append("告警级别:" + event.getLevel());
stringBuilder.append("\n");
stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp()));
stringBuilder.append("\n");
stringBuilder.append("TraceId:" + Thread.currentThread().getName());
stringBuilder.append("\n");
stringBuilder.append("告警信息:" + event.getFormattedMessage());
stringBuilder.append("\n");
IThrowableProxy throwableProxy = event.getThrowableProxy();
//异常信息处理 暂时处理一级的5行数据
apendStackInfo(stringBuilder, throwableProxy);
DingTalkTextMsg msg = new DingTalkTextMsg();
msg.setContent(stringBuilder.toString());
if (StringUtils.isNotBlank(webHook)) {
msg.setWebHook(webHook);
}
if (StringUtils.isNotBlank(secret)) {
msg.setSecret(secret);
}
boolean flag = msgSender.sendMsgAsync(msg);
if (!flag) {
logger.warn("msgSender.sendMsg fail,param:{}", stringBuilder.toString());
}
} catch (Exception e) {
logger.warn("decide exception", e);
}
}
//交给其他filter继续向下处理
return super.decide(event);
}
private void apendStackInfo(StringBuilder stringBuilder, IThrowableProxy throwableProxy) {
int defaultRowLine = 5;
if (throwableProxy != null) {
stringBuilder.append("异常信息:")
.append(throwableProxy.getClassName())
.append(" : ")
.append(throwableProxy.getMessage())
.append("\n");
StackTraceElementProxy[] stackTraceElementProxyArray = throwableProxy.getStackTraceElementProxyArray();
StackTraceElementProxy stackTraceElementProxy = null;
if (stackTraceElementProxyArray.length < defaultRowLine) {
defaultRowLine = stackTraceElementProxyArray.length;
}
for (int i = 0; i < defaultRowLine; i++) {
stackTraceElementProxy = stackTraceElementProxyArray[i];
StackTraceElement stackTraceElement = stackTraceElementProxy.getStackTraceElement();
stringBuilder.append("\t\tat ");
stringBuilder.append(stackTraceElement.getClassName());
stringBuilder.append(".");
stringBuilder.append(stackTraceElement.getMethodName());
stringBuilder.append("(");
stringBuilder.append(stackTraceElement.getFileName());
stringBuilder.append(":");
stringBuilder.append(stackTraceElement.getLineNumber());
stringBuilder.append(")");
stringBuilder.append("\n");
}
}
}
private String formatLongTime2Str(long timestamp) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return dateFormat.format(timestamp);
}
public void setWebHook(String webHook) {
this.webHook = webHook;
}
public void setSecret(String secret) {
this.secret = secret;
}
}

185
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java

@ -0,0 +1,185 @@
package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.Lists;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
/**
* desc: 发送消息工具类
*
* @date: 2020/6/29 8:43
* @author: jianjun liu
*/
@Component
public class DingdingMsgSender {
private final Logger logger = LoggerFactory.getLogger(DingdingMsgSender.class);
//如果不设置则为 开发环境机器人地址
private static final String webHook = "https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c";
private static final String secret = "SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19";
/**
* 默认10
*/
private static Integer maxQueueSize = 10;
/**
* 有序队列
*/
private ArrayBlockingQueue<DingTalkTextMsg> msgQueue = new ArrayBlockingQueue<>(maxQueueSize);
private volatile boolean running = false;
private Cache<String, AtomicInteger> limitCache = CacheBuilder.newBuilder().expireAfterWrite(1, TimeUnit.MINUTES).maximumSize(1000).build();
public DingdingMsgSender() {
}
private void handleMsg() {
DingTalkTextMsg msg = null;
try {
//阻塞取元素
msg = msgQueue.take();
if (msg != null) {
AtomicInteger limitCount = limitCache.getIfPresent(msg.getWebHook());
if (limitCount == null) {
limitCount = new AtomicInteger(1);
limitCache.put(msg.getWebHook(), limitCount);
}
if (limitCount.intValue() > maxQueueSize) {
msgQueue.offer(msg);
Thread.sleep(1000);
} else {
sendPostByJSON(msg);
limitCount.addAndGet(1);
}
} else {
Thread.sleep(1000);
}
} catch (Exception e) {
logger.warn("handleMsg exception,serverUrl:" + msg.getWebHook() + ",msg:" + JSON.toJSONString(msg), e);
}
}
/**
* desc:异步发送消息
*
* @param messageParam
* @return
* @throws IOException
*/
public boolean sendMsgAsync(DingTalkTextMsg messageParam) {
if (!running) {
running = true;
getThread().start();
}
boolean flag = false;
int currentQueueSize = msgQueue.size();
//非阻塞 添加/删除元素
if (currentQueueSize < maxQueueSize) {
flag = msgQueue.offer(messageParam);
} else {
msgQueue.poll();
DingTalkTextMsg param = new DingTalkTextMsg();
param.setContent("待发送消息队列已满,当前队列个数" + msgQueue.size() + "\n" + "最新消息内容:" + JSON.toJSONString(messageParam));
param.setWebHook(messageParam.getWebHook());
sendPostByJSON(param);
}
return flag;
}
/**
* 同步发送报警
*
* @param messageParam
* @return
* @throws IOException
*/
public Result<String> sendMsgSync(DingTalkTextMsg messageParam) {
return sendPostByJSON(messageParam);
}
private Thread getThread() {
Thread sendMsgThread = new Thread("MsgSender-Thread") {
@Override
public void run() {
while (running) {
handleMsg();
}
}
};
return sendMsgThread;
}
@PreDestroy
public void destroy() {
running = false;
}
/**
* 发送POST 请求
*
* @param param 请求参数JSON格式
* @return
*/
private Result<String> sendPostByJSON(DingTalkTextMsg param) {
if (StringUtils.isBlank(param.getWebHook())) {
param.setWebHook(webHook);
}
if (StringUtils.isBlank(param.getSecret())) {
param.setSecret(secret);
}
Result<String> result = new Result<String>().error();
Long timestamp = System.currentTimeMillis();
try {
String stringToSign = timestamp + "\n" + param.getSecret();
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(param.getSecret().getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
String url = param.getWebHook();
url = url.concat("&timestamp=" + timestamp + "&sign=" + sign);
String jsonStrParam = param.getMsgContent();
result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam);
} catch (Exception e) {
logger.warn("sendPostByJSON error", e);
}
return result;
}
public static void main(String[] args) {
for (int i = 0; i < 50; i++) {
DingTalkTextMsg dingTalkTextMsg = new DingTalkTextMsg();
dingTalkTextMsg.setWebHook("");
dingTalkTextMsg.setContent("测试消息" + i);
dingTalkTextMsg.setAtMobiles(Lists.newArrayList());
dingTalkTextMsg.setAtAll(false);
dingTalkTextMsg.setSecret("");
DingdingMsgSender msgSender = new DingdingMsgSender();
msgSender.sendMsgAsync(dingTalkTextMsg);
}
}
}

36
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java

@ -1,10 +1,13 @@
package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
@ -20,10 +23,12 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -115,6 +120,35 @@ public class HttpClientManager {
}
/**
* desc: 发送钉钉群消息 简版
* param: url,jsonStrParam
* return: Result<String>
*
* @author: jianjun liu
*/
public Result<String> sendAlarmMsg(String content) {
Long timestamp = System.currentTimeMillis();
String url = "https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c";
String secret = "SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19";
try {
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");
DingTalkTextMsg msg = new DingTalkTextMsg();
msg.setContent(content);
url = url.concat("&timestamp="+timestamp+"&sign="+sign);
String jsonStrParam = msg.getMsgContent();
return sendPostByJSON(url, jsonStrParam);
} catch (Exception e) {
e.printStackTrace();
}
return new Result<String>().error();
}
/**
* desc: 发送get请求
* param:url, params

3
epmet-gateway/pom.xml

@ -120,6 +120,7 @@
<gateway.routes.epmet-activiti-server.uri>lb://epmet-activiti-server</gateway.routes.epmet-activiti-server.uri>
<!-- 7、定时任务服务 -->
<gateway.routes.epmet-job-server.uri>lb://epmet-job-server</gateway.routes.epmet-job-server.uri>
<!-- <gateway.routes.epmet-job-server.uri>http://localhost:8084</gateway.routes.epmet-job-server.uri>-->
<!-- 8、用户模块 -->
<!-- <gateway.routes.epmet-user-server.uri>http://localhost:8087</gateway.routes.epmet-user-server.uri>-->
<gateway.routes.epmet-user-server.uri>lb://epmet-user-server</gateway.routes.epmet-user-server.uri>
@ -180,7 +181,7 @@
<!-- <gateway.routes.data-report-server.uri>http://localhost:8109</gateway.routes.data-report-server.uri>-->
<!-- 29、统计服务 -->
<gateway.routes.data-statistical-server.uri>lb://data-statistical-server</gateway.routes.data-statistical-server.uri>
<!-- <gateway.routes.data-statistical-server.uri>http://localhost:8108</gateway.routes.data-statistical-server.uri>-->
<!-- <gateway.routes.data-statistical-server.uri>http://localhost:8108</gateway.routes.data-statistical-server.uri>-->
</properties>
</profile>
<profile>

25
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/DimDepartmentDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 部门维度
*
* @author yinzuomei@elink-cn.com
* @date 2020/6/29 13:59
*/
@Data
public class DimDepartmentDTO implements Serializable {
private static final long serialVersionUID = -521155628850201172L;
/**
* DEPARTMENT_ID
*/
private String id;
/**
* 部门名称
*/
private String departmentName;
}

9
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserIncrTrendFormDTO.java

@ -13,15 +13,18 @@ import java.io.Serializable;
*/
@Data
public class UserIncrTrendFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
/**
* reg注册居民 parti参与用户如果值为null默认为reg
*/
@NotBlank(message = "regOrPartiFlag不能为空")
private String regOrPartiFlag;
@NotBlank(message = "regOrPatiFlag不能为空", groups = {AddUserInternalGroup.class})
private String regOrPatiFlag;
/**
* day日维度 | month月维度 | ()
*/
@NotBlank(message = "type不能为空")
@NotBlank(message = "type不能为空", groups = {AddUserInternalGroup.class})
private String type;
}

7
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSubAgencyFormDTO.java

@ -14,12 +14,15 @@ import java.io.Serializable;
@Data
public class UserSubAgencyFormDTO implements Serializable {
private static final long serialVersionUID = -4558978951554887536L;
public interface AddUserInternalGroup {
}
/**
* reg注册居民 parti参与用户如果值为null默认为reg
*/
@NotBlank(message = "regOrPartiFlag不能为空")
@NotBlank(message = "regOrPartiFlag不能为空",groups = {AddUserInternalGroup.class})
private String regOrPartiFlag;
@NotBlank(message = "查询日期不能为空")
@NotBlank(message = "查询日期不能为空",groups = {AddUserInternalGroup.class})
private String dateId;
}

8
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSubGridFormDTO.java

@ -14,12 +14,16 @@ import java.io.Serializable;
@Data
public class UserSubGridFormDTO implements Serializable {
private static final long serialVersionUID = -1815903503939673149L;
public interface AddUserInternalGroup {
}
/**
* reg注册居民 parti参与用户如果值为null默认为reg
*/
@NotBlank(message = "regOrPartiFlag不能为空")
@NotBlank(message = "regOrPartiFlag不能为空", groups = {AddUserInternalGroup.class})
private String regOrPartiFlag;
@NotBlank(message = "查询日期不能为空")
@NotBlank(message = "查询日期不能为空", groups = {AddUserInternalGroup.class})
private String dateId;
}

5
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/form/user/UserSummaryInfoFormDTO.java

@ -14,10 +14,11 @@ import java.io.Serializable;
@Data
public class UserSummaryInfoFormDTO implements Serializable {
private static final long serialVersionUID = -1802471335671321322L;
public interface AddUserInternalGroup {
}
/**
* reg注册居民 parti参与用户如果值为null默认为reg
*/
@NotBlank(message = "regOrPartiFlag不能为空")
@NotBlank(message = "regOrPartiFlag不能为空",groups = {AddUserInternalGroup.class})
private String regOrPartiFlag;
}

29
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/UserAgencyInfoResultDTO.java

@ -0,0 +1,29 @@
package com.epmet.dto.result.user;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 直属机关部门网格列表查询 返参DTO
*
* @author yinzuomei@elink-cn.com
* @date 2020/6/29 13:55
*/
@Data
public class UserAgencyInfoResultDTO implements Serializable {
private static final long serialVersionUID = 4471324414446061654L;
private Boolean subGridFlag;
private Boolean subDepartmentFlag;
private Boolean subAgencyFlag;
// @JsonIgnore
private List<DimAgencyDTO> subAgencyList;
// @JsonIgnore
private List<DimGridDTO> subGridList;
// @JsonIgnore
private List<DimDepartmentDTO> subDepartmentList;
}

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/UserSummaryInfoResultDTO.java

@ -19,7 +19,7 @@ public class UserSummaryInfoResultDTO implements Serializable {
* 数据更新至yyyy.MM.dd
*/
private String currentDate;
private String dateId;
/**
* 注册居民数
*/

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/group/constant/GroupConstant.java

@ -7,6 +7,6 @@ package com.epmet.group.constant;
public interface GroupConstant {
String MONTH = "month";
String DATE = "date";
String DATE = "day";
}

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/issue/constant/IssueConstant.java

@ -7,7 +7,7 @@ package com.epmet.issue.constant;
*/
public interface IssueConstant {
String MONTH = "month";
String DATE = "date";
String DATE = "day";
String VOTING_NAME = "表决中";
String SHIFT_NAME = "已转项目";
String CLOSED_NAME = "已关闭";

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/constant/ProjectConstant.java

@ -6,7 +6,7 @@ package com.epmet.project.constant;
**/
public interface ProjectConstant {
String DATE = "date";
String DAY = "day";
String MONTH = "month";
/**

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

@ -20,7 +20,6 @@ package com.epmet.publicity.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
@ -30,7 +29,7 @@ import java.util.Date;
* @since v1.0.0 2020-06-19
*/
@Data
public class FactTagAgencyDTO implements Serializable {
public class FactTagUsedAgencyDTO implements Serializable {
private static final long serialVersionUID = 1L;

63
epmet-module/data-report/data-report-client/src/main/java/com/epmet/publicity/dto/result/FactTagViewedAgencyDTO.java

@ -0,0 +1,63 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.publicity.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 文章引用标签阅读数量机关统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-19
*/
@Data
public class FactTagViewedAgencyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 标签名称 标签名称
*/
private String name;
/**
* 使用改标签的数量
*/
private Integer value;
/**
* 固定值文章数量
*/
private String type="阅读次数";
/**
* 机关Id
*/
private String agencyId;
/**
* 标签Id
*/
private String tagId;
}

2
epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/constant/TopicConstant.java

@ -26,5 +26,5 @@ public interface TopicConstant {
String SHIFTED = "已转议题";
String MONTH = "month";
String DATE = "date";
String DATE = "day";
}

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;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -32,4 +33,10 @@ public class TopicSubAgencyResultDTO implements Serializable {
* 机关Id
*/
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;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -32,4 +33,10 @@ public class TopicSubGridResultDTO implements Serializable {
* 网格Id
*/
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;
/**
* 数据更新至 时间

2
epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.1
image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.14
ports:
- "8109:8109"
network_mode: host # 使用现有网络

2
epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.1
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.14
ports:
- "8108:8108"
network_mode: host # 使用现有网络

2
epmet-module/data-report/data-report-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.1</version>
<version>0.3.14</version>
<artifactId>data-report-server</artifactId>
<parent>

2
epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/project/ProjectController.java

@ -72,7 +72,7 @@ public class ProjectController {
@PostMapping("incrtrend")
public Result<List<ProjectIncrTrendResultDTO>> incrTrend(@LoginUser TokenDto tokenDto, @RequestBody ProjectIncrTrendFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ProjectIncrTrendFormDTO.ProjectIncr.class);
if (!ProjectConstant.DATE.equals(formDTO.getType()) && !ProjectConstant.MONTH.equals(formDTO.getType())) {
if (!ProjectConstant.DAY.equals(formDTO.getType()) && !ProjectConstant.MONTH.equals(formDTO.getType())) {
throw new RenException(ProjectConstant.TYPE_EXCEPTION);
}
return new Result<List<ProjectIncrTrendResultDTO>>().ok(projectService.getProjectIncrTrend(tokenDto, formDTO));

8
epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/publicity/PublicityController.java

@ -65,7 +65,7 @@ public class PublicityController {
* @author jyy
*/
@PostMapping("tagviewed")
public Result<List<FactTagAgencyDTO>> tagviewed(@LoginUser TokenDto tokenDto, @RequestBody TagFormDTO formDTO) {
public Result<List<FactTagViewedAgencyDTO>> tagviewed(@LoginUser TokenDto tokenDto, @RequestBody TagFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, TagFormDTO.GroupJava.class);
Integer pageSize = formDTO.getPageSize();
@ -73,7 +73,7 @@ public class PublicityController {
pageSize = NumConstant.TEN;
}
String type = formDTO.getType();
return new Result<List<FactTagAgencyDTO>>().ok(publicityService.tagviewed(tokenDto, pageSize, type));
return new Result<List<FactTagViewedAgencyDTO>>().ok(publicityService.tagviewed(tokenDto, pageSize, type));
}
/**
@ -82,7 +82,7 @@ public class PublicityController {
* @author jyy
*/
@PostMapping("tagused")
public Result<List<FactTagAgencyDTO>> tagused(@LoginUser TokenDto tokenDto, @RequestBody TagFormDTO formDTO) {
public Result<List<FactTagUsedAgencyDTO>> tagused(@LoginUser TokenDto tokenDto, @RequestBody TagFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, TagFormDTO.GroupJava.class);
Integer pageSize = formDTO.getPageSize();
@ -90,7 +90,7 @@ public class PublicityController {
pageSize = NumConstant.TEN;
}
String type = formDTO.getType();
return new Result<List<FactTagAgencyDTO>>().ok(publicityService.tagused(tokenDto, pageSize, type));
return new Result<List<FactTagUsedAgencyDTO>>().ok(publicityService.tagused(tokenDto, pageSize, type));
}
/**

29
epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/user/UserAnalysisController.java

@ -6,10 +6,7 @@ import com.epmet.dto.form.user.UserIncrTrendFormDTO;
import com.epmet.dto.form.user.UserSubAgencyFormDTO;
import com.epmet.dto.form.user.UserSubGridFormDTO;
import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.user.UserIncrTrendResultDTO;
import com.epmet.dto.result.user.UserSubAgencyResultDTO;
import com.epmet.dto.result.user.UserSubGridResultDTO;
import com.epmet.dto.result.user.UserSummaryInfoResultDTO;
import com.epmet.dto.result.user.*;
import com.epmet.service.user.UserAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -40,7 +37,7 @@ public class UserAnalysisController {
**/
@PostMapping("summaryinfo")
public Result<UserSummaryInfoResultDTO> summaryInfo(@RequestBody UserSummaryInfoFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
ValidatorUtils.validateEntity(formDTO,UserSummaryInfoFormDTO.AddUserInternalGroup.class);
UserSummaryInfoResultDTO userSummaryInfoResultDTO = userService.summaryInfo(formDTO);
return new Result<UserSummaryInfoResultDTO>().ok(userSummaryInfoResultDTO);
}
@ -54,7 +51,7 @@ public class UserAnalysisController {
**/
@PostMapping("subagency")
public Result<List<UserSubAgencyResultDTO>> subAgency(@RequestBody UserSubAgencyFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
ValidatorUtils.validateEntity(formDTO,UserSubAgencyFormDTO.AddUserInternalGroup.class);
List<UserSubAgencyResultDTO> userSubAgencyResultDTO = userService.subAgency(formDTO);
return new Result<List<UserSubAgencyResultDTO>>().ok(userSubAgencyResultDTO);
}
@ -68,7 +65,7 @@ public class UserAnalysisController {
**/
@PostMapping("subgrid")
public Result<List<UserSubGridResultDTO>> subGrid(@RequestBody UserSubGridFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
ValidatorUtils.validateEntity(formDTO, UserSubGridFormDTO.AddUserInternalGroup.class);
List<UserSubGridResultDTO> userSubGridResultDTO = userService.subGrid(formDTO);
return new Result<List<UserSubGridResultDTO>>().ok(userSubGridResultDTO);
}
@ -82,9 +79,23 @@ public class UserAnalysisController {
**/
@PostMapping("incrtrend")
public Result<List<UserIncrTrendResultDTO>> incrTrend(@RequestBody UserIncrTrendFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<UserIncrTrendResultDTO> userIncrTrendResultDTO = userService.incrTrend(formDTO);
ValidatorUtils.validateEntity(formDTO, UserIncrTrendFormDTO.AddUserInternalGroup.class);
List<UserIncrTrendResultDTO> userIncrTrendResultDTO = userService.incrTrendV2(formDTO);
return new Result<List<UserIncrTrendResultDTO>>().ok(userIncrTrendResultDTO);
}
/**
* @param
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.user.UserAgencyInfoResultDTO>
* @author yinzuomei
* @description 直属机关部门网格列表查询
* @Date 2020/6/29 14:10
**/
@PostMapping("checksublist")
public Result<UserAgencyInfoResultDTO> checkSubList() {
UserAgencyInfoResultDTO userAgencyInfoResultDTO = userService.checkSubList();
return new Result<UserAgencyInfoResultDTO>().ok(userAgencyInfoResultDTO);
}
}

2
epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/group/GroupDao.java

@ -32,7 +32,7 @@ public interface GroupDao {
* @param
* @author zxc
*/
List<GroupSubAgencyResultDTO> getSubGroupCount();
List<GroupSubAgencyResultDTO> getSubGroupCount(@Param("customerId") String customerId);
/**
* @Description 获取直属网格下的小组数

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
* @date 2020/6/22 15:19
* @param agencyId
* @param dateId
* @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
* @date 2020/6/22 15:20
* @param agencyId
* @param dateId
* @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
* @date 2020/6/22 15:21
* @param agencyId
* @param dateId
* @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);
/**
* 获取当前机关日增量

40
epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/publicity/PublicityDao.java

@ -42,76 +42,76 @@ public interface PublicityDao {
/**
* @Description 当月获取机关下获取每个标签阅读数量按照数量降序取前pagesize个
* @param agencyId,monthId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getViewedMonthlyCountByTag(@Param("agencyId") String agencyId, @Param("monthId") String monthId, @Param("pageSize") Integer pageSize);
List<FactTagViewedAgencyDTO> getViewedMonthlyCountByTag(@Param("agencyId") String agencyId, @Param("monthId") String monthId, @Param("pageSize") Integer pageSize);
/**
* @Description 当季获取机关下获取每个标签阅读数量按照数量降序取前pagesize个
* @param agencyId,quarterId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getViewedQuarterlyCountByTag(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId, @Param("pageSize") Integer pageSize);
List<FactTagViewedAgencyDTO> getViewedQuarterlyCountByTag(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId, @Param("pageSize") Integer pageSize);
/**
* @Description 当年获取机关下获取每个标签阅读数量按照数量降序取前pagesize个
* @param agencyId,yearId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getViewedYearlyCountByTag(@Param("agencyId") String agencyId, @Param("yearId") String yearId, @Param("pageSize") Integer pageSize);
List<FactTagViewedAgencyDTO> getViewedYearlyCountByTag(@Param("agencyId") String agencyId, @Param("yearId") String yearId, @Param("pageSize") Integer pageSize);
/**
* @Description 当月获取机关下获取每个标签发文数量按照数量降序取前pagesize个
* @param agencyId,monthId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getUsedMonthlyCountByTag(@Param("agencyId") String agencyId, @Param("monthId") String monthId, @Param("pageSize") Integer pageSize);
List<FactTagUsedAgencyDTO> getUsedMonthlyCountByTag(@Param("agencyId") String agencyId, @Param("monthId") String monthId, @Param("pageSize") Integer pageSize);
/**
* @Description 当季获取机关下获取每个标签发文数量按照数量降序取前pagesize个
* @param agencyId,quarterId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getUsedQuarterlyCountByTag(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId, @Param("pageSize") Integer pageSize);
List<FactTagUsedAgencyDTO> getUsedQuarterlyCountByTag(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId, @Param("pageSize") Integer pageSize);
/**
* @Description 当年获取机关下每个标签发文数量按照数量降序取前pagesize个
* @param agencyId,yearId,pageSize 机关id展示数量
* @author zxc
* @author jyy
*/
List<FactTagAgencyDTO> getUsedYearlyCountByTag(@Param("agencyId") String agencyId, @Param("yearId") String yearId, @Param("pageSize") Integer pageSize);
List<FactTagUsedAgencyDTO> getUsedYearlyCountByTag(@Param("agencyId") String agencyId, @Param("yearId") String yearId, @Param("pageSize") Integer pageSize);
/**
* @Description 当月下级机发文数
* @param agencyId,monthId 机关id
* @author zxc
* @author jyy
*/
List<FactPublishedAgencyDTO> getSubAgencyPublishedMonth(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
/**
* @Description 当季下级机发文数
* @param agencyId,quarterId 机关id季度
* @author zxc
* @author jyy
*/
List<FactPublishedAgencyDTO> getSubAgencyPublishedQuarter(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId);
/**
* @Description 当年下级机发文数
* @param agencyId,yearId 机关id
* @author zxc
* @author jyy
*/
List<FactPublishedAgencyDTO> getSubAgencyPublishedYear(@Param("agencyId") String agencyId, @Param("yearId") String yearId);
/**
* @Description 当月下级部门文数
* @param agencyId,monthId 机关id
* @author zxc
* @author jyy
*/
List<FactPublishedDepartmentDTO> getSubDepartPublishedMonth(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
/**
* @Description 当季下级部门文数
* @param agencyId,quarterId 机关id季度
* @author zxc
* @author jyy
*/
List<FactPublishedDepartmentDTO> getSubDepartPublishedQuarter(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId);
/**
@ -124,20 +124,20 @@ public interface PublicityDao {
/**
* @Description 当月下级网格文数
* @param agencyId,monthId 机关id
* @author zxc
* @author jyy
*/
List<FactPublishedGridDTO> getSubGridPublishedMonth(@Param("agencyId") String agencyId, @Param("monthId") String monthId);
/**
* @Description 当季下级网格文数
* @param agencyId,quarterId 机关id季度
* @author zxc
* @author jyy
*/
List<FactPublishedGridDTO> getSubGridPublishedQuarter(@Param("agencyId") String agencyId, @Param("quarterId") String quarterId);
/**
* @Description 当年下级网格文数
* @param agencyId,yearId 机关id
* @author zxc
* @author jyy
*/
List<FactPublishedGridDTO> getSubGridPublishedYear(@Param("agencyId") String agencyId, @Param("yearId") String yearId);

4
epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/topic/TopicDao.java

@ -54,7 +54,7 @@ public interface TopicDao {
* @param
* @author zxc
*/
List<TopicSubAgencyResultDTO> getAllTopicShiftedInfoLastDay();
List<TopicSubAgencyResultDTO> getAllTopicShiftedInfoLastDay(@Param("customerId") String customerId);
/**
* @Description 校验机关下是否存在直属网格
@ -75,7 +75,7 @@ public interface TopicDao {
* @param
* @author zxc
*/
List<TopicSubGridResultDTO> getGridAllTopicShiftedInfoLastDay();
List<TopicSubGridResultDTO> getGridAllTopicShiftedInfoLastDay(@Param("customerId")String customerId);
/**
* @Description 话题日增长

18
epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/user/UserAnalysisDao.java

@ -2,6 +2,7 @@ package com.epmet.dao.user;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
import com.epmet.dto.result.user.UserIncrTrendResDTO;
import com.epmet.dto.result.user.UserSubAgencyResDTO;
@ -101,7 +102,7 @@ public interface UserAnalysisDao {
* @return java.util.List<com.epmet.dto.result.user.UserIncrTrendResDTO>
* @param myAgencyId
* @author yinzuomei
* @description
* @description 注册用户机关日增量折现图 近90天
* @Date 2020/6/23 11:24
**/
List<UserIncrTrendResDTO> selectRegDayIncr(@Param("agencyId")String myAgencyId);
@ -110,7 +111,7 @@ public interface UserAnalysisDao {
* @return java.util.List<com.epmet.dto.result.user.UserIncrTrendResDTO>
* @param myAgencyId
* @author yinzuomei
* @description
* @description 注册用户机关月增量折线图 近12个月包含当前月
* @Date 2020/6/23 11:24
**/
List<UserIncrTrendResDTO> selectRegMonthIncr(@Param("agencyId")String myAgencyId);
@ -119,7 +120,7 @@ public interface UserAnalysisDao {
* @return java.util.List<com.epmet.dto.result.user.UserIncrTrendResDTO>
* @param myAgencyId
* @author yinzuomei
* @description
* @description 参与用户机关日增量折线图 近90天
* @Date 2020/6/23 11:24
**/
List<UserIncrTrendResDTO> selectParticipationUserDayIncr(@Param("agencyId")String myAgencyId);
@ -128,8 +129,17 @@ public interface UserAnalysisDao {
* @return java.util.List<com.epmet.dto.result.user.UserIncrTrendResDTO>
* @param myAgencyId
* @author yinzuomei
* @description
* @description 参与用户机关月增量插线图 近12个月 包含当前月
* @Date 2020/6/23 11:24
**/
List<UserIncrTrendResDTO> selectParticipationUserMonthIncr(@Param("agencyId") String myAgencyId);
/**
* @return java.util.List<com.epmet.dto.DimDepartmentDTO>
* @param myAgencyId 工作人员所属机关单位id
* @author yinzuomei
* @description 查询机关下的部门列表
* @Date 2020/6/29 14:18
**/
List<DimDepartmentDTO> selectSubDepartmentList(@Param("agencyId")String myAgencyId);
}

10
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 java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author zxc
@ -48,9 +50,12 @@ public class GroupServiceImpl implements GroupService {
@Override
public List<GroupSubAgencyResultDTO> subAgency(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto);
String customerId = tokenDto.getCustomerId();
List<GroupSubAgencyResultDTO> result = new ArrayList<>();
//获取下级机关
List<SubAgencyResultDTO> subAgencyList = groupDao.getSubAgencyList(agencyId);
List<GroupSubAgencyResultDTO> subGroupCount = groupDao.getSubGroupCount();
//查询客户下
List<GroupSubAgencyResultDTO> subGroupCount = groupDao.getSubGroupCount(customerId);
if (subAgencyList.size()!= NumConstant.ZERO){
subGroupCount.forEach(group -> {
subAgencyList.forEach(subAgency -> {
@ -60,7 +65,8 @@ public class GroupServiceImpl implements GroupService {
}
});
});
return result;
//倒序
return result.stream().sorted(Comparator.comparing(GroupSubAgencyResultDTO::getValue).reversed()).collect(Collectors.toList());
}
return new ArrayList<>();
}

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

@ -2,6 +2,7 @@ package com.epmet.service.issue.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dao.issue.IssueDao;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
@ -17,6 +18,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -33,17 +35,33 @@ public class IssueServiceImpl implements IssueService {
@Override
public IssueSummaryInfoResultDTO getSummaryInfo(TokenDto tokenDto) {
IssueSummaryInfoResultDTO result = new IssueSummaryInfoResultDTO();
//获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
String agencyId = getAgencyId(tokenDto);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId);
result.setAgencyId(agencyId);
result.setDateName(data.getDateName());
result.setIssueTotal(data.getIssueTotal());
result.setVotingTotal(data.getVotingTotal());
result.setShiftProjectTotal(data.getShiftProjectTotal());
result.setClosedTotal(data.getClosedTotal());
result.setVotingRatio(toRatio(data.getVotingPercent()));
result.setShiftProjectRatio(toRatio(data.getShiftProjectPercent()));
result.setClosedRatio(toRatio(data.getClosedPercent()));
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId);
if (null == data) {
result.setAgencyId(agencyId);
result.setDateName(DateUtils.format(date, "yyyy.MM.dd"));
result.setIssueTotal(NumConstant.ZERO);
result.setVotingTotal(NumConstant.ZERO);
result.setShiftProjectTotal(NumConstant.ZERO);
result.setClosedTotal(NumConstant.ZERO);
result.setVotingRatio("0%");
result.setShiftProjectRatio("0%");
result.setClosedRatio("0%");
} else {
result.setAgencyId(agencyId);
result.setDateName(data.getDateName());
result.setIssueTotal(data.getIssueTotal());
result.setVotingTotal(data.getVotingTotal());
result.setShiftProjectTotal(data.getShiftProjectTotal());
result.setClosedTotal(data.getClosedTotal());
result.setVotingRatio(toRatio(data.getVotingPercent()));
result.setShiftProjectRatio(toRatio(data.getShiftProjectPercent()));
result.setClosedRatio(toRatio(data.getClosedPercent()));
}
return result;
}
@ -51,22 +69,44 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSummaryPieResultDTO> getSummaryPie(TokenDto tokenDto) {
List<IssueSummaryPieResultDTO> list = new ArrayList<>();
String agencyId = getAgencyId(tokenDto);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId);
IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO();
voting.setName(IssueConstant.VOTING_NAME);
voting.setValue(data.getVotingTotal());
voting.setRatio(toRatio(data.getVotingPercent()));
list.add(voting);
IssueSummaryPieResultDTO shift = new IssueSummaryPieResultDTO();
shift.setName(IssueConstant.SHIFT_NAME);
shift.setValue(data.getShiftProjectTotal());
shift.setRatio(toRatio(data.getShiftProjectPercent()));
list.add(shift);
IssueSummaryPieResultDTO closed = new IssueSummaryPieResultDTO();
closed.setName(IssueConstant.CLOSED_NAME);
closed.setValue(data.getClosedTotal());
closed.setRatio(toRatio(data.getClosedPercent()));
list.add(closed);
//获取当前日期前一天
Date date = DateUtils.getBeforeDay(new Date());
//获取日期维度
String dateId = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
IssueDataDTO data = issueDao.selectAgencyInfo(agencyId, dateId);
if (null == data) {
IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO();
voting.setName(IssueConstant.VOTING_NAME);
voting.setValue(NumConstant.ZERO);
voting.setRatio("0%");
list.add(voting);
IssueSummaryPieResultDTO shift = new IssueSummaryPieResultDTO();
shift.setName(IssueConstant.SHIFT_NAME);
shift.setValue(NumConstant.ZERO);
shift.setRatio("0%");
list.add(shift);
IssueSummaryPieResultDTO closed = new IssueSummaryPieResultDTO();
closed.setName(IssueConstant.CLOSED_NAME);
closed.setValue(NumConstant.ZERO);
closed.setRatio("0%");
list.add(closed);
} else {
IssueSummaryPieResultDTO voting = new IssueSummaryPieResultDTO();
voting.setName(IssueConstant.VOTING_NAME);
voting.setValue(data.getVotingTotal());
voting.setRatio(toRatio(data.getVotingPercent()));
list.add(voting);
IssueSummaryPieResultDTO shift = new IssueSummaryPieResultDTO();
shift.setName(IssueConstant.SHIFT_NAME);
shift.setValue(data.getShiftProjectTotal());
shift.setRatio(toRatio(data.getShiftProjectPercent()));
list.add(shift);
IssueSummaryPieResultDTO closed = new IssueSummaryPieResultDTO();
closed.setName(IssueConstant.CLOSED_NAME);
closed.setValue(data.getClosedTotal());
closed.setRatio(toRatio(data.getClosedPercent()));
list.add(closed);
}
return list;
}
@ -74,7 +114,11 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSubAgencyResultDTO> getSubAgency(TokenDto tokenDto) {
List<IssueSubAgencyResultDTO> list = new ArrayList<>();
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) {
dataList.forEach(data -> {
IssueSubAgencyResultDTO voting = new IssueSubAgencyResultDTO();
@ -104,7 +148,11 @@ public class IssueServiceImpl implements IssueService {
public List<IssueSubGridResultDTO> getSubGrid(TokenDto tokenDto) {
List<IssueSubGridResultDTO> list = new ArrayList<>();
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) {
dataList.forEach(data -> {
IssueSubGridResultDTO voting = new IssueSubGridResultDTO();

4
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java

@ -117,7 +117,7 @@ public class ProjectServiceImpl implements ProjectService {
if (null == agencyProjectDailyDTO) {
return resultList;
}
//2:获取当前组织最近日期的直属下级组织项目统计数据,按项目总量降序
//2:获取机关下直属网格最近一天的日统计数据,按项目总数降序
resultList = projectDao.selectSubGrid(agencyProjectDailyDTO);
return resultList;
}
@ -133,7 +133,7 @@ public class ProjectServiceImpl implements ProjectService {
String agencyId = getLoginUserDetails(tokenDto);
//2:查询机关过去九十天日统计数据(sql降序取前九十条)
if (ProjectConstant.DATE.equals(formDTO.getType())) {
if (ProjectConstant.DAY.equals(formDTO.getType())) {
resultList = projectDao.selectIncrTrendDaily(agencyId);
}

8
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/PublicityService.java

@ -18,12 +18,8 @@
package com.epmet.service.publicity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.publicity.dto.result.*;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
import java.util.List;
/**
@ -46,14 +42,14 @@ public interface PublicityService {
* @param tokenDto,formDTO
* @author jyy
*/
public List<FactTagAgencyDTO> tagviewed(TokenDto tokenDto, Integer pageSize, String type) ;
public List<FactTagViewedAgencyDTO> tagviewed(TokenDto tokenDto, Integer pageSize, String type) ;
/**
* @Description 宣传能力工作端宣传能力-获取发表最多的分类数据
* @param tokenDto,pageSize,type
* @author jyy
*/
public List<FactTagAgencyDTO> tagused(TokenDto tokenDto, Integer pageSize, String type) ;
public List<FactTagUsedAgencyDTO> tagused(TokenDto tokenDto, Integer pageSize, String type) ;
/**
* @param tokenDto type

20
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/publicity/impl/PublicityServiceImpl.java

@ -54,7 +54,6 @@ public class PublicityServiceImpl implements PublicityService {
@Override
public FactPublishedAgencyDailyDTO summaryInfo(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto);
agencyId="b9e295f8c1906a0d1c5e0b313afcda3f";
return publicityDao.summaryInfo(agencyId);
}
@ -65,9 +64,8 @@ public class PublicityServiceImpl implements PublicityService {
* @author jyy
*/
@Override
public List<FactTagAgencyDTO> tagviewed(TokenDto tokenDto, Integer pageSize, String type) {
// String agencyId = this.getLoginUserDetails(tokenDto);
String agencyId = "0d2ffe9fce682b602b9d451226d08fae";
public List<FactTagViewedAgencyDTO> tagviewed(TokenDto tokenDto, Integer pageSize, String type) {
String agencyId = this.getLoginUserDetails(tokenDto);
Date date = new Date();
String strDate = DateUtils.format(date, DateUtils.DATE_PATTERN);
String yearId = strDate.substring(0, 4);
@ -94,9 +92,8 @@ public class PublicityServiceImpl implements PublicityService {
* @author jyy
*/
@Override
public List<FactTagAgencyDTO> tagused(TokenDto tokenDto, Integer pageSize, String type) {
// String agencyId = this.getLoginUserDetails(tokenDto);
String agencyId = "0d2ffe9fce682b602b9d451226d08fae";
public List<FactTagUsedAgencyDTO> tagused(TokenDto tokenDto, Integer pageSize, String type) {
String agencyId = this.getLoginUserDetails(tokenDto);
Date date = new Date();
String strDate = DateUtils.format(date, DateUtils.DATE_PATTERN);
String yearId = strDate.substring(0, 4);
@ -124,8 +121,7 @@ public class PublicityServiceImpl implements PublicityService {
*/
@Override
public List<FactPublishedAgencyDTO> subagencyPublishedarticle(TokenDto tokenDto, String type) {
// String agencyId = this.getLoginUserDetails(tokenDto);
String agencyId = "1041fe5e8499dbd8add314291d2f6da4";
String agencyId = this.getLoginUserDetails(tokenDto);
Date date = new Date();
String strDate = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
String yearId = strDate.substring(0, 4);
@ -153,8 +149,7 @@ public class PublicityServiceImpl implements PublicityService {
*/
@Override
public List<FactPublishedDepartmentDTO> departmentPublishedarticle(TokenDto tokenDto, String type) {
// String agencyId = this.getLoginUserDetails(tokenDto);
String agencyId = "0d2ffe9fce682b602b9d451226d08fae";
String agencyId = this.getLoginUserDetails(tokenDto);
Date date = new Date();
String strDate = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
String yearId = strDate.substring(0, 4);
@ -182,8 +177,7 @@ public class PublicityServiceImpl implements PublicityService {
*/
@Override
public List<FactPublishedGridDTO> subgridPublishedarticle(TokenDto tokenDto, String type) {
// String agencyId = this.getLoginUserDetails(tokenDto);
String agencyId = "0d2ffe9fce682b602b9d451226d08fae";
String agencyId = this.getLoginUserDetails(tokenDto);
Date date = new Date();
String strDate = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMMDD);
String yearId = strDate.substring(0, 4);

69
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.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -41,6 +41,7 @@ public class TopicServiceImpl implements TopicService {
TopicSummaryResultDTO result = new TopicSummaryResultDTO();
String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicStatusResultDTO> topicStatus = topicDao.getTopicStatus(agencyId);
result.setDeadline(LocalDate.now().minusDays(NumConstant.ONE).toString());
if (topicStatus.size() != NumConstant.ZERO){
topicStatus.forEach(topic -> {
if (topic.getTopicStatus().equals(TopicConstant.DISCUSSING)){
@ -52,11 +53,11 @@ public class TopicServiceImpl implements TopicService {
}
});
result.setTopicTotalCount(topicStatus.stream().collect(Collectors.summingInt(TopicStatusResultDTO::getTopicCount)));
}
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
if (shiftedCount != null){
result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount());
result.setDeadline(shiftedCount.getDeadline());
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
if (shiftedCount != null){
result.setShiftedTotalCount(shiftedCount.getShiftedIssueCount());
result.setDeadline(shiftedCount.getDeadline());
}
}
return result;
}
@ -93,11 +94,13 @@ public class TopicServiceImpl implements TopicService {
@Override
public List<TopicSubGridResultDTO> topicSubGrid(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto);
String customerId = tokenDto.getCustomerId();
List<TopicSubGridResultDTO> result = new ArrayList<>();
List<TopicSubGridResultDTO> resultAll = new ArrayList<>();
List<String> subGridIdList = topicDao.getSubGridIdList(agencyId);
if (subGridIdList.size() != NumConstant.ZERO){
List<TopicSubGridResultDTO> gridAllTopicInfoLastDay = topicDao.getGridAllTopicInfoLastDay();
List<TopicSubGridResultDTO> gridAllTopicShiftedInfoLastDay = topicDao.getGridAllTopicShiftedInfoLastDay();
List<TopicSubGridResultDTO> gridAllTopicShiftedInfoLastDay = topicDao.getGridAllTopicShiftedInfoLastDay(customerId);
subGridIdList.forEach(gridId -> {
gridAllTopicInfoLastDay.forEach(gridTopic -> {
if (gridId.equals(gridTopic.getGridId())){
@ -110,7 +113,18 @@ 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<>();
}
@ -123,12 +137,14 @@ public class TopicServiceImpl implements TopicService {
@Override
public List<TopicSubAgencyResultDTO> topicSubAgency(TokenDto tokenDto) {
String agencyId = this.getLoginUserDetails(tokenDto);
String customerId = tokenDto.getCustomerId();
List<TopicSubAgencyResultDTO> result = new ArrayList<>();
List<TopicSubAgencyResultDTO> resultAll = new ArrayList<>();
List<String> subAgencyIdList = topicDao.getSubAgencyIdList(agencyId);
//存在下级机关
if (subAgencyIdList.size() != NumConstant.ZERO){
List<TopicSubAgencyResultDTO> allTopicInfoLastDay = topicDao.getAllTopicInfoLastDay();
List<TopicSubAgencyResultDTO> allTopicShiftedInfoLastDay = topicDao.getAllTopicShiftedInfoLastDay();
List<TopicSubAgencyResultDTO> allTopicShiftedInfoLastDay = topicDao.getAllTopicShiftedInfoLastDay(customerId);
//话题状态为 已关闭、讨论中、已屏蔽
subAgencyIdList.forEach(agencyIdOne -> {
allTopicInfoLastDay.forEach(agency -> {
@ -142,7 +158,18 @@ 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<>();
@ -158,13 +185,17 @@ public class TopicServiceImpl implements TopicService {
String agencyId = this.getLoginUserDetails(tokenDto);
List<TopicSummaryInfoResultDTO> topicSummaryInfo = topicDao.topicSummaryInfo(agencyId);
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
int i = (shiftedCount.getShiftedIssueCount() / topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue))) * NumConstant.ONE_HUNDRED;
String ratio = String.valueOf(i) + TopicConstant.RATIO;
TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO();
result.setName(TopicConstant.SHIFTED);
result.setRatio(ratio);
result.setValue(shiftedCount.getShiftedIssueCount());
topicSummaryInfo.add(result);
if (topicSummaryInfo.size() != NumConstant.ZERO && shiftedCount != null) {
Integer collect = topicSummaryInfo.stream().collect(Collectors.summingInt(TopicSummaryInfoResultDTO::getValue));
DecimalFormat decimalFormat = new DecimalFormat(".00");
String ratio;
ratio = collect == NumConstant.ZERO ? NumConstant.ZERO + TopicConstant.RATIO : decimalFormat.format(((float) shiftedCount.getShiftedIssueCount() / (float) collect) * NumConstant.ONE_HUNDRED) + TopicConstant.RATIO;
TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO();
result.setName(TopicConstant.SHIFTED);
result.setRatio(ratio);
result.setValue(shiftedCount.getShiftedIssueCount());
topicSummaryInfo.add(result);
}
return topicSummaryInfo;
}

24
epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/user/UserAnalysisService.java

@ -5,10 +5,7 @@ import com.epmet.dto.form.user.UserIncrTrendFormDTO;
import com.epmet.dto.form.user.UserSubAgencyFormDTO;
import com.epmet.dto.form.user.UserSubGridFormDTO;
import com.epmet.dto.form.user.UserSummaryInfoFormDTO;
import com.epmet.dto.result.user.UserIncrTrendResultDTO;
import com.epmet.dto.result.user.UserSubAgencyResultDTO;
import com.epmet.dto.result.user.UserSubGridResultDTO;
import com.epmet.dto.result.user.UserSummaryInfoResultDTO;
import com.epmet.dto.result.user.*;
import java.util.List;
@ -53,5 +50,24 @@ public interface UserAnalysisService {
* @description 按日按月查询注册用户数参与用户数增量折线图
* @Date 2020/6/22 13:42
**/
@Deprecated
List<UserIncrTrendResultDTO> incrTrend(UserIncrTrendFormDTO formDTO);
/**
* @param formDTO
* @return com.epmet.user.result.UserIncrTrendResultDTO
* @author yinzuomei
* @description 按日按月查询注册用户数参与用户数增量折线图
* @Date 2020/6/22 13:42
**/
List<UserIncrTrendResultDTO> incrTrendV2(UserIncrTrendFormDTO formDTO);
/**
* @return com.epmet.dto.result.user.UserAgencyInfoResultDTO
* @param
* @author yinzuomei
* @description 直属机关部门网格列表查询
* @Date 2020/6/29 14:10
**/
UserAgencyInfoResultDTO checkSubList();
}

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

@ -9,6 +9,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserAnalysisConstant;
import com.epmet.dao.user.UserAnalysisDao;
import com.epmet.dto.DimAgencyDTO;
import com.epmet.dto.DimDepartmentDTO;
import com.epmet.dto.DimGridDTO;
import com.epmet.dto.form.LoginUserDetailsFormDTO;
import com.epmet.dto.form.user.UserIncrTrendFormDTO;
@ -26,10 +27,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* 组织能力用户相关接口
@ -46,7 +50,6 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private UserAnalysisDao userAnalysisDao;
/**
* @return java.lang.String
* @param
@ -68,6 +71,7 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
throw new RenException(UserAnalysisConstant.QUERY_USER_AGENCY_FAILED);
}
}
logger.info(String.format("用户%s的所属机关id为%s",loginUserDetailsFormDTO.getUserId(),result.getData().getAgencyId()));
return result.getData().getAgencyId();
}
/**
@ -88,12 +92,21 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
//注册用户
userSummaryInfoResultDTO=userAnalysisDao.selectRegUserSummaryInfo(myAgencyId);
}
if(null!=userSummaryInfoResultDTO){
if (userSummaryInfoResultDTO == null){
userSummaryInfoResultDTO = new UserSummaryInfoResultDTO();
LocalDate yesterday = LocalDate.now().plusDays(NumConstant.MINUS_ONE_L);
DateTimeFormatter format = DateTimeFormatter.ofPattern(DateUtils.DATE_PATTERN_YYYYMMDD);
userSummaryInfoResultDTO.setCurrentDate(DateUtils.getxAxisDatePattern(yesterday.format(format),"."));
return userSummaryInfoResultDTO;
}
userSummaryInfoResultDTO.setCurrentDate(DateUtils.getxAxisDatePattern(userSummaryInfoResultDTO.getCurrentDate(),"."));
//提取出工具类
userSummaryInfoResultDTO.setPartymemberProportion(userSummaryInfoResultDTO.getPartymemberProportionValue().stripTrailingZeros().toPlainString());
userSummaryInfoResultDTO.setWarmHeartedProportion(userSummaryInfoResultDTO.getWarmHeartedProportionValue().stripTrailingZeros().toPlainString());
}
String partyMemberProStr=userSummaryInfoResultDTO.getPartymemberProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
userSummaryInfoResultDTO.setPartymemberProportion(partyMemberProStr.concat("%"));
String warmProStr=userSummaryInfoResultDTO.getWarmHeartedProportionValue().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
userSummaryInfoResultDTO.setWarmHeartedProportion(warmProStr.concat("%"));
logger.info(String.format("查询用户汇总信息返参%s",JSON.toJSONString(userSummaryInfoResultDTO)));
return userSummaryInfoResultDTO;
}
@ -133,6 +146,15 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
if(dimInitResultDto.getAgencyId().equals(userSubAgencyResDTO.getAgencyId())){
flag=true;
//居民、热心居民、党员总数,用于排序
if(null==userSubAgencyResDTO.getPartymemberTotal()){
userSubAgencyResDTO.setPartymemberTotal(0);
}
if(null==userSubAgencyResDTO.getWarmHeartedTotal()){
userSubAgencyResDTO.setWarmHeartedTotal(0);
}
if(null==userSubAgencyResDTO.getResiTotal()){
userSubAgencyResDTO.setResiTotal(0);
}
dimInitResultDto.setTotal(userSubAgencyResDTO.getPartymemberTotal()
+userSubAgencyResDTO.getWarmHeartedTotal()
+userSubAgencyResDTO.getResiTotal());
@ -149,16 +171,31 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
default:
break;
}
logger.info(String.format("找到当前机关(agencyId=%s,agencyName=%s)对应的数据,当前循环",dimInitResultDto.getAgencyId(),dimInitResultDto.getName()));
break;
}
}
if(!flag){
logger.error(String.format("各机关注册用户数缺少记录:date_id=%s,agencyId=%s",formDTO.getDateId(),dimInitResultDto.getAgencyId()));
}
}
logger.info("排序前");
for(UserSubAgencyResultDTO m:dimList){
logger.info("机关名:"+m.getName()+",总数="+m.getTotal());
}
//返回集合按照total降序排序
List<UserSubAgencyResultDTO> returnList = dimList.stream().sorted(Comparator.comparing(UserSubAgencyResultDTO::getTotal))
.collect(Collectors.toList());
return returnList;
Collections.sort(dimList, new Comparator<UserSubAgencyResultDTO>() {
@Override
public int compare(UserSubAgencyResultDTO o1, UserSubAgencyResultDTO o2) {
int i=o2.getTotal()-o1.getTotal();//降序
return i;
}
});
logger.info("排序后");
for(UserSubAgencyResultDTO m:dimList){
logger.info("机关名:"+m.getName()+",总数="+m.getTotal());
}
return dimList;
}
private List<UserSubAgencyResultDTO> initUserSubAgencyResultDTO(String myAgencyId) {
@ -226,6 +263,15 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
if(dimInitResultDto.getGridId().equals(userSubGridResDTO.getGridId())){
flag=true;
//居民、热心居民、党员总数,用于排序
if(null==userSubGridResDTO.getPartymemberTotal()){
userSubGridResDTO.setPartymemberTotal(0);
}
if(null==userSubGridResDTO.getWarmHeartedTotal()){
userSubGridResDTO.setWarmHeartedTotal(0);
}
if(null==userSubGridResDTO.getResiTotal()){
userSubGridResDTO.setResiTotal(0);
}
dimInitResultDto.setTotal(userSubGridResDTO.getPartymemberTotal()
+userSubGridResDTO.getWarmHeartedTotal()
+userSubGridResDTO.getResiTotal());
@ -243,15 +289,30 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
break;
}
}
logger.info(String.format("找到当前网格(gridId=%s,gridName=%s)对应的数据,当前循环",dimInitResultDto.getGridId(),dimInitResultDto.getName()));
break;
}
if(!flag){
logger.error(String.format("直属网格注册用户数缺少记录:date_id=%s,gridId=%s",formDTO.getDateId(),dimInitResultDto.getGridId()));
}
}
logger.info("排序前");
for(UserSubGridResultDTO m:dimList){
logger.info("网格名:"+m.getName()+",总数="+m.getTotal());
}
//返回集合按照total降序排序
List<UserSubGridResultDTO> returnList = dimList.stream().sorted(Comparator.comparing(UserSubGridResultDTO::getTotal))
.collect(Collectors.toList());
return returnList;
Collections.sort(dimList, new Comparator<UserSubGridResultDTO>() {
@Override
public int compare(UserSubGridResultDTO o1, UserSubGridResultDTO o2) {
int i=o2.getTotal()-o1.getTotal();//降序
return i;
}
});
logger.info("排序后");
for(UserSubGridResultDTO m:dimList){
logger.info("网格名:"+m.getName()+",总数="+m.getTotal());
}
return dimList;
}
private List<UserSubGridResultDTO> initUserSubGridResultDTO(String myAgencyId) {
@ -303,16 +364,16 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
return new ArrayList<>();
}
List<UserIncrTrendResDTO> list=new ArrayList<>();
if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPartiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
//注册用户数、日
list=userAnalysisDao.selectRegDayIncr(myAgencyId);
} else if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPartiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
} else if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
//注册用户数、月
list=userAnalysisDao.selectRegMonthIncr(myAgencyId);
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPartiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
//参与用户数、日
list=userAnalysisDao.selectParticipationUserDayIncr(myAgencyId);
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPartiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
//参与用户数、月
list=userAnalysisDao.selectParticipationUserMonthIncr(myAgencyId);
} else {
@ -338,7 +399,8 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
default:
break;
}
logger.info(String.format("找到当前日期(dateorMonthId=%s)对应的数据,跳出当前循环",dim.getDateOrMonthId()));
break;
}
}
if(!flag){
@ -348,6 +410,86 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
return dimList;
}
@Override
public List<UserIncrTrendResultDTO> incrTrendV2(UserIncrTrendFormDTO formDTO) {
//获取用户所属机关id
String myAgencyId = this.getMyAgency();
List<UserIncrTrendResultDTO> resultList=new ArrayList<>();
List<UserIncrTrendResDTO> list=new ArrayList<>();
if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
//注册用户数、日
list=userAnalysisDao.selectRegDayIncr(myAgencyId);
} else if (UserAnalysisConstant.REG_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
//注册用户数、月
list=userAnalysisDao.selectRegMonthIncr(myAgencyId);
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())) {
//参与用户数、日
list=userAnalysisDao.selectParticipationUserDayIncr(myAgencyId);
} else if (UserAnalysisConstant.PARTI_FLAG.equals(formDTO.getRegOrPatiFlag()) && UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())) {
//参与用户数、月
list=userAnalysisDao.selectParticipationUserMonthIncr(myAgencyId);
} else {
logger.error("参数错误");
return new ArrayList<>();
}
for(UserIncrTrendResDTO userIncrTrendResDTO:list){
String date="";
if(UserAnalysisConstant.DAY_TYPE.equals(formDTO.getType())){
date=DateUtils.getxAxisDatePattern(userIncrTrendResDTO.getDateIdOrMonthId(),"/");
}else if(UserAnalysisConstant.MONTH_TYPE.equals(formDTO.getType())){
date=DateUtils.getxAxisDatePattern(userIncrTrendResDTO.getDateIdOrMonthId(),"/");
}
//居民、热心居民、党员总数,用于排序
UserIncrTrendResultDTO reg=new UserIncrTrendResultDTO();
reg.setDateOrMonthId(userIncrTrendResDTO.getDateIdOrMonthId());
reg.setDate(date);
reg.setType(UserAnalysisConstant.REGISTERED_RESI);
reg.setValue(userIncrTrendResDTO.getRegIncr());
resultList.add(reg);
UserIncrTrendResultDTO warm=new UserIncrTrendResultDTO();
warm.setDateOrMonthId(userIncrTrendResDTO.getDateIdOrMonthId());
warm.setDate(date);
warm.setType(UserAnalysisConstant.WARMHEARTED);
warm.setValue(userIncrTrendResDTO.getWarmIncr());
resultList.add(warm);
UserIncrTrendResultDTO party=new UserIncrTrendResultDTO();
party.setDateOrMonthId(userIncrTrendResDTO.getDateIdOrMonthId());
party.setDate(date);
party.setType(UserAnalysisConstant.PARTYMEMBER);
party.setValue(userIncrTrendResDTO.getPartymemberIncr());
resultList.add(party);
}
return resultList;
}
@Override
public UserAgencyInfoResultDTO checkSubList() {
//获取用户所属机关id
String myAgencyId = this.getMyAgency();
UserAgencyInfoResultDTO userAgencyInfoResultDTO=new UserAgencyInfoResultDTO();
userAgencyInfoResultDTO.setSubAgencyFlag(false);
userAgencyInfoResultDTO.setSubGridFlag(false);
userAgencyInfoResultDTO.setSubDepartmentFlag(false);
List<DimAgencyDTO> subAgencyList=userAnalysisDao.selectSubAgencyList(myAgencyId);
if(null!=subAgencyList&&subAgencyList.size()>0){
userAgencyInfoResultDTO.setSubAgencyFlag(true);
}
List<DimGridDTO> subGridList=userAnalysisDao.selectSubGridList(myAgencyId);
if(null!=subGridList&&subGridList.size()>0){
userAgencyInfoResultDTO.setSubGridFlag(true);
}
List<DimDepartmentDTO> subDepartmentList=userAnalysisDao.selectSubDepartmentList(myAgencyId);
if(null!=subDepartmentList&&subDepartmentList.size()>0){
userAgencyInfoResultDTO.setSubDepartmentFlag(true);
}
userAgencyInfoResultDTO.setSubAgencyList(subAgencyList);
userAgencyInfoResultDTO.setSubGridList(subGridList);
userAgencyInfoResultDTO.setSubDepartmentList(subDepartmentList);
return userAgencyInfoResultDTO;
}
private List<UserIncrTrendResultDTO> initUserIncrTrendResultDTO(String type) {
List<UserIncrTrendResultDTO> list=new ArrayList<>();
if(UserAnalysisConstant.DAY_TYPE.equals(type)){
@ -379,7 +521,7 @@ public class UserAnalysisServiceImpl implements UserAnalysisService {
}
}else if(UserAnalysisConstant.MONTH_TYPE.equals(type)){
List<String> monthList= DateUtils.getMonthBetween(DateUtils.getBeforeNMonth(12),
DateUtils.getBeforeNMonth(1));
DateUtils.getBeforeNMonth(0));
for(String monthId:monthList){
String date=DateUtils.getxAxisDatePattern(monthId,"/");
//居民

17
epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml

@ -137,8 +137,13 @@
<springProfile name="dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/>
<logger name="com.epmet.dao.group" level="DEBUG"/>
<logger name="com.epmet.dao.issue" level="DEBUG"/>
<logger name="com.epmet.dao.project" level="DEBUG"/>
<logger name="com.epmet.dao.publicity" level="DEBUG"/>
<logger name="com.epmet.dao.topic" level="DEBUG"/>
<logger name="com.epmet.dao.user" level="DEBUG"/>
<logger name="com.epmet.dao.voice" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
@ -151,7 +156,13 @@
<springProfile name="prod">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<logger name="com.epmet.dao.group" level="INFO"/>
<logger name="com.epmet.dao.issue" level="INFO"/>
<logger name="com.epmet.dao.project" level="INFO"/>
<logger name="com.epmet.dao.publicity" level="INFO"/>
<logger name="com.epmet.dao.topic" level="INFO"/>
<logger name="com.epmet.dao.user" level="INFO"/>
<logger name="com.epmet.dao.voice" level="INFO"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>

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

@ -14,6 +14,8 @@
FROM fact_group_agency_daily
WHERE del_flag = '0'
AND agency_id = #{agencyId}
ORDER BY date_id DESC
LIMIT 1
</select>
<!--获取下级机关信息-->
@ -26,6 +28,7 @@
WHERE
del_flag = '0'
AND pid = #{agencyId}
AND agency_dim_type = 'all'
</select>
<!--获取下级机关的小组数-->
@ -40,8 +43,8 @@
AND da.del_flag = '0'
WHERE
fgad.del_flag = '0'
GROUP BY fgad.agency_id
ORDER BY fgad.date_id desc
AND fgad.customer_id = #{customerId}
AND fgad.date_id = (SELECT MAX(date_id) FROM fact_group_agency_daily WHERE del_flag = '0')
</select>
<!--获取直属网格下的小组数-->
@ -57,6 +60,8 @@
WHERE
fggd.del_flag = '0'
AND fggd.agency_id = #{agencyId}
AND fggd.date_id = (SELECT MAX(date_id) FROM fact_group_grid_daily WHERE del_flag = '0')
ORDER BY value DESC
</select>
<!--小组数量 日增长-->
@ -72,6 +77,7 @@
AND agency_id = #{agencyId}
ORDER BY
date_id DESC
LIMIT 90
</select>
<!--小组数量 月增长-->
@ -81,12 +87,13 @@
group_incr AS value,
'小组数量' AS type
FROM
fact_group_agency_daily
fact_group_agency_monthly
WHERE
del_flag = '0'
AND agency_id = #{agencyId}
ORDER BY
month_id DESC
month_id DESC, value DESC
LIMIT 12
</select>
</mapper>

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

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

12
epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml

@ -123,15 +123,18 @@
(
SELECT
da.id AS "agencyId",
da.agency_name AS "name",
dg.grid_name AS "name",
fgpd.pending_total AS "value",
"处理中" AS "type",
fgpd.project_total
FROM
fact_grid_project_daily fgpd
LEFT JOIN dim_agency da ON fgpd.agency_id = da.id
LEFT JOIN dim_grid dg ON fgpd.grid_id = dg.id
WHERE
fgpd.del_flag = '0'
AND da.del_flag = '0'
AND dg.del_flag = '0'
AND fgpd.agency_id = #{agencyId}
AND fgpd.date_id = #{dateId}
)
@ -139,21 +142,24 @@
(
SELECT
da.id AS "agencyId",
da.agency_name AS "name",
dg.grid_name AS "name",
fgpd.closed_total AS "value",
"已结案" AS "type",
fgpd.project_total
FROM
fact_grid_project_daily fgpd
LEFT JOIN dim_agency da ON fgpd.agency_id = da.id
LEFT JOIN dim_grid dg ON fgpd.grid_id = dg.id
WHERE
fgpd.del_flag = '0'
AND da.del_flag = '0'
AND dg.del_flag = '0'
AND fgpd.agency_id = #{agencyId}
AND fgpd.date_id = #{dateId}
)
) a
ORDER BY
a.project_total DESC
a.project_total DESC, a.type ASC
</select>
<select id="selectIncrTrendDaily" resultType="com.epmet.project.dto.result.ProjectIncrTrendResultDTO">

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

@ -10,96 +10,96 @@
article_published_count AS publishingTotal,
DATE_FORMAT( date_id, '%Y.%m.%d' ) AS dateName
FROM fact_article_published_agency_daily
where agency_id = #{agencyId}
where agency_id = #{agencyId} order by DATE_ID desc limit 1
</select>
<!-- 机关当月—每个标签阅读数量—前pageSize -->
<select id="getViewedMonthlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getViewedMonthlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagViewedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(tag_read_count) AS value
SUM(tag_read_count) AS value
FROM fact_tag_viewed_agency_monthly
where agency_id = #{agencyId}
AND month_id = #{monthId}
GROUP BY TAG_ID
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
<!-- 机关当季—每个标签阅读数量—前pageSize -->
<select id="getViewedQuarterlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getViewedQuarterlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagViewedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(tag_read_count) AS value
SUM(tag_read_count) AS value
FROM fact_tag_viewed_agency_quarterly
where agency_id = #{agencyId}
AND quarter_id = #{quarterId}
GROUP BY TAG_ID
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
<!-- 机关当年—每个标签阅读数量—前pageSize -->
<select id="getViewedYearlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getViewedYearlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagViewedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(tag_read_count) AS value
SUM(tag_read_count) AS value
FROM fact_tag_viewed_agency_yearly
where agency_id = #{agencyId}
AND year_id = #{yearId}
GROUP BY tag_id
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
<!-- 机关当月—每个标签发文数量—前pageSize -->
<select id="getUsedMonthlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getUsedMonthlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagUsedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(used_count) AS value
SUM(used_count) AS value
FROM fact_tag_used_agency_monthly
where agency_id = #{agencyId}
AND month_id = #{monthId}
GROUP BY TAG_ID
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
<!-- 机关当季—每个标签发文数量—前pageSize -->
<select id="getUsedQuarterlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getUsedQuarterlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagUsedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(used_count) AS value
SUM(used_count) AS value
FROM fact_tag_used_agency_quarterly
where agency_id = #{agencyId}
AND quarter_id = #{quarterId}
GROUP BY TAG_ID
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
<!-- 机关当年—每个标签发文数量—前pageSize -->
<select id="getUsedYearlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagAgencyDTO">
<select id="getUsedYearlyCountByTag" resultType="com.epmet.publicity.dto.result.FactTagUsedAgencyDTO">
SELECT
tag_name AS name,
agency_id AS agencyId,
tag_id AS tagId,
COUNT(used_count) AS value
SUM(used_count) AS value
FROM fact_tag_used_agency_yearly
where agency_id = #{agencyId}
AND year_id = #{yearId}
GROUP BY tag_id
ORDER BY value DESC
ORDER BY value DESC ,tagId ASC
LIMIT #{pageSize}
</select>
@ -116,8 +116,10 @@
where
pub.agency_id = agency.id
AND pub.PID =#{agencyId}
AND pub.agency_id not LIKE '%self%'
AND pub.month_id=#{monthId}
GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select>
@ -134,8 +136,10 @@
where
pub.agency_id = agency.id
AND pub.PID =#{agencyId}
AND pub.agency_id not LIKE '%self%'
AND pub.quarter_id=#{quarterId}
GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select>
<!-- 当年——下级机发文数:机关名称、机关id、发文数量、上级机关id -->
@ -151,8 +155,10 @@
where
pub.agency_id = agency.id
AND pub.PID =#{agencyId}
AND pub.agency_id not LIKE '%self%'
AND pub.year_id=#{yearId}
GROUP BY pub.agency_id
ORDER BY value DESC,agencyId ASC
</select>
<!-- 当月——下级部门文数:部门名称、机关id、发文数量、部门id -->
@ -170,6 +176,7 @@
AND pub.agency_id =#{agencyId}
AND pub.month_id=#{monthId}
GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select>
@ -188,6 +195,7 @@
AND pub.agency_id =#{agencyId}
AND pub.quarter_id=#{quarterId}
GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select>
<!-- 当年——下级部门文数:部门名称、机关id、发文数量、部门id -->
@ -205,6 +213,7 @@
AND pub.agency_id =#{agencyId}
AND pub.year_id=#{yearId}
GROUP BY pub.department_id
ORDER BY value DESC,departmentId ASC
</select>
<!-- 当月——下级网格文数:网格名称、机关id、发文数量、网格id -->
@ -222,6 +231,7 @@
AND pub.agency_id = #{agencyId}
AND pub.month_id=#{monthId}
GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select>
@ -240,6 +250,7 @@
AND pub.agency_id = #{agencyId}
AND pub.quarter_id=#{quarterId}
GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select>
<!-- 当年——下级网格文数:网格名称、机关id、发文数量、网格id -->
@ -257,6 +268,7 @@
AND pub.agency_id = #{agencyId}
AND pub.year_id = #{yearId}
GROUP BY pub.grid_id
ORDER BY value DESC,gridId ASC
</select>
</mapper>

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

@ -13,10 +13,9 @@
WHERE
del_flag = '0'
AND agency_id = #{agencyId}
GROUP BY
topic_status_id
ORDER BY
date_id DESC
LIMIT 3
</select>
<!--获取机关下已转议题数量-->
@ -42,16 +41,15 @@
WHEN topic_status_id = 'hidden' THEN '已屏蔽'
WHEN topic_status_id = 'closed' THEN '已关闭'
ELSE '无' END) AS name,
CONCAT(topic_proportion,'%') AS ratio
CONCAT(ROUND(topic_proportion * 100,2),'%') AS ratio
FROM
fact_topic_status_agency_daily
WHERE
del_flag = '0'
AND agency_id = #{agencyId}
GROUP BY
topic_status_id
ORDER BY
date_id DESC
LIMIT 3
</select>
<!--根据当前机关判断是否有下级机关-->
@ -63,6 +61,7 @@
WHERE
del_flag = '0'
AND pid = #{agencyId}
AND agency_dim_type = 'all'
</select>
<!--获取最后一天的所有话题数据-->
@ -80,10 +79,7 @@
LEFT JOIN dim_agency da ON da.id = ftsad.agency_id AND da.del_flag = '0'
WHERE
ftsad.del_flag = '0'
GROUP BY
ftsad.topic_status_id
ORDER BY
ftsad.date_id DESC
AND ftsad.date_id = (SELECT MAX(date_id) AS dateId FROM fact_topic_status_agency_daily WHERE del_flag = '0')
</select>
<!--获取最后一天的所有话题已转议题数据-->
@ -98,8 +94,8 @@
LEFT JOIN dim_agency da ON da.id = ftiad.agency_id AND da.del_flag = '0'
WHERE
ftiad.del_flag = '0'
GROUP BY ftiad.agency_id
ORDER BY ftiad.date_id DESC
AND ftiad.customer_id = #{customerId}
AND ftiad.date_id = (SELECT MAX(date_id) AS dateId FROM fact_topic_issue_agency_daily WHERE del_flag = '0')
</select>
<!--校验机关下是否存在直属网格-->
@ -128,10 +124,7 @@
LEFT JOIN dim_grid dg ON dg.id = ftsad.grid_id AND dg.del_flag = '0'
WHERE
ftsad.del_flag = '0'
GROUP BY
ftsad.topic_status_id
ORDER BY
ftsad.date_id DESC
AND ftsad.date_id = (SELECT MAX(date_id) AS dateId FROM fact_topic_status_grid_daily WHERE del_flag = '0')
</select>
<!--获取最后一天的所有话题已转议题数据-->
@ -146,8 +139,8 @@
LEFT JOIN dim_grid da ON da.id = ftiad.grid_id AND da.del_flag = '0'
WHERE
ftiad.del_flag = '0'
GROUP BY ftiad.grid_id
ORDER BY ftiad.date_id DESC
AND ftiad.customer_id = #{customerId}
AND ftiad.date_id = (SELECT MAX(date_id) AS dateId FROM fact_topic_issue_grid_daily WHERE del_flag = '0')
</select>
<!--话题日增长-->
@ -166,6 +159,7 @@
AND agency_id = #{agencyId}
ORDER BY
date_id DESC
LIMIT 270
</select>
<!--话题转议题-->
@ -197,6 +191,7 @@
AND agency_id = #{agencyId}
ORDER BY
month_id DESC
LIMIT 36
</select>
<select id="getTopicShiftedIncrMonthly" parameterType="java.lang.String" resultType="com.epmet.topic.dto.result.TopicIncrTrendResultDTO">

78
epmet-module/data-report/data-report-server/src/main/resources/mapper/user/UserAnalysisDao.xml

@ -33,12 +33,13 @@
SELECT
m.id,
m.DATE_ID AS currentDate,
m.DATE_ID AS dateId,
m.REG_TOTAL AS regTotal,
0 AS partiTotal,
m.PARTYMEMBER_TOTAL AS partymemberTotal,
m.PARTYMEMBER_PROPORTION*100 AS partymemberProportion,
m.PARTYMEMBER_PROPORTION*100 AS partymemberProportionValue,
m.WARM_HEARTED_TOTAL AS warmHeartedTotal,
m.WARM_HEARTED_PROPORTION*100 AS warmHeartedProportion
m.WARM_HEARTED_PROPORTION*100 AS warmHeartedProportionValue
FROM
fact_reg_user_agency_daily m
WHERE
@ -55,12 +56,13 @@
SELECT
m.id,
m.DATE_ID AS currentDate,
m.DATE_ID AS dateId,
m.REG_TOTAL AS regTotal,
0 AS partiTotal,
m.PARTYMEMBER_TOTAL AS partymemberTotal,
m.PARTYMEMBER_PROPORTION*100 AS partymemberProportion,
m.PARTYMEMBER_PROPORTION*100 AS partymemberProportionValue,
m.WARM_HEARTED_TOTAL AS warmHeartedTotal,
m.WARM_HEARTED_PROPORTION*100 AS warmHeartedProportion
m.WARM_HEARTED_PROPORTION*100 AS warmHeartedProportionValue
FROM
fact_participation_user_agency_daily m
WHERE
@ -75,42 +77,44 @@
<select id="selectParticipationSubAgencyRes" parameterType="map"
resultType="com.epmet.dto.result.user.UserSubAgencyResDTO">
SELECT
m.AGENCY_ID,
DA.ID AS AGENCY_ID,
da.AGENCY_NAME,
m.REG_TOTAL,
M.RESI_TOTAL,
M.WARM_HEARTED_TOTAL,
M.PARTYMEMBER_TOTAL
FROM
fact_participation_user_agency_daily m
LEFT JOIN dim_agency da
ON ( m.AGENCY_ID = da.ID
AND da.PID =#{agencyId}
AND da.DEL_FLAG = '0' )
WHERE
m.DEL_FLAG = '0'
and m.DATE_ID=#{dateId}
dim_agency da
LEFT JOIN fact_participation_user_agency_daily m
ON ( da.ID=m.AGENCY_ID
and m.DEL_FLAG = '0'
and m.DATE_ID=#{dateId}
)
WHERE da.DEL_FLAG = '0'
AND da.PID =#{agencyId}
and da.AGENCY_DIM_TYPE='all'
order by m.REG_TOTAL desc
</select>
<!-- 注册用户:子级机关用户分析,按日(date_id)查询 -->
<select id="selectRegSubAgencyRes" parameterType="map" resultType="com.epmet.dto.result.user.UserSubAgencyResDTO">
SELECT
m.AGENCY_ID,
SELECT
DA.ID AS AGENCY_ID,
da.AGENCY_NAME,
m.REG_TOTAL,
M.RESI_TOTAL,
M.WARM_HEARTED_TOTAL,
M.PARTYMEMBER_TOTAL
FROM
fact_reg_user_agency_daily m
LEFT JOIN dim_agency da
ON ( m.AGENCY_ID = da.ID
AND da.PID =#{agencyId}
AND da.DEL_FLAG = '0' )
WHERE
m.DEL_FLAG = '0'
and m.DATE_ID=#{dateId}
dim_agency da
LEFT JOIN fact_reg_user_agency_daily m
ON ( da.ID=m.AGENCY_ID
and m.DEL_FLAG = '0'
and m.DATE_ID=#{dateId}
)
WHERE da.DEL_FLAG = '0'
AND da.PID =#{agencyId}
and da.AGENCY_DIM_TYPE='all'
order by m.REG_TOTAL desc
</select>
@ -147,7 +151,7 @@
AND m.AGENCY_ID = #{agencyId}
</select>
<!-- -->
<!-- 注册用户:机关、日增量折现图 近90天 -->
<select id="selectRegDayIncr" parameterType="java.lang.String"
resultType="com.epmet.dto.result.user.UserIncrTrendResDTO">
SELECT
@ -159,12 +163,12 @@
fact_reg_user_agency_daily m
WHERE
m.DEL_FLAG = '0'
AND m.AGENCY_ID =#{myAgencyId}
AND m.AGENCY_ID =#{agencyId}
ORDER BY
m.DATE_ID DESC
LIMIT 90
</select>
<!-- -->
<!-- 注册用户:机关、月增量折线图 近12个月包含当前月 -->
<select id="selectRegMonthIncr" parameterType="java.lang.String"
resultType="com.epmet.dto.result.user.UserIncrTrendResDTO">
SELECT
@ -176,13 +180,13 @@
fact_reg_user_agency_monthly m
WHERE
m.DEL_FLAG = '0'
AND m.AGENCY_ID =#{myAgencyId}
AND m.AGENCY_ID =#{agencyId}
ORDER BY
m.MONTH_ID DESC
LIMIT 12
</select>
<!-- -->
<!-- 参与用户:机关、日增量折线图 近90天 -->
<select id="selectParticipationUserDayIncr" parameterType="java.lang.String"
resultType="com.epmet.dto.result.user.UserIncrTrendResDTO">
SELECT
@ -194,12 +198,12 @@
fact_participation_user_agency_daily m
WHERE
m.DEL_FLAG = '0'
AND m.AGENCY_ID =#{myAgencyId}
AND m.AGENCY_ID =#{agencyId}
ORDER BY
m.DATE_ID DESC
LIMIT 90
</select>
<!-- -->
<!-- 参与用户:机关、月增量插线图 近12个月 包含当前月-->
<select id="selectParticipationUserMonthIncr" parameterType="java.lang.String"
resultType="com.epmet.dto.result.user.UserIncrTrendResDTO">
SELECT
@ -211,9 +215,21 @@
fact_participation_user_agency_monthly m
WHERE
m.DEL_FLAG = '0'
AND m.AGENCY_ID =#{myAgencyId}
AND m.AGENCY_ID =#{agencyId}
ORDER BY
m.MONTH_ID DESC
LIMIT 12
</select>
<!-- 查询机关下的部门列表 -->
<select id="selectSubDepartmentList" parameterType="java.lang.String" resultType="com.epmet.dto.DimDepartmentDTO">
SELECT
dd.id,
dd.DEPARTMENT_NAME
FROM
dim_department dd
WHERE
dd.DEL_FLAG = '0'
AND dd.AGENCY_ID =#{agencyId}
</select>
</mapper>

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

@ -29,8 +29,8 @@ public interface GroupConstant {
String CITY = "city";
String PROVINCE = "province";
String ERRORGRIDDAILY = "groupGridDaily ==>【网格小组统计出错了... 维度:网格-日】customerId为:";
String STATS_FAILED_GRID_DAILY = "统计数据方法groupGridDaily【网格小组统计-网格-日】执行失败,客户ID:%s,统计日期:%s,异常信息:%s";
String ERRORAGENCYDAILY = "groupAgencyDaily ==>【网格小组统计出错了... 维度:机关-日】customerId为:";
String STATS_FAILED_AGENCY_DAILY = "统计数据方法groupAgencyDaily【网格小组统计-机关-日】执行失败,客户ID:%s,统计日期:%s,异常信息:%s";
}

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

121
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueAgencyDailyDTO.java

@ -0,0 +1,121 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 转议题话题-机关日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicIssueAgencyDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 父级机关ID
*/
private String pid;
/**
* 客户Id
* */
private String customerId;
/**
* 机关ID
*/
private String agencyId;
/**
* 日期ID
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 已转议题数量
*/
private Integer issueTotal;
/**
* 已转议题当日增量
*/
private Integer issueIncr;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

111
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueAgencyMonthlyDTO.java

@ -0,0 +1,111 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 转议题话题-机关月统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicIssueAgencyMonthlyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 父级ID
*/
private String pid;
/**
* 客户Id
* */
private String customerId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 已转议题总量
*/
private Integer issueTotal;
/**
* 已转议题增量
*/
private Integer issueIncr;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

121
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueGridDailyDTO.java

@ -0,0 +1,121 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 转议题话题-网格日统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicIssueGridDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 日期ID
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 新增转议题数
*/
private Integer issueIncr;
/**
* 转议题总数
*/
private Integer issueTotal;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

111
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicIssueGridMonthlyDTO.java

@ -0,0 +1,111 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 转议题话题-网格月统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicIssueGridMonthlyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 已转议题增量
*/
private Integer issueIncr;
/**
* 已转议题总量
*/
private Integer issueTotal;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

137
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusAgencyDailyDTO.java

@ -0,0 +1,137 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 状态话题-机关日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicStatusAgencyDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机构ID 关联机关dm表
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 父级机关ID
*/
private String pid;
/**
* 统计日期 关联日期dm表
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 话题状态ID 关联dim_topic_status表
讨论中 discussing
已屏蔽 hidden
已关闭 closed
已转项目 shift_project
*/
private String topicStatusId;
/**
* 话题数量 指定状态的话题数量
*/
private Integer topicCount;
/**
* 话题状态百分比 指定状态话题数/话题总数
总数在topic_total_agency_daily中
*/
private BigDecimal topicProportion;
/**
* 话题增量 单位时间内的状态话题的增加数
*/
private Integer topicIncrement;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

127
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusAgencyMonthlyDTO.java

@ -0,0 +1,127 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 状态话题-机关月统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicStatusAgencyMonthlyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机构ID 关联机关dm表
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 父级机关ID
*/
private String pid;
/**
* 统计月份 关联月度dm表
*/
private String monthId;
/**
* 季度ID 关联季度dm表
*/
private String quarterId;
/**
* 年ID 关联年度dm表
*/
private String yearId;
/**
* 话题状态 讨论中 discussing
已屏蔽 hidden
已关闭 closed
已转项目 shift_project
*/
private String topicStatusId;
/**
* 话题数量
*/
private Integer topicCount;
/**
* 话题状态占比 月末一天
指定状态话题数/话题总数
总数在topic_total_agency_daily中
*/
private BigDecimal topicProportion;
/**
* 话题增量 单位时间内的话题状态增加数
*/
private Integer topicIncr;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

136
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicStatusGridDailyDTO.java

@ -0,0 +1,136 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 状态话题-网格日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicStatusGridDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 网格ID 关联网格dm表
*/
private String gridId;
/**
* 日期ID
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 话题状态ID 讨论中 discussing
已屏蔽 hidden
已关闭 closed
已转项目 shift_project
*/
private String topicStatusId;
/**
* 话题数量
*/
private Integer topicCount;
/**
* 话题状态占比 指定状态话题数/话题总数
总数在topic_total_grid_daily中
*/
private BigDecimal topicProportion;
/**
* 话题增量
*/
private Integer topicIncrement;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

131
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicTotalAgencyDailyDTO.java

@ -0,0 +1,131 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 话题总数-机关日统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicTotalAgencyDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 父级机关ID
*/
private String pid;
/**
* 统计日期 关联日期dm表
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 话题总数
*/
private Integer topicTotal;
/**
* 话题增量
*/
private Integer topicIncr;
/**
* 屏蔽话题数
*/
private Integer hiddenTotalCount;
/**
* 已转议题数
*/
private Integer issueTotalCount;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

131
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/FactTopicTotalGridDailyDTO.java

@ -0,0 +1,131 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.stats.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 话题总数-网格日统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Data
public class FactTopicTotalGridDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 客户Id
* */
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 统计日期 关联日期dm表
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季度ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 话题总量
*/
private Integer topicTotal;
/**
* 话题增量
*/
private Integer topicIncr;
/**
* 屏蔽话题数量
*/
private Integer hiddenTotalCount;
/**
* 已转议题数量
*/
private Integer issueTotalCount;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

38
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/GridTopicData.java

@ -0,0 +1,38 @@
package com.epmet.dto.stats.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName GridTopicData
* @Auth wangc
* @Date 2020-06-22 17:31
*/
@Data
public class GridTopicData implements Serializable {
private static final long serialVersionUID = -7427128491727512781L;
private String gridId;
private Integer topicIncr = 0;
private Integer discussingIncr = 0;
private Integer hiddenIncr = 0;
private Integer closedIncr = 0;
private Integer total = 0;
private Integer discussingTotal = 0;
private Integer hiddenTotal = 0;
private Integer closedTotal = 0;
private Integer issueIncr = 0;
private Integer issueTotal = 0;
}

38
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/GroupTopicData.java

@ -0,0 +1,38 @@
package com.epmet.dto.stats.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName GroupTopicData
* @Auth wangc
* @Date 2020-06-22 15:29
*/
@Data
public class GroupTopicData implements Serializable {
private static final long serialVersionUID = -7968684838832002029L;
private String groupId;
private Integer topicIncr = 0;
private Integer discussingIncr = 0;
private Integer hiddenIncr = 0;
private Integer closedIncr = 0;
private Integer total = 0;
private Integer discussingTotal = 0;
private Integer hiddenTotal = 0;
private Integer closedTotal = 0;
private Integer issueIncr = 0;
private Integer issueTotal = 0;
}

43
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/topic/result/TopicStatisticalData.java

@ -0,0 +1,43 @@
package com.epmet.dto.stats.topic.result;
import com.epmet.dto.stats.topic.*;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 话题统计数据对象
* @ClassName TopicStatisticalDataResultDTO
* @Auth wangc
* @Date 2020-06-22 13:16
*/
@Data
public class TopicStatisticalData implements Serializable {
private static final long serialVersionUID = 3690257892396607149L;
private List<FactTopicIssueAgencyDailyDTO> issueAgencyDailyList ;
private List<FactTopicIssueAgencyMonthlyDTO> issueAgencyMonthlyList ;
private List<FactTopicIssueGridDailyDTO> issueGridDailyList ;
private List<FactTopicIssueGridMonthlyDTO> issueGridMonthlyList ;
private List<FactTopicStatusAgencyDailyDTO> topicAgencyDailyList ;
private List<FactTopicStatusAgencyMonthlyDTO> topicAgencyMonthlyList ;
private List<FactTopicStatusGridDailyDTO> topicGridDailyList;
private List<FactTopicTotalAgencyDailyDTO> totalAgencyDailyList;
private List<FactTopicTotalGridDailyDTO> totalGridDailyList;
private String dateId;
private String monthId;
private String customerId;
}

1
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridDailyDTO.java

@ -59,6 +59,7 @@ public class FactParticipationUserGridDailyDTO implements Serializable {
*/
private String dateId;
/**
*
*/

41
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/result/UserStatisticalData.java

@ -0,0 +1,41 @@
package com.epmet.dto.stats.user.result;
import com.epmet.dto.stats.user.*;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 用户统计数据对象
* @ClassName UserStatisticalData
* @Auth wangc
* @Date 2020-06-19 15:02
*/
@Data
public class UserStatisticalData implements Serializable {
private static final long serialVersionUID = 7423427555123585566L;
private List<FactParticipationUserAgencyDailyDTO> partiAgencyDailyList;
private List<FactParticipationUserGridDailyDTO> partiGridDailyList;
private List<FactParticipationUserAgencyMonthlyDTO> partiAgencyMonthlyList;
private List<FactParticipationUserGridMonthlyDTO> partiGridMonthlyList;
private List<FactRegUserAgencyDailyDTO> regAgencyDailyList;
private List<FactRegUserGridDailyDTO> regGridDailyList;
private List<FactRegUserAgencyMonthlyDTO> regAgencyMonthlyList;
private List<FactRegUserGridMonthlyDTO> regGridMonthlyList;
private String customerId;
private String dateId;
private String monthId;
}

27
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiGroupTopicResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description -话题对象
* @ClassName ResiGroupTopicResultDTO
* @Auth wangc
* @Date 2020-06-20 17:23
*/
@Data
public class ResiGroupTopicResultDTO implements Serializable {
private static final long serialVersionUID = -6243796311184636458L;
private String gridId;
private String groupId;
private String groupName;
private String customerId;
private List<ResiTopicResultDTO> topics;
}

31
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicOperationResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 话题操作记录DTO
* @ClassName ResiTopicOperationResultDTO
* @Auth wangc
* @Date 2020-06-22 10:58
*/
@Data
public class ResiTopicOperationResultDTO implements Serializable {
private static final long serialVersionUID = -7811429974017636134L;
/**
* 话题Id
* */
private String topicId;
/**
* 操作状态
* */
private String status;
/**
* 操作时间 yyyy-MM-dd
* */
private String createdTime;
}

24
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/topic/result/ResiTopicResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 话题对象
* @ClassName ResiTopicResultDTO
* @Auth wangc
* @Date 2020-06-20 17:22
*/
@Data
public class ResiTopicResultDTO implements Serializable {
private static final long serialVersionUID = 6818736495648532514L;
private String topicId;
private String status;
private boolean shiftIssue;
private String incrFlag;
}

34
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java

@ -5,6 +5,9 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.impl.DataStatisticalOpenFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
/**
* desc: 数据统计 对外feign client
@ -13,7 +16,8 @@ import org.springframework.web.bind.annotation.PostMapping;
* @date: 2020/6/22 17:39
* @author: jianjun liu
*/
@FeignClient(name = ServiceConstant.DATA_STATISTICAL, fallback = DataStatisticalOpenFeignClientFallBack.class)
//url="http://localhost:8108"
@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = DataStatisticalOpenFeignClientFallBack.class)
public interface DataStatisticalOpenFeignClient {
/**
@ -128,4 +132,32 @@ public interface DataStatisticalOpenFeignClient {
@PostMapping("/data/stats/statsproject/gridprojectstats")
Result gridProjectStats();
/**
* 初始化所有维度
*
* @return
*/
@PostMapping("/data/stats/dim/all/init")
Result initAllDims();
/**
* @Description 执行用户统计
* @param
* @return
* @author wangc
* @date 2020.06.29 09:26
**/
@PostMapping("/data/stats/statsuser/execute")
Result execUserStatistical(@RequestParam(value = "date",required = false) String date);
/**
* @Description 执行话题统计
* @param
* @return
* @author wangc
* @date 2020.06.29 09:27
**/
@PostMapping("/data/stats/statstopic/execute")
Result execTopicStatistical(@RequestParam(value = "date",required = false) String date);
}

58
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -6,6 +6,9 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* desc:
*
@ -25,7 +28,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result articleSummaryDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "articleSummaryDailyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "articleSummaryDailyStatsjob");
}
/**
@ -37,7 +40,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagUsedDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedDailyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedDailyStatsjob");
}
/**
@ -48,7 +51,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagUsedMonthlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedMonthlyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedMonthlyStatsjob");
}
/**
@ -59,7 +62,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagUsedQuarterlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedQuarterlyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedQuarterlyStatsjob");
}
/**
@ -70,7 +73,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagViewedDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedDailyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedDailyStatsjob");
}
/**
@ -81,7 +84,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagViewedMonthlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedMonthlyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedMonthlyStatsjob");
}
/**
@ -92,27 +95,27 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result tagViewedQuarterlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedQuarterlyStatsjob");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedQuarterlyStatsjob");
}
@Override
public Result groupGridDaily() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupGridDaily");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupGridDaily");
}
@Override
public Result groupAgencyDaily() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupAgencyDaily");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyDaily");
}
@Override
public Result groupAgencyMonthly() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupAgencyMonthly");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyMonthly");
}
@Override
public Result agencyGridIssueStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "agencyGridIssueStats");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyGridIssueStats");
}
/**
@ -121,7 +124,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result agencyProjectStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "agencyProjectStats");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyProjectStats");
}
/**
@ -130,6 +133,35 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
*/
@Override
public Result gridProjectStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "gridProjectStats");
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "gridProjectStats");
}
@Override
public Result initAllDims() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "initAllDims");
}
/**
* @Description 执行用户统计
* @param
* @return
* @author wangc
* @date 2020.06.29 09:26
**/
@Override
public Result execUserStatistical(String date) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execUserStatistical",date);
}
/**
* @Description 执行话题统计
* @param
* @return
* @author wangc
* @date 2020.06.29 09:27
**/
@Override
public Result execTopicStatistical(String date) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execTopicStatistical",date);
}
}

131
epmet-module/data-statistical/data-statistical-client/src/main/java/feign/DataStatisticalOpenFeignClient.java

@ -1,131 +0,0 @@
package feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import feign.impl.DataStatisticalOpenFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
* desc: 数据统计 对外feign client
*
* @return:
* @date: 2020/6/22 17:39
* @author: jianjun liu
*/
@FeignClient(name = ServiceConstant.DATA_STATISTICAL, fallback = DataStatisticalOpenFeignClientFallBack.class)
public interface DataStatisticalOpenFeignClient {
/**
* desc: 统计文章总数及在线文章总数 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/articleSummaryDailyStatsjob")
Result articleSummaryDailyStatsjob();
/**
* desc: 定时任务 统计文章总数及在线文章总数 包含 机关 部门 网格
*
* @return:
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagUsedDailyStatsjob")
Result tagUsedDailyStatsjob();
/**
* desc: 统计发表文章最多的分类 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagUsedMonthlyStatsjob")
Result tagUsedMonthlyStatsjob();
/**
* desc: 统计发表文章最多的分类 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagUsedQuarterlyStatsjob")
Result tagUsedQuarterlyStatsjob();
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagViewedDailyStatsjob")
Result tagViewedDailyStatsjob();
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagViewedMonthlyStatsjob")
Result tagViewedMonthlyStatsjob();
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@PostMapping(value = "data/stats/statspublicity/tagViewedQuarterlyStatsjob")
Result tagViewedQuarterlyStatsjob();
/**
* @Description 统计 网格小组 dim网格-
* @param
* @author zxc
*/
@PostMapping("/data/stats/statsgroup/groupgriddaily")
Result groupGridDaily();
/**
* @Description 统计 网格小组 dim机关-
* @param
* @author zxc
*/
@PostMapping("/data/stats/statsgroup/groupagencydaily")
Result groupAgencyDaily();
/**
* @Description 统计 网格小组 dim机关-
* @param
* @author zxc
*/
@PostMapping("/data/stats/statsgroup/groupagencymonthly")
Result groupAgencyMonthly();
/**
* 议题统计
* @author zhaoqifeng
* @date 2020/6/23 14:34
* @param
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("/data/stats/statsissue/issuestats")
Result agencyGridIssueStats();
/**
* @Description 数据统计-项目-机关日月统计
* @Author sun
*/
@PostMapping("/data/stats/statsproject/agencyprojectstats")
Result agencyProjectStats();
/**
* @Description 数据统计-项目-网格日月统计
* @Author sun
*/
@PostMapping("/data/stats/statsproject/gridprojectstats")
Result gridProjectStats();
}

135
epmet-module/data-statistical/data-statistical-client/src/main/java/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -1,135 +0,0 @@
package feign.impl;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import feign.DataStatisticalOpenFeignClient;
import org.springframework.stereotype.Component;
/**
* desc:
*
* @return:
* @date: 2020/6/22 9:38
* @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn
*/
@Component
public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOpenFeignClient {
/**
* desc: 统计文章总数及在线文章总数 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result articleSummaryDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "articleSummaryDailyStatsjob");
}
/**
* desc: 定时任务 统计文章总数及在线文章总数 包含 机关 部门 网格
*
* @return:
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagUsedDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedDailyStatsjob");
}
/**
* desc: 统计发表文章最多的分类 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagUsedMonthlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedMonthlyStatsjob");
}
/**
* desc: 统计发表文章最多的分类 包含 机关 部门 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagUsedQuarterlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagUsedQuarterlyStatsjob");
}
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagViewedDailyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedDailyStatsjob");
}
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagViewedMonthlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedMonthlyStatsjob");
}
/**
* desc: 统计阅读最多的标签 包含 机关 网格
*
* @date: 2020/6/22 9:09
* @author: jianjun liu
*/
@Override
public Result tagViewedQuarterlyStatsjob() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "tagViewedQuarterlyStatsjob");
}
@Override
public Result groupGridDaily() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupGridDaily");
}
@Override
public Result groupAgencyDaily() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupAgencyDaily");
}
@Override
public Result groupAgencyMonthly() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "groupAgencyMonthly");
}
@Override
public Result agencyGridIssueStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "agencyGridIssueStats");
}
/**
* @Description 数据统计-项目-机关日月统计
* @Author sun
*/
@Override
public Result agencyProjectStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "agencyProjectStats");
}
/**
* @Description 数据统计-项目-网格日月统计
* @Author sun
*/
@Override
public Result gridProjectStats() {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL, "gridProjectStats");
}
}

2
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.2
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.18
ports:
- "8108:8108"
network_mode: host # 使用现有网络

2
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-statistical-server:0.3.2
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-statistical-server:0.3.18
ports:
- "8108:8108"
network_mode: host # 使用现有网络

24
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.2</version>
<version>0.3.18</version>
<parent>
<artifactId>data-statistical</artifactId>
<groupId>com.epmet</groupId>
@ -206,35 +206,23 @@
<datasource.druid.issue.password>elink@833066</datasource.druid.issue.password>
<datasource.druid.project.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_gov_project?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_gov_project?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.project.url>
<datasource.druid.project.username>epmet</datasource.druid.project.username>
<datasource.druid.project.password>elink@833066</datasource.druid.project.password>
<datasource.druid.project.username>epmet_gov_project_user</datasource.druid.project.username>
<datasource.druid.project.password>EpmEt-db-UsEr</datasource.druid.project.password>
<datasource.druid.voice.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_gov_voice?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_gov_voice?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.voice.url>
<datasource.druid.voice.username>epmet</datasource.druid.voice.username>
<datasource.druid.voice.password>elink@8473066</datasource.druid.voice.password>
<datasource.druid.crm.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.crm.url>
<datasource.druid.crm.username>epmet</datasource.druid.crm.username>
<datasource.druid.crm.password>elink@8473066</datasource.druid.crm.password>
<datasource.druid.group.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_resi_group?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.group.url>
<datasource.druid.group.username>epmet</datasource.druid.group.username>
<datasource.druid.group.password>elink@8473066</datasource.druid.group.password>
<datasource.druid.user.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_user?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.user.url>
<datasource.druid.user.username>epmet</datasource.druid.user.username>
<datasource.druid.user.password>elink@8473066</datasource.druid.user.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com</spring.redis.host>

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java

@ -3,8 +3,10 @@ package com.epmet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
@EnableAsync
public class DataStatsApplication {
public static void main(String[] args) {

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -43,4 +43,14 @@ public interface ProjectConstant {
*/
String PUBLISHER_TYPE_GRID = "grid";
/**
* 执行失败钉钉消息模版
*/
String EXE_FAILED_MSG = "统计数据方法【%s】执行失败,客户ID:%s,统计日期:%s,异常信息:%s";
/**
* 统计数据执行失败日志前缀
*/
String STATS_FAILED_PREFIX = "统计数据执行失败:%s 客户ID:%s,统计日期:%s,异常信息:%s";
}

12
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -2,20 +2,21 @@ package com.epmet.controller;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.service.StatsDemoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.List;
@RequestMapping("demo")
@RestController
@Slf4j
public class DemoController {
@Autowired
@ -24,6 +25,13 @@ public class DemoController {
@Autowired
private ExecutorService executorService;
@GetMapping("testAlarm")
public void testAlarm() {
for (int i = 0; i < 20; i++) {
log.error("测试消息"+i);
}
}
@GetMapping("testtx")
public void testTx() {
demoService.testTx();

43
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java

@ -1,6 +1,5 @@
package com.epmet.controller;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.AgencySubDeptTreeDto;
import com.epmet.dto.AgencySubTreeDto;
@ -9,10 +8,7 @@ import com.epmet.service.stats.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -49,69 +45,60 @@ public class DimController {
* @return
*/
@PostMapping("/all/init")
public Result initAll() {
public Result initAllDims() {
try {
dimDateService.initDimDate();
logger.info("初始化按日维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化按日维度失败:%s", errorStackTrace));
logger.error("初始化按日维度失败:", e);
}
try {
statsDimService.initGridDim();
logger.info("初始化网格维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化网格维度失败:%s", errorStackTrace));
logger.error("初始化网格维度失败:", e);
}
try {
statsDimService.initAgencyDim();
logger.info("初始化机关维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化机关维度失败:%s", errorStackTrace));
logger.error("初始化机关维度失败:", e);
}
try {
statsDimService.initCustomerDim();
logger.info("初始化客户维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化客户维度失败:%s", errorStackTrace));
logger.error("初始化客户维度失败:", e);
}
try {
statsDimService.initDepartmentDim();
logger.info("初始化部门维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化部门维度失败:%s", errorStackTrace));
logger.error("初始化部门维度失败:", e);
}
try {
dimMonthService.initMonthDim();
logger.info("初始化按月维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化按月维度失败:%s", errorStackTrace));
logger.error("初始化按月维度失败:", e);
}
try {
quarterService.initQuarterDim();
logger.info("初始化季度维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化季度维度失败:%s", errorStackTrace));
logger.error("初始化季度维度失败:", e);
}
try {
dimYearService.initYearDim();
logger.info("初始化年度维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化年度维度失败:%s", errorStackTrace));
logger.error("初始化年度维度失败:", e);
}
try {
dimWeekService.initWeekDim();
logger.info("初始化按周维度成功");
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error(String.format("初始化按周维度失败:%s", errorStackTrace));
logger.error("初始化按周维度失败:", e);
}
return new Result();
}
@ -223,8 +210,8 @@ public class DimController {
* @date 2020.06.18 10:34
**/
@GetMapping("allagency")
public List<AgencySubTreeDto> allAgency() {
return dimAgencyService.getAllAgency();
public List<AgencySubTreeDto> allAgency(@PathVariable String customerId) {
return dimAgencyService.getAllAgency(customerId);
}
/**
@ -235,8 +222,8 @@ public class DimController {
* @date 2020.06.18 10:34
**/
@GetMapping("topagency")
public List<AgencySubTreeDto> topAgency() {
return dimAgencyService.getTopAgency();
public List<AgencySubTreeDto> topAgency(@PathVariable String customerId) {
return dimAgencyService.getTopAgency(customerId);
}
/**

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

@ -1,12 +1,17 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.StatsIssueService;
import lombok.Data;
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;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
@ -30,4 +35,14 @@ public class StatsIssueController {
statsIssueService.agencyGridIssueStats();
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();
}
}

31
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsTopicController.java

@ -0,0 +1,31 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.StatsTopicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* @Description
* @ClassName StatsTopicController
* @Auth wangc
* @Date 2020-06-23 15:19
*/
@RestController
@RequestMapping("statstopic")
public class StatsTopicController {
@Autowired
private StatsTopicService statsTopicService;
@PostMapping("execute")
public Result execute(@RequestParam(value = "date",required = false) Date date){
statsTopicService.partition(date);
return new Result();
}
}

31
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java

@ -0,0 +1,31 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.StatsUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* @Description 用户统计
* @ClassName StatsUserController
* @Auth wangc
* @Date 2020-06-23 15:18
*/
@RestController
@RequestMapping("statsuser")
public class StatsUserController {
@Autowired
private StatsUserService statsUserService;
@RequestMapping("execute")
public Result execute(@RequestParam(value = "date",required = false) Date date){
statsUserService.partition(date);
return new Result();
}
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java

@ -50,21 +50,21 @@ public interface GroupDataDao {
* @param
* @author zxc
*/
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(@Param("customerId") String customerId,@Param("dateId")String dateId);
/**
* @Description 查询机关下网格内的小组人数 待优化
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(@Param("customerId") String customerId,@Param("dateId")String dateId);
/**
* @Description 查询机关下每个小组的人数 待优化
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(@Param("customerId") String customerId,@Param("dateId")String dateId);
/**
* @Description 查询机关下的小组日增数 待优化
@ -72,7 +72,7 @@ public interface GroupDataDao {
* @param dateId
* @author zxc
*/
List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(@Param("customerId") String customerId,@Param("dateId")String dateId);
/**
* @Description 查询机关下所有网格小组人数

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 date
* @return java.util.List<com.epmet.dto.issue.IssueAgencyDTO>
* @author zhaoqifeng
* @date 2020/6/17 14:13
*/
List<IssueAgencyDTO> selectAgencyIssueTotal(@Param("customerId") String customerId);
List<IssueAgencyDTO> selectAgencyIssueTotal(@Param("customerId") String customerId, @Param("date") String date);
/**
* 获取当前日期组织下议题增量

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java

@ -55,7 +55,7 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
* @author wangc
* @date 2020.06.18 09:26
**/
List<AgencySubTreeDto> selectAllAgency();
List<AgencySubTreeDto> selectAllAgency(@Param("customerId") String customerId);
/**
* @param pid
@ -73,7 +73,7 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
* @author wangc
* @date 2020.06.18 09:26
**/
List<AgencySubTreeDto> selectTopAgency();
List<AgencySubTreeDto> selectTopAgency(@Param("customerId")String customerId);
/**
* desc:根据客户id 获取机关列表

40
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueAgencyDailyDao.java

@ -0,0 +1,40 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicIssueAgencyDailyDTO;
import com.epmet.entity.stats.topic.FactTopicIssueAgencyDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 转议题话题-机关日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicIssueAgencyDailyDao extends BaseDao<FactTopicIssueAgencyDailyEntity> {
void insertBatch(@Param("list") List<FactTopicIssueAgencyDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
}

40
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueAgencyMonthlyDao.java

@ -0,0 +1,40 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicIssueAgencyMonthlyDTO;
import com.epmet.entity.stats.topic.FactTopicIssueAgencyMonthlyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 转议题话题-机关月统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicIssueAgencyMonthlyDao extends BaseDao<FactTopicIssueAgencyMonthlyEntity> {
void insertBatch(@Param("list") List<FactTopicIssueAgencyMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
}

39
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueGridDailyDao.java

@ -0,0 +1,39 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicIssueGridDailyDTO;
import com.epmet.entity.stats.topic.FactTopicIssueGridDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 转议题话题-网格日统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicIssueGridDailyDao extends BaseDao<FactTopicIssueGridDailyEntity> {
void insertBatch(@Param("list") List<FactTopicIssueGridDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
}

39
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicIssueGridMonthlyDao.java

@ -0,0 +1,39 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicIssueGridMonthlyDTO;
import com.epmet.entity.stats.topic.FactTopicIssueGridMonthlyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 转议题话题-网格月统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicIssueGridMonthlyDao extends BaseDao<FactTopicIssueGridMonthlyEntity> {
void insertBatch(@Param("list") List<FactTopicIssueGridMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
}

39
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusAgencyDailyDao.java

@ -0,0 +1,39 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicStatusAgencyDailyDTO;
import com.epmet.entity.stats.topic.FactTopicStatusAgencyDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 状态话题-机关日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicStatusAgencyDailyDao extends BaseDao<FactTopicStatusAgencyDailyEntity> {
void insertBatch(@Param("list") List<FactTopicStatusAgencyDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
}

39
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusAgencyMonthlyDao.java

@ -0,0 +1,39 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicStatusAgencyMonthlyDTO;
import com.epmet.entity.stats.topic.FactTopicStatusAgencyMonthlyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 状态话题-机关月统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicStatusAgencyMonthlyDao extends BaseDao<FactTopicStatusAgencyMonthlyEntity> {
void insertBatch(@Param("list") List<FactTopicStatusAgencyMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
}

39
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/topic/FactTopicStatusGridDailyDao.java

@ -0,0 +1,39 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats.topic;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.stats.topic.FactTopicStatusGridDailyDTO;
import com.epmet.entity.stats.topic.FactTopicStatusGridDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 状态话题-网格日统计数据表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-20
*/
@Mapper
public interface FactTopicStatusGridDailyDao extends BaseDao<FactTopicStatusGridDailyEntity> {
void insertBatch(@Param("list") List<FactTopicStatusGridDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save