Browse Source

Merge remote-tracking branch 'origin/dev_screen_data' into dev_screen_data

# Conflicts:
#	epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml
dev_shibei_match
wangchao 5 years ago
parent
commit
b330c92211
  1. 13
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java
  2. 2
      epmet-gateway/src/main/resources/bootstrap.yml
  3. 12
      epmet-module/data-report/data-report-server/pom.xml
  4. 3
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java
  5. 11
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java
  6. 13
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/DistributionController.java
  7. 11
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java
  8. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassrootsPartyDevController.java
  9. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java
  10. 11
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PartyMemberLeadController.java
  11. 3
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
  12. 43
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPublicPartiTotalDataDao.java
  13. 9
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java
  14. 6
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
  15. 17
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java
  16. 3
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java
  17. 5
      epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml
  18. 9
      epmet-module/data-report/data-report-server/src/main/resources/logback-spring.xml
  19. 29
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
  20. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java
  21. 23
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java
  22. 67
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PublicPartiTotalDataFormDTO.java
  23. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java
  24. 6
      epmet-module/data-statistical/data-statistical-server/pom.xml
  25. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
  26. 154
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java
  27. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java
  28. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java
  29. 60
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/screen/ScreenPublicPartiTotalDataDao.java
  30. 108
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java
  31. 96
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPublicPartiTotalDataEntity.java
  32. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenUserTotalDataEntity.java
  33. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/IndexCalculateService.java
  34. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/ScreenCollService.java
  35. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
  36. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java
  37. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/Correlation.java
  38. 52
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/DoubleScoreCalculator.java
  39. 55
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/IntegerScoreCalculator.java
  40. 178
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
  41. 16
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml
  42. 84
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml
  43. 4
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml

13
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java

@ -1,5 +1,8 @@
package com.epmet.commons.tools.enums; package com.epmet.commons.tools.enums;
import com.epmet.commons.tools.utils.SpringContextUtils;
import org.springframework.core.env.Environment;
/** /**
* 系统环境变量枚举类 * 系统环境变量枚举类
* dev|test|prod * dev|test|prod
@ -34,6 +37,16 @@ public enum EnvEnum {
return EnvEnum.UN_KNOWN; return EnvEnum.UN_KNOWN;
} }
public static EnvEnum getCurrentEnv(){
Environment environment = SpringContextUtils.getBean(Environment.class);
String[] activeProfiles = environment.getActiveProfiles();
if (activeProfiles != null && activeProfiles.length > 0) {
return getEnum(activeProfiles[0]);
}
return EnvEnum.UN_KNOWN;
}
public String getCode() { public String getCode() {
return code; return code;
} }

2
epmet-gateway/src/main/resources/bootstrap.yml

@ -432,7 +432,7 @@ epmet:
# url认证白名单,先判断白名单,在白名单中的url直接放行,不再判断上述需要认证的名单 # url认证白名单,先判断白名单,在白名单中的url直接放行,不再判断上述需要认证的名单
urlWhiteList: urlWhiteList:
- /data/report/test/test - /data/report/test/test
- /data/report/screen/**
swaggerUrls: swaggerUrls:
jwt: jwt:

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

@ -140,6 +140,10 @@
<!--flyway migration 数据库迁移工具--> <!--flyway migration 数据库迁移工具-->
<spring.flyway.enabled>false</spring.flyway.enabled> <spring.flyway.enabled>false</spring.flyway.enabled>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -175,6 +179,10 @@
<!--flyway migration 数据库迁移工具--> <!--flyway migration 数据库迁移工具-->
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--测试钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -210,6 +218,10 @@
<!--flyway migration 数据库迁移工具--> <!--flyway migration 数据库迁移工具-->
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--生产钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>

3
epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java

@ -1,5 +1,7 @@
package com.epmet; package com.epmet;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.HttpClientManager;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@ -13,5 +15,6 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class DataReportApplication { public class DataReportApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(DataReportApplication.class, args); SpringApplication.run(DataReportApplication.class, args);
HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() +" DataStatsApplication started!");
} }
} }

11
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java

@ -1,23 +1,18 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
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.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.AgencyService;
import com.epmet.screen.dto.form.CompartmentFormDTO; import com.epmet.screen.dto.form.CompartmentFormDTO;
import com.epmet.screen.dto.result.CompartmentResultDTO; import com.epmet.screen.dto.result.CompartmentResultDTO;
import com.epmet.screen.dto.result.TreeResultDTO; import com.epmet.screen.dto.result.TreeResultDTO;
import com.epmet.datareport.service.screen.AgencyService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 组织相关api * 组织相关api
* *
@ -37,7 +32,7 @@ public class AgencyController {
* @author zxc * @author zxc
* @date 2020/8/18 2:04 下午 * @date 2020/8/18 2:04 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("tree") @PostMapping("tree")
public Result<TreeResultDTO> tree(ExternalAppRequestParam externalAppRequestParam){ public Result<TreeResultDTO> tree(ExternalAppRequestParam externalAppRequestParam){
return new Result<TreeResultDTO>().ok(agencyService.tree(externalAppRequestParam)); return new Result<TreeResultDTO>().ok(agencyService.tree(externalAppRequestParam));
@ -49,7 +44,7 @@ public class AgencyController {
* @author zxc * @author zxc
* @date 2020/8/18 2:33 下午 * @date 2020/8/18 2:33 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("compartment") @PostMapping("compartment")
public Result<CompartmentResultDTO> compartment(@RequestBody CompartmentFormDTO compartmentFormDTO){ public Result<CompartmentResultDTO> compartment(@RequestBody CompartmentFormDTO compartmentFormDTO){
ValidatorUtils.validateEntity(compartmentFormDTO, CompartmentFormDTO.Compartment.class); ValidatorUtils.validateEntity(compartmentFormDTO, CompartmentFormDTO.Compartment.class);

13
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/DistributionController.java

@ -1,11 +1,10 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.DistributionService;
import com.epmet.screen.dto.form.*; import com.epmet.screen.dto.form.*;
import com.epmet.screen.dto.result.*; import com.epmet.screen.dto.result.*;
import com.epmet.datareport.service.screen.DistributionService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -33,7 +32,7 @@ public class DistributionController {
* @author zxc * @author zxc
* @date 2020/8/18 10:59 上午 * @date 2020/8/18 10:59 上午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("branch") @PostMapping("branch")
public Result<List<BranchResultDTO>> branch(@RequestBody BranchFormDTO formDTO){ public Result<List<BranchResultDTO>> branch(@RequestBody BranchFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, BranchFormDTO.Branch.class); ValidatorUtils.validateEntity(formDTO, BranchFormDTO.Branch.class);
@ -46,7 +45,7 @@ public class DistributionController {
* @author zxc * @author zxc
* @date 2020/8/18 11:10 上午 * @date 2020/8/18 11:10 上午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("user") @PostMapping("user")
public Result<UserResultDTO> user(@RequestBody UserFormDTO userFormDTO){ public Result<UserResultDTO> user(@RequestBody UserFormDTO userFormDTO){
ValidatorUtils.validateEntity(userFormDTO, UserFormDTO.User.class); ValidatorUtils.validateEntity(userFormDTO, UserFormDTO.User.class);
@ -59,7 +58,7 @@ public class DistributionController {
* @author zxc * @author zxc
* @date 2020/8/18 11:20 上午 * @date 2020/8/18 11:20 上午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("parymember") @PostMapping("parymember")
public Result<ParymemberResultDTO> parymember(@RequestBody ParymemberFormDTO parymemberFormDTO){ public Result<ParymemberResultDTO> parymember(@RequestBody ParymemberFormDTO parymemberFormDTO){
ValidatorUtils.validateEntity(parymemberFormDTO, ParymemberFormDTO.Parymember.class); ValidatorUtils.validateEntity(parymemberFormDTO, ParymemberFormDTO.Parymember.class);
@ -72,7 +71,7 @@ public class DistributionController {
* @author zxc * @author zxc
* @date 2020/8/19 1:29 下午 * @date 2020/8/19 1:29 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("project") @PostMapping("project")
public Result<List<ProjectResultDTO>> project(@RequestBody ProjectFormDTO projectFormDTO){ public Result<List<ProjectResultDTO>> project(@RequestBody ProjectFormDTO projectFormDTO){
ValidatorUtils.validateEntity(projectFormDTO, ProjectFormDTO.Project.class); ValidatorUtils.validateEntity(projectFormDTO, ProjectFormDTO.Project.class);
@ -85,7 +84,7 @@ public class DistributionController {
* @author zxc * @author zxc
* @date 2020/8/19 1:52 下午 * @date 2020/8/19 1:52 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("topprofile") @PostMapping("topprofile")
public Result<TopProfileResultDTO> topProfile(@RequestBody TopProfileFormDTO topProfileFormDTO){ public Result<TopProfileResultDTO> topProfile(@RequestBody TopProfileFormDTO topProfileFormDTO){
ValidatorUtils.validateEntity(topProfileFormDTO, TopProfileFormDTO.TopProfile.class); ValidatorUtils.validateEntity(topProfileFormDTO, TopProfileFormDTO.TopProfile.class);

11
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassRootsGovernController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.GrassRootsGovernService; import com.epmet.datareport.service.screen.GrassRootsGovernService;
@ -39,7 +38,7 @@ public class GrassRootsGovernController {
* @author wangc * @author wangc
* @date 2020.08.20 11:16 * @date 2020.08.20 11:16
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("userpointrank") @PostMapping("userpointrank")
public Result<UserPointRankResultDTO> userPointRank(@RequestBody AgencyAndNumFormDTO param){ public Result<UserPointRankResultDTO> userPointRank(@RequestBody AgencyAndNumFormDTO param){
ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);
@ -54,7 +53,7 @@ public class GrassRootsGovernController {
* @author wangc * @author wangc
* @date 2020.08.20 13:55 * @date 2020.08.20 13:55
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("difficultprojects") @PostMapping("difficultprojects")
public Result<List<DifficultProjectResultDTO>> difficultProject(@RequestBody AgencyNumTypeParamFormDTO param){ public Result<List<DifficultProjectResultDTO>> difficultProject(@RequestBody AgencyNumTypeParamFormDTO param){
ValidatorUtils.validateEntity(param, AgencyNumTypeParamFormDTO.AgencyNumTypeParamGroup.class); ValidatorUtils.validateEntity(param, AgencyNumTypeParamFormDTO.AgencyNumTypeParamGroup.class);
@ -69,7 +68,7 @@ public class GrassRootsGovernController {
* @author wangc * @author wangc
* @date 2020.08.20 14:37 * @date 2020.08.20 14:37
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("publicpartiprofile") @PostMapping("publicpartiprofile")
public Result<PublicPartiProfileResultDTO> publicPartiProfile(@RequestBody AgencyFormDTO param){ public Result<PublicPartiProfileResultDTO> publicPartiProfile(@RequestBody AgencyFormDTO param){
ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);
@ -84,7 +83,7 @@ public class GrassRootsGovernController {
* @author wangc * @author wangc
* @date 2020.08.20 15:32 * @date 2020.08.20 15:32
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("publicpartirank") @PostMapping("publicpartirank")
public Result<List<PublicPartiRankResultDTO>> publicPartiRank(@RequestBody AgencyAndNumFormDTO param){ public Result<List<PublicPartiRankResultDTO>> publicPartiRank(@RequestBody AgencyAndNumFormDTO param){
ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);
@ -99,7 +98,7 @@ public class GrassRootsGovernController {
* @author wangc * @author wangc
* @date 2020.08.20 17:46 * @date 2020.08.20 17:46
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("governcapacityrank") @PostMapping("governcapacityrank")
public Result<List<GovernCapacityRankResultDTO>> governCapacityRank(@RequestBody AgencyAndNumFormDTO param){ public Result<List<GovernCapacityRankResultDTO>> governCapacityRank(@RequestBody AgencyAndNumFormDTO param){
ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param,AgencyFormDTO.CommonAgencyIdGroup.class);

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/GrassrootsPartyDevController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.GrassrootsPartyDevService; import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
@ -38,7 +37,7 @@ public class GrassrootsPartyDevController {
* @author wangc * @author wangc
* @date 2020.08.18 16:59 * @date 2020.08.18 16:59
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("basicinfo") @PostMapping("basicinfo")
public Result<PartymemberPercentResultDTO> baseInfo(@RequestBody ParymemberFormDTO param){ public Result<PartymemberPercentResultDTO> baseInfo(@RequestBody ParymemberFormDTO param){
ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class); ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class);
@ -53,7 +52,7 @@ public class GrassrootsPartyDevController {
* @author wangc * @author wangc
* @date 2020.08.18 17:54 * @date 2020.08.18 17:54
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("ageinfo") @PostMapping("ageinfo")
public Result<PartymemberAgeDistributionResultDTO> ageInfo(@RequestBody ParymemberFormDTO param){ public Result<PartymemberAgeDistributionResultDTO> ageInfo(@RequestBody ParymemberFormDTO param){
ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class); ValidatorUtils.validateEntity(param, ParymemberFormDTO.Parymember.class);
@ -68,7 +67,7 @@ public class GrassrootsPartyDevController {
* @author wangc * @author wangc
* @date 2020.08.19 11:02 * @date 2020.08.19 11:02
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("branchbuildtrend") @PostMapping("branchbuildtrend")
public Result<BranchBuildTrendResultDTO> branchBuildTrend(@RequestBody BranchBuildTrendFormDTO param){ public Result<BranchBuildTrendResultDTO> branchBuildTrend(@RequestBody BranchBuildTrendFormDTO param){
ValidatorUtils.validateEntity(param, BranchBuildTrendFormDTO.branchBuildTrendGroup.class); ValidatorUtils.validateEntity(param, BranchBuildTrendFormDTO.branchBuildTrendGroup.class);
@ -83,7 +82,7 @@ public class GrassrootsPartyDevController {
* @author wangc * @author wangc
* @date 2020.08.19 15:25 * @date 2020.08.19 15:25
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("branchbuildrank") @PostMapping("branchbuildrank")
public Result<BranchBuildRankResultDTO> branchBuildRank(@RequestBody BranchBuildRankFormDTO param){ public Result<BranchBuildRankResultDTO> branchBuildRank(@RequestBody BranchBuildRankFormDTO param){
ValidatorUtils.validateEntity(param, BranchBuildRankFormDTO.BranchBuildRankGroup.class); ValidatorUtils.validateEntity(param, BranchBuildRankFormDTO.BranchBuildRankGroup.class);

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -40,7 +39,7 @@ public class IndexController {
* @author zxc * @author zxc
* @date 2020/8/19 2:53 下午 * @date 2020/8/19 2:53 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("yearaverageindex") @PostMapping("yearaverageindex")
public Result<YearAverageIndexResultDTO> yearAverageIndex(@RequestBody YearAverageIndexFormDTO yearAverageIndexFormDTO){ public Result<YearAverageIndexResultDTO> yearAverageIndex(@RequestBody YearAverageIndexFormDTO yearAverageIndexFormDTO){
ValidatorUtils.validateEntity(yearAverageIndexFormDTO, YearAverageIndexFormDTO.YearAverageIndex.class); ValidatorUtils.validateEntity(yearAverageIndexFormDTO, YearAverageIndexFormDTO.YearAverageIndex.class);
@ -53,7 +52,7 @@ public class IndexController {
* @author zxc * @author zxc
* @date 2020/8/19 3:17 下午 * @date 2020/8/19 3:17 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("monthindexanalysis/piechart") @PostMapping("monthindexanalysis/piechart")
public Result<MonthPieChartResultDTO> monthPieChart(@RequestBody MonthPieChartFormDTO monthPieChartFormDTO){ public Result<MonthPieChartResultDTO> monthPieChart(@RequestBody MonthPieChartFormDTO monthPieChartFormDTO){
ValidatorUtils.validateEntity(monthPieChartFormDTO, MonthPieChartFormDTO.MonthPieChart.class); ValidatorUtils.validateEntity(monthPieChartFormDTO, MonthPieChartFormDTO.MonthPieChart.class);
@ -66,7 +65,7 @@ public class IndexController {
* @author zxc * @author zxc
* @date 2020/8/19 5:27 下午 * @date 2020/8/19 5:27 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("monthindexanalysis/barchart") @PostMapping("monthindexanalysis/barchart")
public Result<MonthBarchartResultDTO> monthBarchart(@RequestBody MonthBarchartFormDTO monthBarchartFormDTO, ExternalAppRequestParam externalAppRequestParam){ public Result<MonthBarchartResultDTO> monthBarchart(@RequestBody MonthBarchartFormDTO monthBarchartFormDTO, ExternalAppRequestParam externalAppRequestParam){
ValidatorUtils.validateEntity(monthBarchartFormDTO, MonthBarchartFormDTO.MonthBarchart.class); ValidatorUtils.validateEntity(monthBarchartFormDTO, MonthBarchartFormDTO.MonthBarchart.class);
@ -79,7 +78,7 @@ public class IndexController {
* @author zxc * @author zxc
* @date 2020/8/20 10:02 上午 * @date 2020/8/20 10:02 上午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("subagencyindexrank") @PostMapping("subagencyindexrank")
public Result<List<SubAgencyIndexRankResultDTO>> subAgencyIndexRank(@RequestBody SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO){ public Result<List<SubAgencyIndexRankResultDTO>> subAgencyIndexRank(@RequestBody SubAgencyIndexRankFormDTO subAgencyIndexRankFormDTO){
ValidatorUtils.validateEntity(subAgencyIndexRankFormDTO, SubAgencyIndexRankFormDTO.SubAgencyIndexRank.class); ValidatorUtils.validateEntity(subAgencyIndexRankFormDTO, SubAgencyIndexRankFormDTO.SubAgencyIndexRank.class);

11
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/PartyMemberLeadController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.PartyMemberLeadService; import com.epmet.datareport.service.screen.PartyMemberLeadService;
@ -33,7 +32,7 @@ public class PartyMemberLeadController {
* @author zxc * @author zxc
* @date 2020/8/20 1:56 下午 * @date 2020/8/20 1:56 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("fineexample") @PostMapping("fineexample")
public Result<FineExampleResultDTO> fineExample(@RequestBody FineExampleFormDTO fineExampleFormDTO){ public Result<FineExampleResultDTO> fineExample(@RequestBody FineExampleFormDTO fineExampleFormDTO){
ValidatorUtils.validateEntity(fineExampleFormDTO, FineExampleFormDTO.FineExample.class); ValidatorUtils.validateEntity(fineExampleFormDTO, FineExampleFormDTO.FineExample.class);
@ -46,7 +45,7 @@ public class PartyMemberLeadController {
* @author zxc * @author zxc
* @date 2020/8/20 2:35 下午 * @date 2020/8/20 2:35 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("contactmasslinechart") @PostMapping("contactmasslinechart")
public Result<ContactMassLineChartResultDTO> contactMassLineChart(@RequestBody ContactMassLineChartFormDTO contactMassLineChartFormDTO){ public Result<ContactMassLineChartResultDTO> contactMassLineChart(@RequestBody ContactMassLineChartFormDTO contactMassLineChartFormDTO){
ValidatorUtils.validateEntity(contactMassLineChartFormDTO, ContactMassLineChartFormDTO.ContactMassLineChart.class); ValidatorUtils.validateEntity(contactMassLineChartFormDTO, ContactMassLineChartFormDTO.ContactMassLineChart.class);
@ -59,7 +58,7 @@ public class PartyMemberLeadController {
* @author zxc * @author zxc
* @date 2020/8/20 3:19 下午 * @date 2020/8/20 3:19 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("volunteerservice") @PostMapping("volunteerservice")
public Result<VolunteerServiceResultDTO> volunteerService(@RequestBody VolunteerServiceFormDTO volunteerServiceFormDTO){ public Result<VolunteerServiceResultDTO> volunteerService(@RequestBody VolunteerServiceFormDTO volunteerServiceFormDTO){
ValidatorUtils.validateEntity(volunteerServiceFormDTO, VolunteerServiceFormDTO.VolunteerService.class); ValidatorUtils.validateEntity(volunteerServiceFormDTO, VolunteerServiceFormDTO.VolunteerService.class);
@ -74,7 +73,7 @@ public class PartyMemberLeadController {
* @author wangc * @author wangc
* @date 2020.08.21 11:05 * @date 2020.08.21 11:05
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("advancedbranchrank") @PostMapping("advancedbranchrank")
Result<List<AdvanceBranchRankResultDTO>> advancedBranchRank(@RequestBody AgencyAndNumFormDTO param){ Result<List<AdvanceBranchRankResultDTO>> advancedBranchRank(@RequestBody AgencyAndNumFormDTO param){
ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);
@ -89,7 +88,7 @@ public class PartyMemberLeadController {
* @author wangc * @author wangc
* @date 2020.08.21 14:22 * @date 2020.08.21 14:22
**/ **/
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("advancedpartymemberrank") @PostMapping("advancedpartymemberrank")
Result<List<PartyUserPointResultDTO>> advancedPartymemberRank(@RequestBody AgencyAndNumFormDTO param){ Result<List<PartyUserPointResultDTO>> advancedPartymemberRank(@RequestBody AgencyAndNumFormDTO param){
ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class); ValidatorUtils.validateEntity(param, AgencyFormDTO.CommonAgencyIdGroup.class);

3
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.screen; package com.epmet.datareport.controller.screen;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.datareport.service.screen.ScreenProjectService; import com.epmet.datareport.service.screen.ScreenProjectService;
@ -31,7 +30,7 @@ public class ScreenProjectController {
* @author zxc * @author zxc
* @date 2020/8/19 4:36 下午 * @date 2020/8/19 4:36 下午
*/ */
@ExternalAppRequestAuth //@ExternalAppRequestAuth
@PostMapping("detail") @PostMapping("detail")
public Result<ProjectDetailResultDTO> projectDetail(@RequestBody ProjectDetailFormDTO projectDetailFormDTO){ public Result<ProjectDetailResultDTO> projectDetail(@RequestBody ProjectDetailFormDTO projectDetailFormDTO){
ValidatorUtils.validateEntity(projectDetailFormDTO, ProjectDetailFormDTO.ProjectDetail.class); ValidatorUtils.validateEntity(projectDetailFormDTO, ProjectDetailFormDTO.ProjectDetail.class);

43
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenPublicPartiTotalDataDao.java

@ -0,0 +1,43 @@
/**
* 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.datareport.dao.screen;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
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-08-24
*/
@Mapper
public interface ScreenPublicPartiTotalDataDao{
/**
* @Description 查询公众参与各类总数
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 16:00
**/
List<PublicPartiRankResultDTO> selectPublicPartiTotal(@Param("agencyId") String agencyId);
}

9
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/screen/ScreenUserTotalDataDao.java

@ -18,7 +18,6 @@
package com.epmet.datareport.dao.screen; package com.epmet.datareport.dao.screen;
import com.epmet.screen.dto.result.PartymemberPercentResultDTO; import com.epmet.screen.dto.result.PartymemberPercentResultDTO;
import com.epmet.screen.dto.result.PublicPartiRankResultDTO;
import com.epmet.screen.dto.result.TopProfileResultDTO; import com.epmet.screen.dto.result.TopProfileResultDTO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -60,12 +59,4 @@ public interface ScreenUserTotalDataDao {
**/ **/
int selectAvgIssue(@Param("agencyId")String agencyId); int selectAvgIssue(@Param("agencyId")String agencyId);
/**
* @Description 查询用户数据
* @param agencyId
* @return
* @author wangc
* @date 2020.08.20 16:00
**/
List<PublicPartiRankResultDTO> selectUserTotalData(@Param("agencyId") String agencyId);
} }

6
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java

@ -46,7 +46,11 @@ public class AgencyServiceImpl implements AgencyService {
if (null == rootAgency){ if (null == rootAgency){
return new TreeResultDTO(); return new TreeResultDTO();
} }
List<TreeResultDTO> departmentList = this.getDepartmentList(("".equals(rootAgency.getPids()) ? "" : rootAgency.getPids() + ",") + rootAgency.getValue()); String sub = null;
if ("".equals(rootAgency.getPids()) || rootAgency.getPids().equals("0")){
sub = rootAgency.getValue();
}
List<TreeResultDTO> departmentList = this.getDepartmentList(sub);
rootAgency.setChildren(departmentList); rootAgency.setChildren(departmentList);
return rootAgency; return rootAgency;
} }

17
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassRootsGovernServiceImpl.java

@ -44,6 +44,9 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
private ScreenUserTotalDataDao screenUserTotalDataDao; private ScreenUserTotalDataDao screenUserTotalDataDao;
@Autowired @Autowired
private ScreenGovernRankDataDao screenGovernRankDataDao; private ScreenGovernRankDataDao screenGovernRankDataDao;
@Autowired
private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
/** /**
* @Description 1热心市民积分排行 * @Description 1热心市民积分排行
* @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544 * @NEI https://nei.netease.com/interface/detail/req/?pid=57068&id=321544
@ -122,11 +125,17 @@ public class GrassRootsGovernServiceImpl implements GrassRootsGovernService {
@DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true) @DataSource(value = DataSourceConstant.STATS,datasourceNameFromArg = true)
@Override @Override
public List<PublicPartiRankResultDTO> publicPartiRank(AgencyAndNumFormDTO param) { public List<PublicPartiRankResultDTO> publicPartiRank(AgencyAndNumFormDTO param) {
if(null == param.getTopNum()) param.setTopNum(NumConstant.TWO); if(null == param.getTopNum()){
if(NumConstant.ZERO == param.getTopNum()) param.setTopNum(NumConstant.MAX); param.setTopNum(NumConstant.TWO);
}
if(NumConstant.ZERO == param.getTopNum()){
param.setTopNum(NumConstant.MAX);
}
PageHelper.startPage(NumConstant.ONE,param.getTopNum()); PageHelper.startPage(NumConstant.ONE,param.getTopNum());
List<PublicPartiRankResultDTO> result = screenUserTotalDataDao.selectUserTotalData(param.getAgencyId()); List<PublicPartiRankResultDTO> result = screenPublicPartiTotalDataDao.selectPublicPartiTotal(param.getAgencyId());
if(null == result) return new ArrayList<>(); if(null == result) {
return new ArrayList<>();
}
return result; return result;
} }

3
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/GrassrootsPartyDevServiceImpl.java

@ -6,12 +6,12 @@ import com.epmet.constant.DataSourceConstant;
import com.epmet.datareport.dao.screen.ScreenCpcBaseDataDao; import com.epmet.datareport.dao.screen.ScreenCpcBaseDataDao;
import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao; import com.epmet.datareport.dao.screen.ScreenPartyBranchDataDao;
import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao; import com.epmet.datareport.dao.screen.ScreenUserTotalDataDao;
import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
import com.epmet.datareport.utils.ModuleConstant; import com.epmet.datareport.utils.ModuleConstant;
import com.epmet.screen.dto.form.BranchBuildRankFormDTO; import com.epmet.screen.dto.form.BranchBuildRankFormDTO;
import com.epmet.screen.dto.form.BranchBuildTrendFormDTO; import com.epmet.screen.dto.form.BranchBuildTrendFormDTO;
import com.epmet.screen.dto.form.ParymemberFormDTO; import com.epmet.screen.dto.form.ParymemberFormDTO;
import com.epmet.screen.dto.result.*; import com.epmet.screen.dto.result.*;
import com.epmet.datareport.service.screen.GrassrootsPartyDevService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -57,6 +57,7 @@ public class GrassrootsPartyDevServiceImpl implements GrassrootsPartyDevService
PartymemberPercentResultDTO result = screenUserTotalDataDao.selectAgencyPartymemberPercent(param.getAgencyId()); PartymemberPercentResultDTO result = screenUserTotalDataDao.selectAgencyPartymemberPercent(param.getAgencyId());
if(null == result){ if(null == result){
result = new PartymemberPercentResultDTO();
logger.warn("com.epmet.datareport.service.screen.impl.GrassrootsPartyDevServiceImpl.partymemberBaseInfo:未查询出指定agencyId下的党员基础信息数据,agencyId :: {}",param.getAgencyId()); logger.warn("com.epmet.datareport.service.screen.impl.GrassrootsPartyDevServiceImpl.partymemberBaseInfo:未查询出指定agencyId下的党员基础信息数据,agencyId :: {}",param.getAgencyId());
result = new PartymemberPercentResultDTO(); result = new PartymemberPercentResultDTO();
result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO)); result.setPercentInPlatForm(convertPercentStr(BigDecimal.ZERO));

5
epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml

@ -131,3 +131,8 @@ ribbon:
pagehelper: pagehelper:
helper-dialect: mysql helper-dialect: mysql
reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1 reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
dingTalk:
robot:
webHook: @dingTalk.robot.webHook@
secret: @dingTalk.robot.secret@

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

@ -5,6 +5,8 @@
<property name="log.path" value="logs/data-report"/> <property name="log.path" value="logs/data-report"/>
<springProperty scope="context" name="appname" source="spring.application.name"/> <springProperty scope="context" name="appname" source="spring.application.name"/>
<springProperty scope="context" name="webHook" source="dingTalk.robot.webHook"/>
<springProperty scope="context" name="secret" source="dingTalk.robot.secret"/>
<!-- 日志上下文名称 --> <!-- 日志上下文名称 -->
<contextName>${appname}</contextName> <contextName>${appname}</contextName>
@ -125,11 +127,14 @@
<!--日志文档保留天数--> <!--日志文档保留天数-->
<maxHistory>15</maxHistory> <maxHistory>15</maxHistory>
</rollingPolicy> </rollingPolicy>
<!-- 此日志文档只记录ERROR级别的 --> <!-- 此日志文档只记录ERROR级别的 发送钉钉短信 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="com.epmet.commons.tools.filter.LogMsgSendFilter">
<level>ERROR</level> <level>ERROR</level>
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
<webHook>${webHook}</webHook>
<secret>${secret}</secret>
<appName>${appname}</appName>
</filter> </filter>
</appender> </appender>

29
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.datareport.dao.screen.ScreenPublicPartiTotalDataDao">
<!-- 查询公众参与各类总数 -->
<select id="selectPublicPartiTotal" resultType="com.epmet.screen.dto.result.PublicPartiRankResultDTO">
SELECT
ORG_NAME AS NAME,
REG_USER_TOTAL AS regNum,
JOIN_USER_TOTAL AS joinNum,
TOPIC_TOTAL AS topicNum,
ISSUE_TOTAL AS issueNum,
PROJECT_TOTAL AS projectNum
FROM
screen_public_parti_total_data
WHERE
DEL_FLAG = '0'
AND PARENT_ID = #{agencyId}
ORDER BY
(REG_USER_TOTAL + JOIN_USER_TOTAL + TOPIC_TOTAL + ISSUE_TOTAL + PROJECT_TOTAL) DESC,
REG_USER_TOTAL desc,
JOIN_USER_TOTAL desc,
TOPIC_TOTAL desc,
ISSUE_TOTAL desc,
PROJECT_TOTAL desc
</select>
</mapper>

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/GridPartyMemberDataFormDTO.java

@ -82,17 +82,17 @@ public class GridPartyMemberDataFormDTO implements Serializable {
private BigDecimal topicToIssueRatio; private BigDecimal topicToIssueRatio;
/** /**
* 提出的议题转项目数 * 上级组织Id
*/ */
private Integer issueToProjectCount; private String parentId;
/** /**
* 用户id * 党员自建群活跃群众人数(08-24)
*/ */
private String userId; private Integer groupActiveUserCount;
/** /**
* 上级组织Id * 用户id
*/ */
private String parentId; private String userId;
} }

23
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/IndexCalculateForm.java

@ -0,0 +1,23 @@
package com.epmet.dto.screen.form;
import lombok.Data;
import java.io.Serializable;
/**
* desc:初始化客户指标权重参数实体类
* @author liujianjun
*/
@Data
public class IndexCalculateForm implements Serializable {
private static final long serialVersionUID = 3280392511156378209L;
/**
* desc:客户id
*/
private String customerId;
/**
* desc:月份id
*/
private String monthId;
}

67
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PublicPartiTotalDataFormDTO.java

@ -0,0 +1,67 @@
package com.epmet.dto.screencoll.form;
import lombok.Data;
import java.io.Serializable;
/**
* 18公众参与各类总数 入参
* 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
* @Auther: zhangyong
* @Date: 2020-08-18 09:59
*/
@Data
public class PublicPartiTotalDataFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 组织类别 agency组织网格grid
*/
private String orgType;
/**
* 组织Id 可以为网格机关id
*/
private String orgId;
/**
* 上级组织Id如果是网格传入网格所属的组织id
*/
private String parentId;
/**
* 组织名称(可以是网格名称也可以是组织名称)
*/
private String orgName;
/**
* 话题总数
*/
private Integer topicTotal;
/**
* 议题总数
*/
private Integer issueTotal;
/**
* 注册人数
*/
private Integer regUserTotal;
/**
* 项目总数
*/
private Integer projectTotal;
/**
* 参与人数
*/
private Integer joinUserTotal;
/**
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/
private String dataEndTime;
}

10
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/UserTotalDataFormDTO.java

@ -68,14 +68,4 @@ public class UserTotalDataFormDTO implements Serializable {
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增) * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/ */
private String dataEndTime; private String dataEndTime;
/**
* 注册人数08-21新增
*/
private Integer regUserTotal;
/**
* 参与人数08-21新增
*/
private Integer joinUserTotal;
} }

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

@ -178,6 +178,12 @@
<datasource.druid.user.username>epmet_user_user</datasource.druid.user.username> <datasource.druid.user.username>epmet_user_user</datasource.druid.user.username>
<datasource.druid.user.password>EpmEt-db-UsEr</datasource.druid.user.password> <datasource.druid.user.password>EpmEt-db-UsEr</datasource.druid.user.password>
<datasource.druid.statsdisplay.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_data_statistical_display?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.statsdisplay.url>
<datasource.druid.statsdisplay.username>epmet_data_stats_display_user</datasource.druid.statsdisplay.username>
<datasource.druid.statsdisplay.password>EpmEt-db-UsEr</datasource.druid.statsdisplay.password>
<!-- redis配置 --> <!-- redis配置 -->
<spring.redis.index>0</spring.redis.index> <spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.130</spring.redis.host> <spring.redis.host>192.168.1.130</spring.redis.host>

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

@ -1,5 +1,7 @@
package com.epmet; package com.epmet;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.HttpClientManager;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@ -15,6 +17,6 @@ public class DataStatsApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(DataStatsApplication.class ,args); SpringApplication.run(DataStatsApplication.class ,args);
//HttpClientManager.getInstance().sendAlarmMsg("DataStatsApplication started!"); HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() +" DataStatsApplication started!");
} }
} }

154
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java

@ -0,0 +1,154 @@
package com.epmet.controller;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.extappauth.bean.ExternalAppRequestParam;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.screen.form.IndexCalculateForm;
import com.epmet.service.screen.IndexCalculateService;
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;
/**
* 指标计算controller
*
* @author liujianjun@elink-cn.com
* @date 2020/8/24 14:38
*/
@RestController
@RequestMapping("indexcalculate")
public class IndexCalculateController {
@Autowired
private IndexCalculateService indexCalculateService;
/**
* 1党建能力-党员相关指标计算(按照月份)
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**/
@ExternalAppRequestAuth
@PostMapping("cpc")
public Result cpcIndexCalculate(ExternalAppRequestParam externalAppRequestParam, @RequestBody IndexCalculateForm formDTO) {
indexCalculateService.cpcIndexCalculate(formDTO);
return new Result();
}
/* *//**
* 2党建能力-网格相关指标上报(按照月份)
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("gridpartyability")
public Result gridPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<GridPartyAbilityFormDTO> formDTO) {
factIndexCollectService.insertGridPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 3党建能力-街道及社区相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("orgpartyability")
public Result orgPartyAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<OrgPartyAbilityFormDTO> formDTO) {
factIndexCollectService.insertOrgPartyAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 4服务能力-网格相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("gridserviceability")
public Result gridServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<GridServiceAbilityFormDTO> formDTO) {
factIndexCollectService.insertGridServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 5服务能力-组织街道|社区|全区相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("orgserviceability")
public Result orgServiceAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<OrgServiceAbilityFormDTO> formDTO) {
factIndexCollectService.insertOrgServiceAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 6治理能力-网格相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("gridgovrnability")
public Result gridGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<GridGovrnAbilityFormDTO> formDTO) {
factIndexCollectService.insertGridGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 7治理能力-街道及社区相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("orggovrnability")
public Result orgGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<OrgGovrnAbilityFormDTO> formDTO) {
factIndexCollectService.insertOrgGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
*//**
* 8治理能力-部门相关指标
*
* @param externalAppRequestParam
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 10:52 2020-08-20
**//*
@ExternalAppRequestAuth
@PostMapping("deptgovrnability")
public Result deptGovrnAbility(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<DeptGovrnAbilityFormDTO> formDTO) {
factIndexCollectService.insertDeptGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}*/
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexDictController.java

@ -70,6 +70,7 @@ public class IndexDictController {
} }
/** /**
* urlhttp://localhost:8108/data/stats/indexdict/initCustomerIndex
* desc 初始化客户的评价指标数据 * desc 初始化客户的评价指标数据
* @param formDTO customerId * @param formDTO customerId
* @return * @return

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenCollController.java

@ -283,4 +283,21 @@ public class ScreenCollController {
screenCollService.insertPioneerData(formDTO, externalAppRequestParam.getCustomerId()); screenCollService.insertPioneerData(formDTO, externalAppRequestParam.getCustomerId());
return new Result(); return new Result();
} }
/**
* 18公众参与各类总数
* 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
*
* @param formDTO
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 09:44 2020-08-25
**/
@ExternalAppRequestAuth
@PostMapping("publicpartitotaldata")
public Result publicPartiTotalData(ExternalAppRequestParam externalAppRequestParam, @RequestBody List<PublicPartiTotalDataFormDTO> formDTO) {
screenCollService.insertPublicPartiTotalData(formDTO, externalAppRequestParam.getCustomerId());
return new Result();
}
} }

60
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/screen/ScreenPublicPartiTotalDataDao.java

@ -0,0 +1,60 @@
/**
* 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.screen;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.screencoll.form.PublicPartiTotalDataFormDTO;
import com.epmet.entity.screen.ScreenPublicPartiTotalDataEntity;
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-08-24
*/
@Mapper
public interface ScreenPublicPartiTotalDataDao extends BaseDao<ScreenPublicPartiTotalDataEntity> {
/**
* 18公众参与各类总数
* 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
* 1) 根据CUSTOMER_IDORG_ID进行查询如果有数据则先进行物理删除
*
* @param customerId
* @param orgIds 组织Id集合
* @Author zhangyong
* @Date 10:52 2020-08-25
**/
void deletePublicPartiTotalData(@Param("customerId") String customerId,
@Param("orgIds") String[] orgIds);
/**
* 18公众参与各类总数
* 2) 在批量新增
*
* @param list
* @param customerId
* @Author zhangyong
* @Date 10:52 2020-08-25
**/
void batchInsertPublicPartiTotalData(@Param("list") List<PublicPartiTotalDataFormDTO> list, @Param("customerId")String customerId);
}

108
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/indexcoll/FactIndexPartyAblityCpcMonthlyEntity.java

@ -30,7 +30,7 @@ import java.util.Date;
* 党建能力-党员相关的事实表 * 党建能力-党员相关的事实表
* *
* @author generator generator@elink-cn.com * @author generator generator@elink-cn.com
* @since v1.0.0 2020-08-20 * @since v1.0.0 2020-08-24
*/ */
@Data @Data
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper=false)
@ -39,89 +39,89 @@ public class FactIndexPartyAblityCpcMonthlyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 客户Id * 客户Id
*/ */
private String customerId; private String customerId;
/** /**
* 机关Id * 机关Id
*/ */
private String agencyId; private String agencyId;
/** /**
* 上级组织Id * 上级组织Id
*/ */
private String parentId; private String parentId;
/** /**
* 网格Id * 网格Id
*/ */
private String gridId; private String gridId;
/** /**
* 用户Id: * 用户Id:
*/ */
private String userId; private String userId;
/** /**
* 月维度Id: yyyMM * 月维度Id: yyyMM
*/ */
private String monthId; private String monthId;
/** /**
* 季度Id: yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4 * 季度Id: yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4
*/ */
private String quarterId; private String quarterId;
/** /**
* 年Id : yyyy * 年Id : yyyy
*/ */
private String yearId; private String yearId;
/** /**
* 党员提出的话题数 * 党员提出的话题数
*/ */
private Integer createTopicCount; private Integer createTopicCount;
/** /**
* 党员参与话题数支持反对评论浏览 * 党员参与话题数支持反对评论浏览
*/ */
private Integer joinTopicCount; private Integer joinTopicCount;
/** /**
* 话题转议题数 * 党员提出的话题转议题数
*/ */
private Integer shiftIssueCount; private Integer shiftIssueCount;
/** /**
* 议题转项目数 * 党员提出的议题转项目数
*/ */
private Integer shiftProjectCount; private Integer shiftProjectCount;
/** /**
* 参加三会一课次数 * 参加三会一课次数
*/ */
private Integer joinThreeMeetsCount; private Integer joinThreeMeetsCount;
/** /**
* 自建群群众人数 * 党员自建群群众人数
*/ */
private Integer groupUserCount; private Integer groupUserCount;
/** /**
* 自建群活跃度-话题数 * 党员自建群活跃群众人数(08-24)
*/ */
private Integer groupActiveUserCount;
/**
* 党员自建群活跃度话题数
*/
private Integer groupTopicCount; private Integer groupTopicCount;
/** /**
* 议题转项目率 * 自建群活跃度议题转项目率
*/ */
private BigDecimal topicToIssueRatio; private BigDecimal topicToIssueRatio;
/**
* 提出的议题转项目数
*/
private Integer issueToProjectCount;
} }

96
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPublicPartiTotalDataEntity.java

@ -0,0 +1,96 @@
/**
* 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.entity.screen;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 公众参与-各类(话题|议题|项目|注册人数|参与人数)总数
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-08-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("screen_public_parti_total_data")
public class ScreenPublicPartiTotalDataEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 组织类别 agency组织网格grid部门department
*/
private String orgType;
/**
* 组织Id 可以为网格机关id
*/
private String orgId;
/**
* 上级组织Id如果是网格传入网格所属组织id
*/
private String parentId;
/**
* 组织名称也可能是网格名称
*/
private String orgName;
/**
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/
private String dataEndTime;
/**
* 话题总数
*/
private Integer topicTotal;
/**
* 议题总数
*/
private Integer issueTotal;
/**
* 项目总数
*/
private Integer projectTotal;
/**
* 注册人数
*/
private Integer regUserTotal;
/**
* 参与人数
*/
private Integer joinUserTotal;
}

12
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenUserTotalDataEntity.java

@ -26,7 +26,7 @@ import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
/** /**
* 中央区-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数 * 中央区-各类(用户|党员|党群|话题|议题|项目)总数
* *
* @author generator generator@elink-cn.com * @author generator generator@elink-cn.com
* @since v1.0.0 2020-08-21 * @since v1.0.0 2020-08-21
@ -98,14 +98,4 @@ public class ScreenUserTotalDataEntity extends BaseEpmetEntity {
*/ */
private Integer projectTotal; private Integer projectTotal;
/**
* 注册人数08-21新增
*/
private Integer regUserTotal;
/**
* 参与人数08-21新增
*/
private Integer joinUserTotal;
} }

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/IndexCalculateService.java

@ -0,0 +1,17 @@
package com.epmet.service.screen;
import com.epmet.dto.screen.form.IndexCalculateForm;
/**
* 指标计算service
*
* @author liujianjun@elink-cn.com
* @date 2020/8/18 10:25
*/
public interface IndexCalculateService {
/**
* desc计算党员相关指标
* @param formDTO
*/
void cpcIndexCalculate(IndexCalculateForm formDTO);
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/ScreenCollService.java

@ -1,6 +1,5 @@
package com.epmet.service.screen; package com.epmet.service.screen;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.screencoll.form.*; import com.epmet.dto.screencoll.form.*;
import java.util.List; import java.util.List;
@ -219,4 +218,17 @@ public interface ScreenCollService {
* @Date 10:52 2020-08-18 * @Date 10:52 2020-08-18
**/ **/
void insertPioneerData(List<PioneerDataFormDTO> formDTO, String customerId); void insertPioneerData(List<PioneerDataFormDTO> formDTO, String customerId);
/**
* 18公众参与各类总数
* 公众参与-各类(用户|党员|党群|话题|议题|项目|注册人数|参与人数)总数
* 1) 根据CUSTOMER_IDORG_ID进行查询如果有数据则先进行物理删除
* 2) 在新增
* @param formDTO
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 09:44 2020-08-25
**/
void insertPublicPartiTotalData(List<PublicPartiTotalDataFormDTO> formDTO, String customerId);
} }

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java

@ -0,0 +1,16 @@
package com.epmet.service.screen.impl;
import com.epmet.dto.screen.form.IndexCalculateForm;
import com.epmet.service.screen.IndexCalculateService;
import org.springframework.stereotype.Service;
/**
* @author liujianjun
*/
@Service
public class IndexCalculateServiceImpl implements IndexCalculateService {
@Override
public void cpcIndexCalculate(IndexCalculateForm formDTO) {
}
}

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/ScreenCollServiceImpl.java

@ -80,6 +80,8 @@ public class ScreenCollServiceImpl implements ScreenCollService {
private ScreenPioneerDataDao screenPioneerDataDao; private ScreenPioneerDataDao screenPioneerDataDao;
@Autowired @Autowired
private ScreenIndexDataYearlyDao screenIndexDataYearlyDao; private ScreenIndexDataYearlyDao screenIndexDataYearlyDao;
@Autowired
private ScreenPublicPartiTotalDataDao screenPublicPartiTotalDataDao;
@DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true) @DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true)
@Override @Override
@ -445,4 +447,19 @@ public class ScreenCollServiceImpl implements ScreenCollService {
screenPioneerDataDao.batchInsertPioneerData(formDTO, customerId); screenPioneerDataDao.batchInsertPioneerData(formDTO, customerId);
} }
} }
@DataSource(value = DataSourceConstant.STATS, datasourceNameFromArg = true)
@Override
@Transactional(rollbackFor = Exception.class)
public void insertPublicPartiTotalData(List<PublicPartiTotalDataFormDTO> formDTO, String customerId) {
if (null != formDTO && formDTO.size() > NumConstant.ZERO){
String[] orgIds = new String[formDTO.size()];
for (int i = NumConstant.ZERO; i < formDTO.size(); i++){
orgIds[i] = formDTO.get(i).getOrgId();
}
screenPublicPartiTotalDataDao.deletePublicPartiTotalData(customerId, orgIds);
screenPublicPartiTotalDataDao.batchInsertPublicPartiTotalData(formDTO, customerId);
}
}
} }

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/Correlation.java

@ -0,0 +1,17 @@
package com.epmet.support.normalizing;
/**
* 指标正负相关枚举
*/
public enum Correlation {
POSITIVE("positive","正相关"),
NEGATIVE("negative","负相关"),
;
private String code;
private String desc;
Correlation(String code,String desc){
this.code = code;
this.desc = desc;
}
}

52
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/DoubleScoreCalculator.java

@ -0,0 +1,52 @@
package com.epmet.support.normalizing;
import java.math.BigDecimal;
import java.util.List;
/**
* Double的分值计算
* 每一种数据类型的计算都要继承ScoreCalculator并且实现其抽象方法实现数据类型的转换
*/
public class DoubleScoreCalculator extends ScoreCalculator {
/**
* 初始化double类型分值计算
* 务必在该构造方法最后调用父类的prepare()方法
* @param sourceArray 数据所在的数组
* @param minScore 分值区间的左边界
* @param maxScore 分值区间的右边界
* @param correlation 相关性
*/
public DoubleScoreCalculator(Double[] sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
this.sourceArrary = sourceArray.clone();
this.minScore = minScore;
this.maxScore = maxScore;
this.correlation = correlation;
this.prepare();
}
public DoubleScoreCalculator(List<Double> sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
this.sourceArrary = sourceArray.toArray();
this.minScore = minScore;
this.maxScore = maxScore;
this.correlation = correlation;
this.prepare();
}
@Override
public BigDecimal getMaxFromSourceArray() {
Double[] doubleSourceArrary = (Double[]) this.sourceArrary;
return new BigDecimal(doubleSourceArrary[doubleSourceArrary.length - 1]);
}
@Override
public BigDecimal getMinFromSourceArray() {
Double[] intSourceArrary = (Double[]) this.sourceArrary;
return new BigDecimal(intSourceArrary[0]);
}
@Override
public BigDecimal convertValue2BigDecimal(Object sourceValue) {
return new BigDecimal((Double) sourceValue);
}
}

55
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/IntegerScoreCalculator.java

@ -0,0 +1,55 @@
package com.epmet.support.normalizing;
import java.math.BigDecimal;
import java.util.List;
/**
* Integer的分值计算
* 每一种数据类型的计算都要继承ScoreCalculator并且实现其抽象方法实现数据类型的转换
*/
public class IntegerScoreCalculator extends ScoreCalculator {
/**
* 初始化整数分值计算
* 务必在该构造方法最后调用父类的prepare()方法
* @param sourceArray 数据所在的数组
* @param minScore 分值区间的左边界
* @param maxScore 分值区间的右边界
* @param correlation 相关性
*/
public IntegerScoreCalculator(Integer[] sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
this.sourceArrary = sourceArray.clone();
this.minScore = minScore;
this.maxScore = maxScore;
this.correlation = correlation;
this.prepare();
System.out.println("最小值:"+minScore+";最大值:"+maxScore);
}
public IntegerScoreCalculator(List<Integer> sourceList, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) {
this.sourceArrary = sourceList.toArray();
this.minScore = minScore;
this.maxScore = maxScore;
this.correlation = correlation;
this.prepare();
System.out.println("最小值:"+minScore+";最大值:"+maxScore);
}
@Override
public BigDecimal getMaxFromSourceArray() {
Integer[] intSourceArrary = (Integer[]) this.sourceArrary;
return new BigDecimal(intSourceArrary[intSourceArrary.length - 1]);
}
@Override
public BigDecimal getMinFromSourceArray() {
Integer[] intSourceArrary = (Integer[]) this.sourceArrary;
return new BigDecimal(intSourceArrary[0]);
}
@Override
public BigDecimal convertValue2BigDecimal(Object sourceValue) {
return new BigDecimal((Integer) sourceValue);
}
}

178
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java

@ -0,0 +1,178 @@
package com.epmet.support.normalizing;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 所有数据类型计算器的父类实现算法骨架数据类型转换方法则由子类实现
* 如果需要保持传入的数组元素顺序不变请在实现类的构造方法中将传入数组进行克隆
* @param <T> 数据类型泛型
*/
public abstract class ScoreCalculator<T> {
protected T[] sourceArrary;
protected BigDecimal minScore;
protected BigDecimal maxScore;
protected Correlation correlation;
private BigDecimal maxValue;
private BigDecimal minValue;
private BigDecimal coefficient;
/**
* 计算准备
*/
protected void prepare() {
// 校验数组
if (!validSourceArray(sourceArrary)) {
throw new RuntimeException("入参数组错误:请设置非空数组");
}
Arrays.sort(sourceArrary);
maxValue = getMaxFromSourceArray();
minValue = getMinFromSourceArray();
//计算系数
System.out.println("最小值:"+minScore+";最大值:"+maxScore);
coefficient = getCoefficient(minValue, maxValue);
}
/**
* 单值归一算法
* @return
*/
public BigDecimal normalize(T sourceValue) {
if (sourceValue == null) {
throw new RuntimeException("入参数组错误:请设置sourceValue");
}
if (!Arrays.asList(sourceArrary).contains(sourceValue)) {
throw new RuntimeException("请确认要计算的数组在数组中存在");
}
if (correlation == Correlation.POSITIVE) {
// 正相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
BigDecimal score = minScore.add(x, MathContext.DECIMAL32);
return score;
} else if (correlation == Correlation.NEGATIVE) {
// 负相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
BigDecimal score = minScore.add(x);
return maxScore.subtract(score, MathContext.DECIMAL32);
} else {
throw new RuntimeException("错误的相关性");
}
}
/**
* 单值归一算法带权重
* @param sourceValue
* @param weight
* @return
*/
public BigDecimal normalize(T sourceValue, BigDecimal weight) {
return normalize(sourceValue).multiply(weight);
}
/**
* 批量归一算法
* @param sourceValues
* @return
*/
public BigDecimal[] normalize(T[] sourceValues) {
BigDecimal[] scores = new BigDecimal[sourceValues.length];
for (int i=0;i<sourceValues.length;i++) {
BigDecimal score = normalize(sourceValues[i]);
scores[i] = score;
}
return scores;
}
/**
* 批量归一算法返回List
* @param sourceValues
* @return
*/
public List<BigDecimal> normalize(List<T> sourceValues) {
return sourceValues.stream().map(s -> normalize(s)).collect(Collectors.toList());
}
/**
* 批量归一算法带权重
* @param sourceValues
* @param weight
* @return
*/
public BigDecimal[] normalize(T[] sourceValues, BigDecimal weight) {
BigDecimal[] scores = new BigDecimal[sourceValues.length];
for (int i=0;i<sourceValues.length;i++) {
BigDecimal score = normalize(sourceValues[i]);
scores[i] = score.multiply(weight);
}
return scores;
}
/**
* 批量归一算法返回List
* @param sourceValues
* @return
*/
public List<BigDecimal> normalize(List<T> sourceValues, BigDecimal weight) {
return sourceValues.stream().map(s -> normalize(s).multiply(weight)).collect(Collectors.toList());
}
/**
* 校验数组
* @param sourceArray
* @param <T>
* @return
*/
protected <T> boolean validSourceArray(T[] sourceArray) {
if (sourceArray == null || sourceArray.length == 0) {
return false;
}
return true;
}
/**
* 计算系数
* @return
*/
protected BigDecimal getCoefficient(BigDecimal min, BigDecimal max) {
BigDecimal fenmu = max.subtract(min);
if (fenmu.toString().equals("0"))return new BigDecimal(0);
BigDecimal fenzi = maxScore.subtract(minScore);
BigDecimal divide = fenzi.divide(fenmu, MathContext.DECIMAL32);
System.out.println("分子:"+fenzi+"分母:"+fenmu+"系数:"+divide.toString());
return divide;
}
/**
* 从源数组中获取最大值
* @return
*/
protected abstract BigDecimal getMaxFromSourceArray();
/**
* 从源数组中获取最小值
* @return
*/
protected abstract BigDecimal getMinFromSourceArray();
/**
* 将值转化为BigDecimal
* @param sourceValue
* @return
*/
protected abstract BigDecimal convertValue2BigDecimal(T sourceValue);
}

16
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/indexcoll/FactIndexPartyAblityCpcMonthlyDao.xml

@ -9,7 +9,6 @@
<result property="agencyId" column="AGENCY_ID"/> <result property="agencyId" column="AGENCY_ID"/>
<result property="parentId" column="PARENT_ID"/> <result property="parentId" column="PARENT_ID"/>
<result property="gridId" column="GRID_ID"/> <result property="gridId" column="GRID_ID"/>
<result property="userId" column="USER_ID"/>
<result property="monthId" column="MONTH_ID"/> <result property="monthId" column="MONTH_ID"/>
<result property="quarterId" column="QUARTER_ID"/> <result property="quarterId" column="QUARTER_ID"/>
<result property="yearId" column="YEAR_ID"/> <result property="yearId" column="YEAR_ID"/>
@ -21,13 +20,14 @@
<result property="groupUserCount" column="GROUP_USER_COUNT"/> <result property="groupUserCount" column="GROUP_USER_COUNT"/>
<result property="groupTopicCount" column="GROUP_TOPIC_COUNT"/> <result property="groupTopicCount" column="GROUP_TOPIC_COUNT"/>
<result property="topicToIssueRatio" column="TOPIC_TO_ISSUE_RATIO"/> <result property="topicToIssueRatio" column="TOPIC_TO_ISSUE_RATIO"/>
<result property="issueToProjectCount" column="ISSUE_TO_PROJECT_COUNT"/> <result property="groupActiveUserCount" column="GROUP_ACTIVE_USER_COUNT"/>
<result property="delFlag" column="DEL_FLAG"/> <result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/> <result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/> <result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/> <result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/> <result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/> <result property="updatedTime" column="UPDATED_TIME"/>
<result property="userId" column="USER_ID"/>
</resultMap> </resultMap>
<delete id="deleteFactIndexPartyAblityCpcMonthly"> <delete id="deleteFactIndexPartyAblityCpcMonthly">
@ -44,7 +44,6 @@
AGENCY_ID, AGENCY_ID,
PARENT_ID, PARENT_ID,
GRID_ID, GRID_ID,
USER_ID,
MONTH_ID, MONTH_ID,
QUARTER_ID, QUARTER_ID,
YEAR_ID, YEAR_ID,
@ -56,13 +55,14 @@
GROUP_USER_COUNT, GROUP_USER_COUNT,
GROUP_TOPIC_COUNT, GROUP_TOPIC_COUNT,
TOPIC_TO_ISSUE_RATIO, TOPIC_TO_ISSUE_RATIO,
ISSUE_TO_PROJECT_COUNT, GROUP_ACTIVE_USER_COUNT,
DEL_FLAG, DEL_FLAG,
REVISION, REVISION,
CREATED_BY, CREATED_BY,
CREATED_TIME, CREATED_TIME,
UPDATED_BY, UPDATED_BY,
UPDATED_TIME UPDATED_TIME,
USER_ID
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -71,7 +71,6 @@
#{item.agencyId}, #{item.agencyId},
#{item.parentId}, #{item.parentId},
#{item.gridId}, #{item.gridId},
#{item.userId},
#{item.monthId}, #{item.monthId},
#{item.quarterId}, #{item.quarterId},
#{item.yearId}, #{item.yearId},
@ -83,13 +82,14 @@
#{item.groupUserCount}, #{item.groupUserCount},
#{item.groupTopicCount}, #{item.groupTopicCount},
#{item.topicToIssueRatio}, #{item.topicToIssueRatio},
#{item.issueToProjectCount}, #{item.groupActiveUserCount},
0, 0,
0, 0,
'APP_USER', 'APP_USER',
now(), now(),
'APP_USER', 'APP_USER',
now() now(),
#{item.userId}
) )
</foreach> </foreach>
</insert> </insert>

84
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPublicPartiTotalDataDao.xml

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.screen.ScreenPublicPartiTotalDataDao">
<resultMap type="com.epmet.entity.screen.ScreenPublicPartiTotalDataEntity" id="screenPublicPartiTotalDataMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="orgType" column="ORG_TYPE"/>
<result property="orgId" column="ORG_ID"/>
<result property="parentId" column="PARENT_ID"/>
<result property="orgName" column="ORG_NAME"/>
<result property="dataEndTime" column="DATA_END_TIME"/>
<result property="topicTotal" column="TOPIC_TOTAL"/>
<result property="issueTotal" column="ISSUE_TOTAL"/>
<result property="projectTotal" column="PROJECT_TOTAL"/>
<result property="regUserTotal" column="REG_USER_TOTAL"/>
<result property="joinUserTotal" column="JOIN_USER_TOTAL"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deletePublicPartiTotalData">
delete from screen_public_parti_total_data
where CUSTOMER_ID = #{customerId}
AND ORG_ID IN
<foreach item="item" collection="orgIds" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<insert id="batchInsertPublicPartiTotalData" parameterType="map">
insert into screen_public_parti_total_data
(
ID,
CUSTOMER_ID,
ORG_TYPE,
ORG_ID,
PARENT_ID,
ORG_NAME,
DATA_END_TIME,
TOPIC_TOTAL,
ISSUE_TOTAL,
PROJECT_TOTAL,
REG_USER_TOTAL,
JOIN_USER_TOTAL,
DEL_FLAG,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME
) values
<foreach collection="list" item="item" index="index" separator=",">
(
(SELECT REPLACE(UUID(), '-', '') AS id),
#{customerId},
#{item.orgType},
#{item.orgId},
#{item.parentId},
#{item.orgName},
#{item.dataEndTime},
#{item.topicTotal},
#{item.issueTotal},
#{item.projectTotal},
#{item.regUserTotal},
#{item.joinUserTotal},
0,
0,
'APP_USER',
now(),
'APP_USER',
now()
)
</foreach>
</insert>
</mapper>

4
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenUserTotalDataDao.xml

@ -28,8 +28,6 @@
TOPIC_TOTAL, TOPIC_TOTAL,
ISSUE_TOTAL, ISSUE_TOTAL,
PROJECT_TOTAL, PROJECT_TOTAL,
REG_USER_TOTAL,
JOIN_USER_TOTAL,
DEL_FLAG, DEL_FLAG,
REVISION, REVISION,
CREATED_BY, CREATED_BY,
@ -52,8 +50,6 @@
#{item.topicTotal}, #{item.topicTotal},
#{item.issueTotal}, #{item.issueTotal},
#{item.projectTotal}, #{item.projectTotal},
#{item.regUserTotal},
#{item.joinUserTotal},
0, 0,
0, 0,
'APP_USER', 'APP_USER',

Loading…
Cancel
Save