Browse Source

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

master
wangchao 5 years ago
parent
commit
1def8bd0d6
  1. 2
      epmet-auth/deploy/docker-compose-dev.yml
  2. 2
      epmet-auth/deploy/docker-compose-test.yml
  3. 2
      epmet-auth/pom.xml
  4. 20
      epmet-auth/src/main/java/com/epmet/controller/GovLoginController.java
  5. 11
      epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpEnteOrgFormDTO.java
  6. 3
      epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpFormDTO.java
  7. 8
      epmet-auth/src/main/java/com/epmet/dto/form/LoginByPassWordFormDTO.java
  8. 2
      epmet-auth/src/main/java/com/epmet/dto/form/LoginByWxCodeFormDTO.java
  9. 8
      epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java
  10. 9
      epmet-auth/src/main/java/com/epmet/dto/form/StaffOrgsFormDTO.java
  11. 10
      epmet-auth/src/main/java/com/epmet/service/GovLoginService.java
  12. 59
      epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java
  13. 1
      epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java
  14. 26
      epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
  15. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  16. 24
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java
  17. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/topic/dto/result/TopicSummaryInfoResultDTO.java
  18. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
  19. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
  20. 2
      epmet-module/data-report/data-report-server/pom.xml
  21. 17
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/topic/impl/TopicServiceImpl.java
  22. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/topic/TopicDao.xml
  23. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
  24. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-test.yml
  25. 24
      epmet-module/data-statistical/data-statistical-server/pom.xml
  26. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/issue/StatsIssueDao.java
  27. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java
  28. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java
  29. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDateDao.java
  30. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDepartmentDao.java
  31. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimMonthDao.java
  32. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimQuarterDao.java
  33. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimWeekDao.java
  34. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimYearDao.java
  35. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
  36. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
  37. 83
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java
  38. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsProjectServiceImpl.java
  39. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java
  40. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java
  41. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java
  42. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimDepartmentService.java
  43. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java
  44. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java
  45. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDateServiceImpl.java
  46. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDepartmentServiceImpl.java
  47. 21
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java
  48. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java
  49. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimWeekServiceImpl.java
  50. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimYearServiceImpl.java
  51. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
  52. 20
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml
  53. 14
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml
  54. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDateDao.xml
  55. 16
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDepartmentDao.xml
  56. 21
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimMonthDao.xml
  57. 19
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimQuarterDao.xml
  58. 21
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimWeekDao.xml
  59. 14
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimYearDao.xml
  60. 2
      epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-test.yml
  61. 4
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java
  62. 2
      epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml
  63. 9
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java
  64. 8
      epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java
  65. 2
      epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml
  66. 2
      epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml
  67. 2
      epmet-module/gov-access/gov-access-server/pom.xml
  68. 2
      epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml
  69. 2
      epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml
  70. 4
      epmet-module/gov-issue/gov-issue-server/pom.xml
  71. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java
  72. 29
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSatisfactionDetailServiceImpl.java
  73. 38
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  74. 8
      epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml
  75. 2
      epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml
  76. 2
      epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml
  77. 2
      epmet-module/gov-mine/gov-mine-server/pom.xml
  78. 28
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/GovAccessFeignClient.java
  79. 22
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallback.java
  80. 2
      epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
  81. 2
      epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
  82. 4
      epmet-module/gov-project/gov-project-server/pom.xml
  83. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
  84. 24
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
  85. 28
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java
  86. 38
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  87. 8
      epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml
  88. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java
  89. 2
      epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml
  90. 2
      epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml
  91. 4
      epmet-module/resi-group/resi-group-server/pom.xml
  92. 29
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  93. 76
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  94. 10
      epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml
  95. 2
      epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml
  96. 2
      epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml
  97. 2
      epmet-module/resi-hall/resi-hall-server/pom.xml
  98. 8
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
  99. 5
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java
  100. 8
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.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.26
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.29
ports:
- "8081:8081"
network_mode: host # 使用现有网络

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

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-auth-server:
container_name: epmet-auth-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-auth:0.3.22
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-auth:0.3.29
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.26</version>
<version>0.3.29</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

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

@ -36,7 +36,7 @@ public class GovLoginController {
**/
@PostMapping(value = "/loginwxmp/loginbywxcode")
public Result<UserTokenResultDTO> loginByWxCode(@RequestBody GovWxmpFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
ValidatorUtils.validateEntity(formDTO,LoginCommonFormDTO.AddUserInternalGroup.class);
UserTokenResultDTO userTokenResultDTO=govLoginService.loginByWxCode(formDTO);
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
@ -64,7 +64,7 @@ public class GovLoginController {
**/
@PostMapping(value = "/loginwxmp/getmyorg")
public Result<List<StaffOrgsResultDTO>> getmyorg(@RequestBody StaffOrgsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO,StaffOrgsFormDTO.AddUserShowGroup.class);
ValidatorUtils.validateEntity(formDTO,StaffOrgsFormDTO.AddUserShowGroup.class, StaffOrgsFormDTO.GetMyOrgByLoginWxmp.class);
List<StaffOrgsResultDTO> staffOrgs=govLoginService.getMyOrg(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
@ -78,7 +78,7 @@ public class GovLoginController {
**/
@PostMapping(value = "/loginwxmp/enterorg")
public Result<UserTokenResultDTO> enterOrg(@RequestBody GovWxmpEnteOrgFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
ValidatorUtils.validateEntity(formDTO,GovWxmpEnteOrgFormDTO.AddUserShowGroup.class,GovWxmpEnteOrgFormDTO.AddUserInternalGroup.class);
UserTokenResultDTO userTokenResultDTO=govLoginService.enterOrg(formDTO);
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
}
@ -107,5 +107,19 @@ public class GovLoginController {
govLoginService.updateCachedRoles(form.getStaffId(), form.getOrgId(), form.getRoleIds());
return new Result();
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.StaffOrgsResultDTO>>
* @author yinzuomei
* @description 6手机号密码获取组织
* @Date 2020/6/30 22:43
**/
@PostMapping(value = "/getmyorgbypassword")
public Result<List<StaffOrgsResultDTO>> getMyOrgByPassword(@RequestBody StaffOrgsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, StaffOrgsFormDTO.AddUserShowGroup.class, StaffOrgsFormDTO.GetMyOrgByPassWordGroup.class);
List<StaffOrgsResultDTO> staffOrgs = govLoginService.getMyOrgByPassword(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
}

11
epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpEnteOrgFormDTO.java

@ -1,5 +1,6 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -12,28 +13,30 @@ import java.io.Serializable;
*/
@Data
public class GovWxmpEnteOrgFormDTO implements Serializable {
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
/**
* wxCode
*/
@NotBlank(message = "wxCode不能为空")
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
@NotBlank(message = "手机号不能为空",groups = {AddUserShowGroup.class})
private String mobile;
/**
* 选择的组织所属的id
*/
@NotBlank(message = "客户id不能为空")
@NotBlank(message = "客户id不能为空",groups = {AddUserInternalGroup.class})
private String customerId;
/**
* 选择的要进入的组织(根组织id)
*/
@NotBlank(message = "组织id不能为空")
@NotBlank(message = "组织id不能为空",groups = {AddUserInternalGroup.class})
private String rootAgencyId;
}

3
epmet-auth/src/main/java/com/epmet/dto/form/GovWxmpFormDTO.java

@ -13,10 +13,11 @@ import java.io.Serializable;
@Data
public class GovWxmpFormDTO extends LoginCommonFormDTO implements Serializable {
private static final long serialVersionUID = -207861963128774742L;
/**
* wxCode
*/
@NotBlank(message = "wxCode不能为空")
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
}

8
epmet-auth/src/main/java/com/epmet/dto/form/LoginByPassWordFormDTO.java

@ -17,24 +17,24 @@ public class LoginByPassWordFormDTO extends LoginCommonFormDTO implements Serial
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
@NotBlank(message = "手机号不能为空",groups = {AddUserShowGroup.class})
private String phone;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
@NotBlank(message = "密码不能为空",groups = {AddUserShowGroup.class})
private String password;
/**
* 验证码
*/
@NotBlank(message="验证码不能为空")
@NotBlank(message="验证码不能为空",groups = {AddUserShowGroup.class})
private String captcha;
/**
* 唯一标识
*/
@NotBlank(message="唯一标识不能为空")
@NotBlank(message="唯一标识不能为空",groups = {AddUserInternalGroup.class})
private String uuid;
}

2
epmet-auth/src/main/java/com/epmet/dto/form/LoginByWxCodeFormDTO.java

@ -17,7 +17,7 @@ public class LoginByWxCodeFormDTO extends LoginCommonFormDTO implements Serializ
/**
* 微信code
*/
@NotBlank(message = "wxCode不能为空")
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
/**

8
epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java

@ -1,5 +1,6 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -13,16 +14,17 @@ import java.io.Serializable;
@Data
public class LoginCommonFormDTO implements Serializable {
private static final long serialVersionUID = -5582224784914714820L;
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
/**
* 政府端:gov居民端:resi运营端:oper
*/
@NotBlank(message = "app不能为空(政府端:gov、居民端:resi、运营端:oper)")
@NotBlank(message = "app不能为空(政府端:gov、居民端:resi、运营端:oper)",groups ={AddUserInternalGroup.class} )
private String app;
/**
* PC端:web微信小程序:wxmp
*/
@NotBlank(message = "client不能为空(PC端:web、微信小程序:wxmp)")
@NotBlank(message = "client不能为空(PC端:web、微信小程序:wxmp)",groups ={AddUserInternalGroup.class})
private String client;
}

9
epmet-auth/src/main/java/com/epmet/dto/form/StaffOrgsFormDTO.java

@ -21,6 +21,10 @@ public class StaffOrgsFormDTO implements Serializable {
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByPassWordGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByLoginWxmp extends CustomerClientShowGroup{}
/**
* 手机号
*/
@ -30,7 +34,10 @@ public class StaffOrgsFormDTO implements Serializable {
/**
* 验证码
*/
@NotBlank(message="验证码不能为空")
@NotBlank(message="验证码不能为空", groups = {GetMyOrgByLoginWxmp.class})
private String smsCode;
@NotBlank(message = "密码不能为空",groups ={GetMyOrgByPassWordGroup.class})
private String password;
}

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

@ -1,7 +1,6 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.GovWxmpEnteOrgFormDTO;
import com.epmet.dto.form.GovWxmpFormDTO;
import com.epmet.dto.form.SendSmsCodeFormDTO;
@ -68,4 +67,13 @@ public interface GovLoginService {
* @param roleIds
*/
void updateCachedRoles(String staffId, String orgId, List<String> roleIds);
/**
* @return java.util.List<com.epmet.dto.result.StaffOrgsResultDTO>
* @param formDTO
* @author yinzuomei
* @description 6手机号密码获取组织
* @Date 2020/6/30 22:43
**/
List<StaffOrgsResultDTO> getMyOrgByPassword(StaffOrgsFormDTO formDTO);
}

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

@ -9,6 +9,7 @@ import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.password.PasswordUtils;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.DateUtils;
@ -29,6 +30,7 @@ import com.epmet.jwt.JwtTokenUtils;
import com.epmet.redis.CaptchaRedis;
import com.epmet.service.GovLoginService;
import com.epmet.service.LoginService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -270,6 +272,9 @@ public class GovLoginServiceImpl implements GovLoginService {
throw new RenException(customerStaffDTOResult.getCode());
}
CustomerStaffDTO customerStaff = customerStaffDTOResult.getData();
/*if(null==customerStaff.getPassword()||"".equals(customerStaff.getPassword().trim())){
throw new RenException(EpmetErrorCode.PLEASE_ACTIVATE_CURRENT_CUSTOMER_ACCOUNT.getCode());
}*/
//2、解析微信用户
WxMaJscode2SessionResult wxMaJscode2SessionResult = loginService.getWxMaUser(LoginConstant.APP_GOV, formDTO.getWxCode());
//3、记录staff_wechat,并记录用户激活状态,激活时间
@ -320,6 +325,60 @@ public class GovLoginServiceImpl implements GovLoginService {
cpUserDetailRedis.set(userDetails, jwtTokenProperties.getExpire());
}
@Override
public List<StaffOrgsResultDTO> getMyOrgByPassword(StaffOrgsFormDTO formDTO) {
//1、根据手机号查询到用户信息
Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserFeignClient.checkCustomerStaff(formDTO.getMobile());
if (!customerStaffResult.success()) {
logger.error(String.format("手机密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode());
}
//2、密码是否正确
List<CustomerStaffDTO> customerStaffList=customerStaffResult.getData();
//3、查询用户所有的组织信息
List<String> customerIdList = new ArrayList<>();
//是否设置过密码
boolean havePasswordFlag=false;
//密码是否正确
boolean passwordRightFlag=false;
for (CustomerStaffDTO customerStaffDTO : customerStaffList) {
if(StringUtils.isNotBlank(customerStaffDTO.getPassword())){
havePasswordFlag=true;
}else{
logger.warn(String.format("当前用户:手机号%s,客户Id%s下未设置密码.",formDTO.getMobile(),customerStaffDTO.getCustomerId()));
}
if (!PasswordUtils.matches(formDTO.getPassword(), customerStaffDTO.getPassword())) {
logger.warn(String.format("当前用户:手机号%s,客户Id%s密码输入错误.",formDTO.getMobile(),customerStaffDTO.getCustomerId()));
}else{
logger.warn(String.format("当前用户:手机号%s,客户Id%s密码匹配正确.",formDTO.getMobile(),customerStaffDTO.getCustomerId()));
passwordRightFlag=true;
}
customerIdList.add(customerStaffDTO.getCustomerId());
}
//根据手机号查出来所有用户,密码都为空,表明用户未激活账户,未设置密码
if(!havePasswordFlag){
throw new RenException(EpmetErrorCode.PLEASE_ACTIVATE_ACCOUNT.getCode());
}
//密码错误
if(!passwordRightFlag){
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
StaffOrgFormDTO staffOrgFormDTO = new StaffOrgFormDTO();
staffOrgFormDTO.setCustomerIdList(customerIdList);
Result<List<StaffOrgsResultDTO>> result = govOrgFeignClient.getStaffOrgList(staffOrgFormDTO);
if(result.success()&&null!=result.getData()){
return result.getData();
}
logger.error(String .format("手机验证码获取组织,调用%s服务失败,入参手机号%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER,
formDTO.getMobile(),
formDTO.getPassword(),
result.getCode(),
result.getMsg()));
return new ArrayList<>();
}
//保存登录日志
private Result saveStaffLoginRecord(GovWxmpEnteOrgFormDTO formDTO, String staffId, String openId) {
StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO();

1
epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java

@ -269,7 +269,6 @@ public class LoginServiceImpl implements LoginService {
//3、密码是否正确
//密码错误
if (!PasswordUtils.matches(formDTO.getPassword(), userInfoResult.getData().getPassWord())) {
logger.error(String.format("手机号密码登陆失败,返回10004密码错误,用户输入密码%s,数据库密码%s",formDTO.getPassword(), userInfoResult.getData().getPassWord()));
throw new RenException(EpmetErrorCode.ERR10004.getCode());
}
//4、生成token返回,且将TokenDto存到redis

26
epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java

@ -49,9 +49,9 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
Date date = new Date();
if (metaObject.getOriginalObject() instanceof BaseEpmetEntity) {
// epmet项目新增的
setFieldValByName(FieldConstant.CREATED_TIME_HUMP, date, metaObject);
setFieldValByName(FieldConstant.CREATED_TIME_HUMP, getCreatedTimeByFieldValue(metaObject), metaObject);
setFieldValByName(FieldConstant.CREATED_BY_HUMP, getCreatedByFieldValue(metaObject), metaObject);
setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, date, metaObject);
setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, getUpdatedTimeByFieldValue(metaObject), metaObject);
setFieldValByName(FieldConstant.UPDATED_BY_HUMP, getUpdatedByFieldValue(metaObject), metaObject);
setFieldValByName(FieldConstant.REVISION_HUMP, NumConstant.ZERO, metaObject);
//删除标识
@ -92,6 +92,28 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
return value;
}
public Object getCreatedTimeByFieldValue(MetaObject metaObject) {
Object createdTime = null;
if (metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) {
createdTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP);
}
if (createdTime == null) {
createdTime = new Date();
}
return createdTime;
}
public Object getUpdatedTimeByFieldValue(MetaObject metaObject) {
Object createdTime = null;
if (metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) {
createdTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP);
}
if (createdTime == null) {
createdTime = new Date();
}
return createdTime;
}
public Object getUpdatedByFieldValue(MetaObject metaObject) {
Object value = loginUserUtil.getLoginUserId();
if (value == null) {

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

@ -31,6 +31,9 @@ public enum EpmetErrorCode {
LOSE_EFFICACY(8006,"此邀请链接已过期"),
ERROR_PHONE(8007,"请输入正确的手机号"),
PLEASE_LOGIN(8008,"请重新登录"),
PASSWORD_ERROR(8009,"密码错误,请重新输入"),
PLEASE_ACTIVATE_ACCOUNT(8010,"请先使用验证码登录激活账户"),
PLEASE_ACTIVATE_CURRENT_CUSTOMER_ACCOUNT(8011,"当前组织下,账号未激活,请先使用验证码登录"),
MOBILE_HAS_BEEN_USED(8101, "该手机号已注册,请更换手机号或使用原绑定的微信账号登录"),
MOBILE_CODE_ERROR(8102, "验证码错误"),
AUTO_CONFIRM_FAILED(8103, "党员注册失败"),
@ -60,7 +63,8 @@ public enum EpmetErrorCode {
ALREADY_EVALUATE(8501,"您已评价"),
ALREADY_VOTE(8502,"您已表态"),
TEXT_SCAN_FAILED(8503,"内容审核失败,请重新编辑"),
IMG_SCAN_FAILED(8504,"图片审核失败,请重新上传"),
PROJECT_IS_CLOSED(8601,"项目已结案"),
// 该错误不会提示给前端,只是后端传输错误信息用。

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

@ -2,8 +2,6 @@ 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;
@ -17,8 +15,6 @@ 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: 发送消息工具类
@ -43,15 +39,8 @@ public class DingdingMsgSender {
*/
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;
@ -59,18 +48,7 @@ public class DingdingMsgSender {
//阻塞取元素
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);
}
sendPostByJSON(msg);
} else {
Thread.sleep(1000);
}

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

@ -1,8 +1,10 @@
package com.epmet.topic.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author zxc
@ -27,4 +29,7 @@ public class TopicSummaryInfoResultDTO implements Serializable {
* 百分比
*/
private String ratio = "0.0%";
@JsonIgnore
private BigDecimal pro;
}

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.10
image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.17
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.17
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.10</version>
<version>0.3.17</version>
<artifactId>data-report-server</artifactId>
<parent>

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

@ -14,7 +14,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@ -187,12 +189,19 @@ public class TopicServiceImpl implements TopicService {
TopicShiftedCountResultDTO shiftedCount = topicDao.getShiftedCount(agencyId);
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;
topicSummaryInfo.forEach(topic -> {
String s = topic.getPro().setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
topic.setRatio(s.concat(TopicConstant.RATIO));
});
TopicSummaryInfoResultDTO result = new TopicSummaryInfoResultDTO();
if (collect == NumConstant.ZERO){
result.setRatio(NumConstant.ZERO+TopicConstant.RATIO);
}else {
BigDecimal bigDecimal = new BigDecimal(((float) shiftedCount.getShiftedIssueCount() / (float) collect) * NumConstant.ONE_HUNDRED);
String s = bigDecimal.setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
result.setRatio(s.concat(TopicConstant.RATIO));
}
result.setName(TopicConstant.SHIFTED);
result.setRatio(ratio);
result.setValue(shiftedCount.getShiftedIssueCount());
topicSummaryInfo.add(result);
}

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

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

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.13
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.22
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.1
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-statistical-server:0.3.22
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.13</version>
<version>0.3.22</version>
<parent>
<artifactId>data-statistical</artifactId>
<groupId>com.epmet</groupId>
@ -206,23 +206,35 @@
<datasource.druid.issue.password>elink@833066</datasource.druid.issue.password>
<datasource.druid.project.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_gov_project?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![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]]>
</datasource.druid.project.url>
<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.project.username>epmet</datasource.druid.project.username>
<datasource.druid.project.password>elink@833066</datasource.druid.project.password>
<datasource.druid.voice.url>
<![CDATA[jdbc:mysql://192.168.1.130:3306/epmet_gov_voice?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![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]]>
</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://192.168.1.130:3306/epmet_oper_crm?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![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]]>
</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>

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

@ -56,12 +56,12 @@ public interface StatsIssueDao extends BaseDao<IssueEntity> {
List<IssueAgencyDTO> selectAgencyClosedIssueInc(@Param("customerId") String customerId, @Param("date") String date);
/**
* @param customerId
* @param issueEntity
* @return
* @Author sun
* @Description 根据客户Id查询议题库已转项目的网格项目关系数据
**/
List<IssueEntity> selectGridProjectList(@Param("customerId") String customerId);
List<IssueEntity> selectGridProjectList(IssueEntity issueEntity);
/**
* 获取当前日期网格下议题统计结果
*

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

@ -123,4 +123,5 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
*/
String getPidByAgencyId(@Param("agencyId") String agencyId);
DimAgencyEntity getLatestCreatedAgencyDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java

@ -45,4 +45,6 @@ public interface DimCustomerDao extends BaseDao<DimCustomerEntity> {
List<String> selectCustomerIdPage(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
void insertOne(DimCustomerEntity dim);
DimCustomerEntity getLatestCreatedDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDateDao.java

@ -38,7 +38,7 @@ public interface DimDateDao extends BaseDao<DimDateEntity> {
/**
* 最新的按日维度
*/
DimDateDTO getLatestDimDate();
DimDateDTO getLatestDim();
int insertOne(DimDateEntity dimDateEntity);

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDepartmentDao.java

@ -40,4 +40,6 @@ public interface DimDepartmentDao extends BaseDao<DimDepartmentEntity> {
* @return
*/
List<DimDepartmentEntity> getDepartmentListByCustomerId(@Param("customerId") String customerId);
DimDepartmentEntity getLatestCreatedDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimMonthDao.java

@ -29,5 +29,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface DimMonthDao extends BaseDao<DimMonthEntity> {
DimMonthEntity getLatestDimEntity();
}

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimQuarterDao.java

@ -30,5 +30,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface DimQuarterDao extends BaseDao<DimQuarterEntity> {
DimQuarterEntity getLatestDimEntity();
}

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimWeekDao.java

@ -29,5 +29,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface DimWeekDao extends BaseDao<DimWeekEntity> {
DimWeekEntity getLatestDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimYearDao.java

@ -30,4 +30,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DimYearDao extends BaseDao<DimYearEntity> {
int insertOne(DimYearEntity entity);
DimYearEntity getLatestDimEntity();
}

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

@ -54,12 +54,12 @@ public interface IssueService {
List<IssueAgencyDTO> getAgencyClosedIssueInc(String customerId, String date);
/**
* @param customerId
* @param issueEntity
* @return
* @Author sun
* @Description 根据客户Id查询议题库已转项目的网格项目关系数据
**/
List<IssueEntity> getGridProjectList(String customerId);
List<IssueEntity> getGridProjectList(IssueEntity issueEntity);
/**
* 获取以网格为单位议题统计结果

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

@ -66,14 +66,14 @@ public class IssueServiceImpl implements IssueService {
}
/**
* @param customerId
* @param issueEntity
* @return
* @Author sun
* @Description 根据客户Id查询议题库已转项目的网格项目关系数据
**/
@Override
public List<IssueEntity> getGridProjectList(String customerId) {
return statsIssueDao.selectGridProjectList(customerId);
public List<IssueEntity> getGridProjectList(IssueEntity issueEntity) {
return statsIssueDao.selectGridProjectList(issueEntity);
}
@Override

83
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java

@ -7,8 +7,7 @@ import com.epmet.entity.crm.CustomerEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.entity.org.CustomerDepartmentEntity;
import com.epmet.entity.org.CustomerGridEntity;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.LastExecRecordEntity;
import com.epmet.entity.stats.*;
import com.epmet.service.StatsDimService;
import com.epmet.service.crm.CustomerService;
import com.epmet.service.org.CustomerAgencyService;
@ -55,21 +54,18 @@ public class StatsDimServiceImpl implements StatsDimService {
@Override
public void initGridDim() {
DimGridEntity lastCreatedGridDim = dimGridService.getLastCreatedGridDim();
DimGridEntity lastDimEntity = dimGridService.getLastCreatedGridDim();
List<CustomerGridEntity> grids;
if (lastCreatedGridDim == null) {
Date now = new Date();
if (lastDimEntity == null) {
// 首次初始化
grids = customerGridService.listGridsByCreateTime(null, null);
grids = customerGridService.listGridsByCreateTime(null, now);
} else {
// 非首次初始化
// 结束时间边界与开始时间边界,包含开始时间不包含结束时间。结束时间可以为空,则查询从开始时间往后的所有新创建网格
Date startTimeBorder = DateUtils.parse(DateUtils.format(lastCreatedGridDim.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMMDD), DateUtils.DATE_PATTERN_YYYYMMDD);
Date endTimeBorder = DateUtils.parse(DateUtils.format(new Date(), DateUtils.DATE_PATTERN_YYYYMMDD), DateUtils.DATE_PATTERN_YYYYMMDD);
grids = customerGridService.listGridsByCreateTime(startTimeBorder, endTimeBorder);
Date lastInitTime = lastDimEntity.getCreatedTime();
grids = customerGridService.listGridsByCreateTime(lastInitTime, now);
}
List<DimGridEntity> gridDims = convertCustomerGrid2GridDim(grids);
List<DimGridEntity> gridDims = convertCustomerGrid2GridDim(grids, now);
if (!CollectionUtils.isEmpty(gridDims)) {
dimGridService.initGridDims(gridDims);
}
@ -78,9 +74,10 @@ public class StatsDimServiceImpl implements StatsDimService {
/**
* 将网格信息转换成网格维度信息
* @param grids
* @param initTime 创建时间会用来作为下一次查询的输入条件因此必须和本次初始化查询的endTime一致
* @return
*/
private List<DimGridEntity> convertCustomerGrid2GridDim(List<CustomerGridEntity> grids) {
private List<DimGridEntity> convertCustomerGrid2GridDim(List<CustomerGridEntity> grids, Date initTime) {
return grids.stream().map(grid -> {
DimGridEntity dimGrid = new DimGridEntity();
dimGrid.setAgencyId(grid.getPid());
@ -90,6 +87,8 @@ public class StatsDimServiceImpl implements StatsDimService {
dimGrid.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
dimGrid.setId(grid.getId());
dimGrid.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dimGrid.setCreatedTime(initTime);
dimGrid.setUpdatedTime(initTime);
return dimGrid;
}).collect(Collectors.toList());
}
@ -99,20 +98,18 @@ public class StatsDimServiceImpl implements StatsDimService {
*/
@Override
public void initAgencyDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_AGENCY);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_AGENCY);
}
DimAgencyEntity latestCreatedAgencyDim = dimAgencyService.getLatestCreatedAgencyDimEntity();
Date statsEndTime = DateUtils.integrate(new Date(), DateUtils.DATE_PATTERN_YYYYMMDD);
Date statsStartTime = null;
if (lastExecRecord.getExecTime() != null) {
statsStartTime = DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYYMMDD);
Date now = new Date();
Date lastInitTime = null;
if (latestCreatedAgencyDim != null) {
lastInitTime = latestCreatedAgencyDim.getCreatedTime();
}
List<CustomerAgencyEntity> agencies = customerAgencyService.listAgenciesByCreateTime(statsStartTime, statsEndTime);
List<CustomerAgencyEntity> agencies = customerAgencyService.listAgenciesByCreateTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(agencies)) {
dimAgencyService.initAgencyDims(agencies);
dimAgencyService.initAgencyDims(agencies, now);
}
}
@ -121,42 +118,36 @@ public class StatsDimServiceImpl implements StatsDimService {
*/
@Override
public void initCustomerDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_CUSTOMER);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_CUSTOMER);
}
DimCustomerEntity lastCreateDim = dimCustomerService.getLatestCreatedDimEntity();
Date statsEndTime = DateUtils.integrate(new Date(), DateUtils.DATE_PATTERN_YYYYMMDD);
Date statsStartTime = null;
if (lastExecRecord.getExecTime() != null) {
statsStartTime = DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYYMMDD);
Date now = new Date();
Date lastInitTime = null;
if (lastCreateDim != null) {
lastInitTime = lastCreateDim.getCreatedTime();
}
List<CustomerEntity> customers = customerService.listValidCustomersByCreateTime(statsStartTime, statsEndTime);
List<CustomerEntity> customers = customerService.listValidCustomersByCreateTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(customers)) {
dimCustomerService.initCustomerDims(customers);
dimCustomerService.initCustomerDims(customers, now);
}
}
@Override
public void initDepartmentDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_DEPARTMENT);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_DEPARTMENT);
}
Date statsEndTime = DateUtils.integrate(new Date(), DateUtils.DATE_PATTERN_YYYYMMDD);
Date statsStartTime = null;
if (lastExecRecord.getExecTime() != null) {
statsStartTime = DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYYMMDD);
DimDepartmentEntity lastCreatedDeptDim = dimDepartmentService.getLatestCreatedDimEntity();
Date now = new Date();
Date lastInitTime = null;
if (lastCreatedDeptDim != null) {
lastInitTime = lastCreatedDeptDim.getCreatedTime();
}
List<CustomerDepartmentEntity> departments = departmentService.listDepartmentsByCreatedTime(statsStartTime, statsEndTime);
List<CustomerDepartmentEntity> departments = departmentService.listDepartmentsByCreatedTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(departments)) {
dimDepartmentService.initDepartmentDims(departments);
lastExecRecord.setExecTime(new Date());
// 记录最后一次统计时间
lastExecRecordService.updateById(lastExecRecord);
dimDepartmentService.initDepartmentDims(departments, now);
}
}
}

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

@ -323,7 +323,7 @@ public class StatsProjectServiceImpl implements StatsProjectService {
monthlyEntity.setResolvedRatio(entity.getResolvedRatio());
monthlyEntity.setUnresolvedTotal(entity.getUnresolvedTotal());
monthlyEntity.setUnresolvedRatio(entity.getUnresolvedRatio());
monthlyEntity.setProjectIncr(pendingIncr + closedIncr);
monthlyEntity.setProjectIncr(pendingIncr);
monthlyEntity.setPendingIncr(pendingIncr);
monthlyEntity.setClosedIncr(closedIncr);
monthlyEntity.setResolvedIncr(resolvedIncr);
@ -440,7 +440,10 @@ public class StatsProjectServiceImpl implements StatsProjectService {
numberFormat.setMaximumFractionDigits(6);
//1:根据客户Id查询议题库已转项目的网格项目关系数据
List<IssueEntity> gridProjectList = issueService.getGridProjectList(customerId);
IssueEntity issueEntity = new IssueEntity();
issueEntity.setCustomerId(customerId);
issueEntity.setCreatedTime(date);
List<IssueEntity> gridProjectList = issueService.getGridProjectList(issueEntity);
//2:遍历网格维度数据,统计每个网格各项指标数据
for (DimGridEntity grid : dimGridList) {
@ -616,7 +619,7 @@ public class StatsProjectServiceImpl implements StatsProjectService {
monthlyEntity.setResolvedRatio(entity.getResolvedRatio());
monthlyEntity.setUnresolvedTotal(entity.getUnresolvedTotal());
monthlyEntity.setUnresolvedRatio(entity.getUnresolvedRatio());
monthlyEntity.setProjectIncr(pendingIncr + closedIncr);
monthlyEntity.setProjectIncr(pendingIncr);
monthlyEntity.setPendingIncr(pendingIncr);
monthlyEntity.setClosedIncr(closedIncr);
monthlyEntity.setResolvedIncr(resolvedIncr);

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

@ -870,11 +870,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
*/
private void statsTagViewedQuarterly(String quarterId, String customerId) {
List<FactTagViewedGridMonthlyEntity> gridMonthlyList = factTagViewedGridMonthlyService.getTagViewedCountByQuarterId(customerId, quarterId);
log.debug("statsTagViewedQuarterly grid quarterId:{},customerId:{},result:{}",quarterId,customerId,JSON.toJSONString(gridMonthlyList));
if (!CollectionUtils.isEmpty(gridMonthlyList)) {
List<FactTagViewedGridQuarterlyEntity> gridQuarterlyList = ConvertUtils.sourceToTarget(gridMonthlyList, FactTagViewedGridQuarterlyEntity.class);
factTagViewedGridQuarterlyService.deleteAndInsertByQuarterId(customerId, quarterId, gridQuarterlyList);
}
List<FactTagViewedAgencyMonthlyEntity> agencyMonthlyList = factTagViewedAgencyMonthlyService.getTagViewedCountByQuarterId(customerId, quarterId);
log.debug("statsTagViewedQuarterly agency quarterId:{},customerId:{},result:{}",quarterId,customerId,JSON.toJSONString(gridMonthlyList));
if (!CollectionUtils.isEmpty(agencyMonthlyList)) {
List<FactTagViewedAgencyQuarterlyEntity> agencyQuarterlyList = ConvertUtils.sourceToTarget(agencyMonthlyList, FactTagViewedAgencyQuarterlyEntity.class);
factTagViewedAgencyQuarterlyService.deleteAndInsertByQuarterId(customerId, quarterId, agencyQuarterlyList);
@ -913,11 +915,13 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
*/
private void statsTagViewedYearly(String yearId, String customerId) {
List<FactTagViewedGridMonthlyEntity> gridMonthlyList = factTagViewedGridMonthlyService.getTagViewedCountByYearId(customerId, yearId);
log.debug("statsTagViewedYearly grid yearId:{},customerId:{},result:{}",yearId,customerId,JSON.toJSONString(gridMonthlyList));
if (!CollectionUtils.isEmpty(gridMonthlyList)) {
List<FactTagViewedGridYearlyEntity> gridYearlyList = ConvertUtils.sourceToTarget(gridMonthlyList, FactTagViewedGridYearlyEntity.class);
factTagViewedGridYearlyService.deleteAndInsertByYearId(customerId, yearId, gridYearlyList);
}
List<FactTagViewedAgencyMonthlyEntity> agencyMonthlyList = factTagViewedAgencyMonthlyService.getTagViewedCountByYearId(customerId, yearId);
log.debug("statsTagViewedYearly agency yearId:{},customerId:{},result:{}",yearId,customerId,JSON.toJSONString(agencyMonthlyList));
if (!CollectionUtils.isEmpty(agencyMonthlyList)) {
List<FactTagViewedAgencyYearlyEntity> agencyYearlyList = ConvertUtils.sourceToTarget(agencyMonthlyList, FactTagViewedAgencyYearlyEntity.class);
factTagViewedAgencyYearlyService.deleteAndInsertByYearId(customerId, yearId, agencyYearlyList);
@ -957,8 +961,8 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
String key = pid.concat(StrConstant.UNDER_LINE).concat(tagId);
FactTagViewedAgencyDailyEntity parentAgencyDailyEntity = agencyDailyEntityMap.get(key);
DimAgencyEntity currentDimAgency = dimAgencyEntityMap.get(pid);
if (currentDimAgency == null) {
log.error("setTagViewedData2ParentAgency pid:{} not exist in dimAgency", pid);
if (currentDimAgency == null && !NumConstant.ZERO_STR.equals(pid)) {
log.error("setTagViewedData2ParentAgency agencyId:{} not exist in dimAgency", pid);
return;
}
if (parentAgencyDailyEntity == null) {
@ -982,8 +986,8 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
private void setPublishedData2ParentAgency(Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap, FactArticlePublishedAgencyDailyEntity agencySummary, FactArticlePublishedAgencyDailyEntity summary) {
String pid = summary.getPid();
FactArticlePublishedAgencyDailyEntity parentAgency = agencyDailyEntityMap.get(pid);
if (parentAgency == null) {
log.error("setPublishedData2ParentAgency pid:{} not exist in dimAgency", pid);
if (parentAgency == null && !NumConstant.ZERO_STR.equals(pid)) {
log.error("setPublishedData2ParentAgency agencyId:{} not exist in dimAgency", pid);
return;
}
parentAgency.setArticleTotalCount(parentAgency.getArticleTotalCount() + agencySummary.getArticleTotalCount());

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java

@ -109,7 +109,7 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
* 初始化机关维度
* @param agencies
*/
void initAgencyDims(List<CustomerAgencyEntity> agencies);
void initAgencyDims(List<CustomerAgencyEntity> agencies, Date initTime);
/**
* @Description 查询所有机关以及它下级机关的信息
@ -173,4 +173,6 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
* @author zxc
*/
String getPidByAgencyId(String agencyId);
DimAgencyEntity getLatestCreatedAgencyDimEntity();
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java

@ -24,6 +24,7 @@ import com.epmet.entity.crm.CustomerEntity;
import com.epmet.entity.org.CustomerDepartmentEntity;
import com.epmet.entity.stats.DimCustomerEntity;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -111,5 +112,7 @@ public interface DimCustomerService extends BaseService<DimCustomerEntity> {
* 添加客户维度
* @param customers
*/
void initCustomerDims(List<CustomerEntity> customers);
void initCustomerDims(List<CustomerEntity> customers, Date initTime);
DimCustomerEntity getLatestCreatedDimEntity();
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimDepartmentService.java

@ -23,6 +23,7 @@ import com.epmet.dto.stats.DimDepartmentDTO;
import com.epmet.entity.org.CustomerDepartmentEntity;
import com.epmet.entity.stats.DimDepartmentEntity;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -94,7 +95,7 @@ public interface DimDepartmentService extends BaseService<DimDepartmentEntity> {
*/
void delete(String[] ids);
void initDepartmentDims(List<CustomerDepartmentEntity> departments);
void initDepartmentDims(List<CustomerDepartmentEntity> departments, Date initTime);
/**
* desc: 根据客户Id获取 部门数据
@ -105,4 +106,6 @@ public interface DimDepartmentService extends BaseService<DimDepartmentEntity> {
* @author: jianjun liu
*/
List<DimDepartmentEntity> getDepartmentListByCustomerId(String customerId);
DimDepartmentEntity getLatestCreatedDimEntity();
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java

@ -123,16 +123,16 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
@Transactional(rollbackFor = Exception.class)
@Override
public void initAgencyDims(List<CustomerAgencyEntity> agencies) {
public void initAgencyDims(List<CustomerAgencyEntity> agencies, Date initTime) {
for (CustomerAgencyEntity agency : agencies) {
initAgencyAllDim(agency);
initAgencySelfDim(agency);
initAgencyAllDim(agency, initTime);
initAgencySelfDim(agency, initTime);
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_AGENCY);
}
public void initAgencyAllDim(CustomerAgencyEntity agency) {
public void initAgencyAllDim(CustomerAgencyEntity agency, Date initTime) {
DimAgencyEntity dimAgencyEntity = new DimAgencyEntity();
dimAgencyEntity.setAgencyName(agency.getOrganizationName());
dimAgencyEntity.setAllParentName(agency.getAllParentName());
@ -144,6 +144,8 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
dimAgencyEntity.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
dimAgencyEntity.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dimAgencyEntity.setId(agency.getId());
dimAgencyEntity.setCreatedTime(initTime);
dimAgencyEntity.setUpdatedTime(initTime);
baseDao.insert(dimAgencyEntity);
}
@ -151,7 +153,7 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
* 初始化机关单位本身的维度(不包含本身)
* @param agency
*/
public void initAgencySelfDim(CustomerAgencyEntity agency) {
public void initAgencySelfDim(CustomerAgencyEntity agency, Date initTime) {
DimAgencyEntity dimAgencyEntity = new DimAgencyEntity();
dimAgencyEntity.setAgencyName(agency.getOrganizationName());
dimAgencyEntity.setAllParentName(agency.getAllParentName());
@ -163,6 +165,8 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
dimAgencyEntity.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
dimAgencyEntity.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dimAgencyEntity.setId(agency.getId().concat(DimAgencyConstant.TYPE_SELF_ID_SUFFIX));
dimAgencyEntity.setCreatedTime(initTime);
dimAgencyEntity.setUpdatedTime(initTime);
baseDao.insert(dimAgencyEntity);
}
@ -246,4 +250,9 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
return baseDao.getPidByAgencyId(agencyId);
}
@Override
public DimAgencyEntity getLatestCreatedAgencyDimEntity() {
return baseDao.getLatestCreatedAgencyDimEntity();
}
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java

@ -120,15 +120,22 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
@Transactional(rollbackFor = Exception.class)
@Override
public void initCustomerDims(List<CustomerEntity> customers) {
public void initCustomerDims(List<CustomerEntity> customers, Date initTime) {
for (CustomerEntity customer : customers) {
DimCustomerEntity dim = new DimCustomerEntity();
dim.setCustomerName(customer.getCustomerName());
dim.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
dim.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dim.setId(customer.getId());
dim.setCreatedTime(initTime);
dim.setUpdatedTime(initTime);
baseDao.insert(dim);
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_CUSTOMER);
}
@Override
public DimCustomerEntity getLatestCreatedDimEntity() {
return baseDao.getLatestCreatedDimEntity();
}
}

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDateServiceImpl.java

@ -108,29 +108,20 @@ public class DimDateServiceImpl extends BaseServiceImpl<DimDateDao, DimDateEntit
@Transactional(rollbackFor = Exception.class)
@Override
public void initDimDate() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_DATE);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_DATE);
}
Date now = new Date();
DimDateDTO latestDim = baseDao.getLatestDim();
Date targetDate = DateUtils.addDateDays(DateUtils.parse(
DateUtils.format(now, DateUtils.DATE_PATTERN_YYYYMMDD),
DateUtils.DATE_PATTERN_YYYYMMDD), -1);
Date now = new Date();
Date lastDimDate = null;
Date endDate = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYYMMDD);
if ((lastDimDate = lastExecRecord.getExecTime()) == null) {
if (latestDim == null) {
// 首次初始化按日维度
initDimDate(targetDate);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
initDimDate(endDate);
} else {
if (targetDate.equals(lastDimDate) || targetDate.after(lastDimDate)) {
initDimDate(lastDimDate, targetDate);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
Date lastDimDate = DateUtils.integrate(latestDim.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMMDD);
if (endDate.after(lastDimDate)) {
initDimDate(DateUtils.addDateDays(lastDimDate, 1), endDate);
}
}
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDepartmentServiceImpl.java

@ -109,7 +109,7 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
@Transactional(rollbackFor = Exception.class)
@Override
public void initDepartmentDims(List<CustomerDepartmentEntity> departments) {
public void initDepartmentDims(List<CustomerDepartmentEntity> departments, Date initTime) {
for (CustomerDepartmentEntity department : departments) {
DimDepartmentEntity dim = new DimDepartmentEntity();
dim.setAgencyId(department.getAgencyId());
@ -118,6 +118,8 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
dim.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
dim.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dim.setId(department.getId());
dim.setCreatedTime(initTime);
dim.setUpdatedTime(initTime);
baseDao.insert(dim);
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_DEPARTMENT);
@ -130,4 +132,9 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
}
return baseDao.getDepartmentListByCustomerId(customerId);
}
@Override
public DimDepartmentEntity getLatestCreatedDimEntity() {
return baseDao.getLatestCreatedDimEntity();
}
}

21
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimMonthServiceImpl.java

@ -112,25 +112,18 @@ public class DimMonthServiceImpl extends BaseServiceImpl<DimMonthDao, DimMonthEn
@Transactional(rollbackFor = Exception.class)
@Override
public void initMonthDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_MONTH);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_DEPARTMENT);
}
DimMonthEntity latestDimEntity = baseDao.getLatestDimEntity();
Date now = new Date();
Date startMonth;// 起始月份,包含该月份
Date targetMonth = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYYMM);// 统计至当月,包含当月
Date endMonth = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYYMM);// 统计至当月,包含当月
if (lastExecRecord.getExecTime() == null) {
initMonthDim(targetMonth);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
if (latestDimEntity == null) {
initMonthDim(endMonth);
} else {
startMonth = DateUtils.addDateMonths(DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYYMM), 1);
if (targetMonth.after(startMonth) || targetMonth.equals(startMonth)) {
initMonthDims(startMonth, targetMonth);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
startMonth = DateUtils.addDateMonths(DateUtils.integrate(latestDimEntity.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMM), 1);
if (endMonth.after(startMonth) || endMonth.equals(startMonth)) {
initMonthDims(startMonth, endMonth);
}
}
}

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimQuarterServiceImpl.java

@ -115,31 +115,20 @@ public class DimQuarterServiceImpl extends BaseServiceImpl<DimQuarterDao, DimQua
@Transactional(rollbackFor = Exception.class)
@Override
public void initQuarterDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_QUARTER);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_QUARTER);
}
DimQuarterEntity latestDimEntity = baseDao.getLatestDimEntity();
Date now = new Date();
//Date now = DateUtils.parse(now, DateUtils.DATE_PATTERN_YYYYMMDD);
Date targetQMonth;//初始化至,包含当季
Date endQMonth = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYYMM);;//初始化至当季
Date startQMonth;//从该季开始初始化,不包含该季
targetQMonth = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYYMM);
if (lastExecRecord.getExecTime() == null) {
// 初始化上一个季度
initQuarterDim(targetQMonth);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
if (latestDimEntity == null) {
// 初始化当前季度
initQuarterDim(endQMonth);
} else {
// 连续初始化多个季度
startQMonth = DateUtils.addDateMonths(DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYYMM), 3);
if (initQuarterDim(startQMonth, targetQMonth)) {
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
}
startQMonth = DateUtils.addDateMonths(DateUtils.integrate(latestDimEntity.getCreatedTime(), DateUtils.DATE_PATTERN_YYYYMM), 3);
initQuarterDim(startQMonth, endQMonth);
}
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimWeekServiceImpl.java

@ -110,26 +110,18 @@ public class DimWeekServiceImpl extends BaseServiceImpl<DimWeekDao, DimWeekEntit
@Transactional(rollbackFor = Exception.class)
@Override
public void initWeekDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_WEEK);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_WEEK);
}
DimWeekEntity latestDimEntity = baseDao.getLatestDimEntity();
Date now = new Date();
Date startWeekDay;
Date targetWeekDay = DateUtils.getWeekStartAndEnd(now)[0];
if (lastExecRecord.getExecTime() == null) {
// 首次执行
if (latestDimEntity == null) {
initWeekDim(targetWeekDay);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
} else {
startWeekDay = DateUtils.addDateWeeks(DateUtils.getWeekStartAndEnd(lastExecRecord.getExecTime())[0], 1);
startWeekDay = DateUtils.addDateWeeks(DateUtils.getWeekStartAndEnd(latestDimEntity.getCreatedTime())[0], 1);
if (targetWeekDay.equals(startWeekDay) || targetWeekDay.after(startWeekDay)) {
initWeekDim(startWeekDay, targetWeekDay);
lastExecRecord.setExecTime(now);
lastExecRecordService.updateById(lastExecRecord);
}
}
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimYearServiceImpl.java

@ -110,30 +110,19 @@ public class DimYearServiceImpl extends BaseServiceImpl<DimYearDao, DimYearEntit
@Transactional(rollbackFor = Exception.class)
@Override
public void initYearDim() {
LastExecRecordEntity lastExecRecord = lastExecRecordService.getLastExecRecord(StatsSubject.DIM_YEAR);
if (lastExecRecord == null) {
lastExecRecord = lastExecRecordService.createLastExecRecord(StatsSubject.DIM_YEAR);
}
DimYearEntity latestDimEntity = baseDao.getLatestDimEntity();
Date now = new Date();
Date startYear;
Date targetYear;
targetYear = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYY);
if (lastExecRecord.getExecTime() == null) {
Date targetYear = DateUtils.integrate(now, DateUtils.DATE_PATTERN_YYYY);
if (latestDimEntity == null) {
// 第一次执行统计
initYearDim(targetYear);
lastExecRecord.setExecTime(now);
// 记录最后一次统计时间
lastExecRecordService.updateById(lastExecRecord);
} else {
startYear = DateUtils.addDateYears(DateUtils.integrate(lastExecRecord.getExecTime(), DateUtils.DATE_PATTERN_YYYY), 1);
startYear = DateUtils.addDateYears(DateUtils.integrate(latestDimEntity.getCreatedTime(), DateUtils.DATE_PATTERN_YYYY), 1);
if (targetYear.equals(startYear) || targetYear.after(startYear)) {
initYearDims(startYear, targetYear);
lastExecRecord.setExecTime(now);
// 记录最后一次统计时间
lastExecRecordService.updateById(lastExecRecord);
}
}
}

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

@ -179,6 +179,7 @@
i.del_flag = '0'
AND ipr.del_flag = '0'
AND i.customer_id = #{customerId}
<![CDATA[AND DATE_FORMAT(ipr.created_time, "%Y-%m-%d") <= DATE_FORMAT(#{createdTime}, "%Y-%m-%d")]]>
</select>
</mapper>

20
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml

@ -257,4 +257,24 @@
AND id = #{agencyId}
</select>
<select id="getLatestCreatedAgencyDimEntity" resultType="com.epmet.entity.stats.DimAgencyEntity">
SELECT id,
agency_name,
customer_id,
pid,
pids,
all_parent_name,
level,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time,
agency_dim_type
FROM dim_agency
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

14
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml

@ -11,4 +11,18 @@
<select id="selectCustomerIdPage" resultType="java.lang.String">
select ID FROM dim_customer WHERE DEL_FLAG = '0' limit #{offset,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}
</select>
<select id="getLatestCreatedDimEntity" resultType="com.epmet.entity.stats.DimCustomerEntity">
SELECT id,
customer_name,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_customer
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDateDao.xml

@ -4,7 +4,7 @@
<mapper namespace="com.epmet.dao.stats.DimDateDao">
<!--最新的按日维度-->
<select id="getLatestDimDate" resultType="com.epmet.dto.stats.DimDateDTO">
<select id="getLatestDim" resultType="com.epmet.dto.stats.DimDateDTO">
SELECT *
FROM dim_date
WHERE DEL_FLAG = 0

16
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDepartmentDao.xml

@ -19,4 +19,20 @@
WHERE
DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
</select>
<select id="getLatestCreatedDimEntity" resultType="com.epmet.entity.stats.DimDepartmentEntity">
SELECT id,
department_name,
agency_id,
customer_id,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_department
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

21
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimMonthDao.xml

@ -2,7 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.stats.DimMonthDao">
<select id="getLatestDimEntity" resultType="com.epmet.entity.stats.DimMonthEntity">
SELECT id,
month_name,
month_order,
start_date,
end_date,
quarter_id,
year_id,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_month
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

19
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimQuarterDao.xml

@ -3,6 +3,21 @@
<mapper namespace="com.epmet.dao.stats.DimQuarterDao">
<select id="getLatestDimEntity" resultType="com.epmet.entity.stats.DimQuarterEntity">
SELECT id,
quarter_name,
quarter_order,
start_date,
end_date,
year_id,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_quarter
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

21
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimWeekDao.xml

@ -2,8 +2,21 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.stats.DimWeekDao">
<select id="getLatestDimEntity" resultType="com.epmet.entity.stats.DimWeekEntity">
SELECT id,
week_name,
week_order,
start_date,
end_date,
year_id,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_week
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

14
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimYearDao.xml

@ -21,5 +21,19 @@
(#{id}, #{yearName}, #{delFlag}, #{revision}, #{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime})
</insert>
<select id="getLatestDimEntity" resultType="com.epmet.entity.stats.DimYearEntity">
SELECT id,
year_name,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
FROM dim_year
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
</mapper>

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

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

4
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedQuarterlyAndYearlyhlyStatsTask.java

@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* desc:标签被阅读次数 统计定时任务
* desc:标签被阅读次数 统计定时任务
*/
@Component("publicityTagViewedQuarterlyAndYearlyhlyStatsTask")
public class PublicityTagViewedQuarterlyAndYearlyhlyStatsTask implements ITask {
@ -21,7 +21,7 @@ public class PublicityTagViewedQuarterlyAndYearlyhlyStatsTask implements ITask {
@Override
public void run(String params) {
logger.debug("publicityTagViewedMonthlyStatsTask定时任务正在执行,参数为:{}", params);
Result result = statsPublicityTaskService.tagUsedQuarterlyStatsjob();
Result result = statsPublicityTaskService.tagViewedQuarterlyStatsjob();
if (result.success()) {
logger.debug("publicityTagViewedMonthlyStatsTask定时任务正在执行定时任务执行成功");
} else {

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

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

9
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java

@ -3,11 +3,14 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.feign.fallback.GovAccessFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Set;
//@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallBack.class, url = "http://localhost:8099")
@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallBack.class)
public interface GovAccessFeignClient {
@ -20,4 +23,10 @@ public interface GovAccessFeignClient {
@PostMapping("/gov/access/role/initdefaultoperationsforroles")
Result initDefaultOperationsForRoles(@RequestBody InitDefaultOperationsFormDTO formDTO);
/**
* 列出觉得的功能权限列表
* @return
*/
@PostMapping("/gov/access/access/listoperationpermissions")
Result<Set<String>> listOperationPermissions(@RequestBody ListOpePermsFormDTO listOpePermsFormDTO);
}

8
epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java

@ -4,9 +4,12 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.InitDefaultOperationsFormDTO;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.feign.GovAccessFeignClient;
import org.springframework.stereotype.Component;
import java.util.Set;
/**
* @Description
* @Author sun
@ -19,4 +22,9 @@ public class GovAccessFeignClientFallBack implements GovAccessFeignClient {
public Result initDefaultOperationsForRoles(InitDefaultOperationsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "initDefaultOperationsForRoles", formDTO);
}
@Override
public Result<Set<String>> listOperationPermissions(ListOpePermsFormDTO listOpePermsFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listOperationPermissions", listOpePermsFormDTO);
}
}

2
epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-access-server:
container_name: gov-access-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-access-server:0.3.34
image: 192.168.1.130:10080/epmet-cloud-dev/gov-access-server:0.3.35
ports:
- "8099:8099"
network_mode: host # 使用现有网络

2
epmet-module/gov-access/gov-access-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-access-server:
container_name: gov-access-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-access-server:0.3.34
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-access-server:0.3.35
ports:
- "8099:8099"
network_mode: host # 使用现有网络

2
epmet-module/gov-access/gov-access-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.34</version>
<version>0.3.35</version>
<parent>
<artifactId>gov-access</artifactId>
<groupId>com.epmet</groupId>

2
epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-issue-server:
container_name: gov-issue-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.45
image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.47
ports:
- "8101:8101"
network_mode: host # 使用现有网络

2
epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-issue-server:
container_name: gov-issue-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.43
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.47
ports:
- "8101:8101"
network_mode: host # 使用现有网络

4
epmet-module/gov-issue/gov-issue-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.45</version>
<version>0.3.47</version>
<parent>
<artifactId>gov-issue</artifactId>
<groupId>com.epmet</groupId>
@ -147,6 +147,7 @@
<nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
<profile>
@ -179,6 +180,7 @@
<nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
</profiles>

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java

@ -91,4 +91,6 @@ public interface IssueConstant {
* 北京时区北京时间
*/
String BEIJING_TIME_ZONE = "+8";
String REVIEW_ISSUE = "议题评论失败,评论内容为:%s";
}

29
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSatisfactionDetailServiceImpl.java

@ -24,8 +24,13 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.IssueConstant;
import com.epmet.dao.IssueSatisfactionDetailDao;
import com.epmet.dto.EvaluateInfoDTO;
@ -38,15 +43,18 @@ import com.epmet.dto.result.InitEvaluationResultDTO;
import com.epmet.entity.IssueSatisfactionDetailEntity;
import com.epmet.redis.IssueSatisfactionDetailRedis;
import com.epmet.service.IssueSatisfactionDetailService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* 议题满意度调查记录表
@ -55,10 +63,15 @@ import java.util.Map;
* @since v1.0.0 2020-05-11
*/
@Service
@Slf4j
public class IssueSatisfactionDetailServiceImpl extends BaseServiceImpl<IssueSatisfactionDetailDao, IssueSatisfactionDetailEntity> implements IssueSatisfactionDetailService {
@Autowired
private IssueSatisfactionDetailRedis issueSatisfactionDetailRedis;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Override
public PageData<IssueSatisfactionDetailDTO> page(Map<String, Object> params) {
@ -142,6 +155,22 @@ public class IssueSatisfactionDetailServiceImpl extends BaseServiceImpl<IssueSat
@Override
@Transactional(rollbackFor = Exception.class)
public void evaluate(EvaluateFormDTO formDTO) {
String comment = formDTO.getComment();
//议题评论内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(comment);
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
log.error(String.format(IssueConstant.REVIEW_ISSUE,comment));
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
IssueSatisfactionDetailEntity entity = new IssueSatisfactionDetailEntity();
BeanUtils.copyProperties(formDTO,entity);
InitEvaluationFormDTO initEvaluation = new InitEvaluationFormDTO();

38
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -7,10 +7,15 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.IssueConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageConstant;
@ -42,6 +47,7 @@ import com.epmet.utils.ModuleConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -86,6 +92,10 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
private IssueVoteStatisticalDao issueVoteStatisticalDao;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Override
public PageData<IssueDTO> page(Map<String, Object> params) {
@ -351,6 +361,20 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
@Override
@Transactional(rollbackFor = Exception.class)
public void closeIssue(CloseIssueFormDTO formDTO) {
//公开回复内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(formDTO.getCloseReason());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
Date date = new Date();
//1:更新议题详情表数据
IssueEntity entity = baseDao.selectById(formDTO.getIssueId());
@ -479,6 +503,20 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
@Override
@Transactional(rollbackFor = Exception.class)
public void shiftProject(ShiftProjectFormDTO formDTO) {
//公开回复内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(formDTO.getPublicReply());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//因需要保证议题表中的转项目时间与创建项目时间一致 因此先新增项目数据再更新议题数据
//1:查询议题数据
IssueEntity entity = baseDao.selectById(formDTO.getIssueId());

8
epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml

@ -103,6 +103,14 @@ ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
openapi:
scan:
server:
url: @openapi.scan.server.url@
method:
imgSyncScan: /imgSyncScan
textSyncScan: /textSyncScan
#pageHelper分页插件
pagehelper:
helper-dialect: mysql

2
epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-mine-server:
container_name: gov-mine-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-mine-server:0.3.29
image: 192.168.1.130:10080/epmet-cloud-dev/gov-mine-server:0.3.30
ports:
- "8098:8098"
network_mode: host # 使用现有网络

2
epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-mine-server:
container_name: gov-mine-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:0.3.29
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:0.3.30
ports:
- "8098:8098"
network_mode: host # 使用现有网络

2
epmet-module/gov-mine/gov-mine-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.29</version>
<version>0.3.30</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>gov-mine</artifactId>

28
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/GovAccessFeignClient.java

@ -1,28 +0,0 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.feign.fallback.GovAccessFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Set;
/**
* @Description
* @Author sun
*/
//url = "localhost:8099"
@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallback.class)
public interface GovAccessFeignClient {
/**
* 列出觉得的功能权限列表
* @return
*/
@PostMapping("/gov/access/access/listoperationpermissions")
Result<Set<String>> listOperationPermissions(@RequestBody ListOpePermsFormDTO listOpePermsFormDTO);
}

22
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallback.java

@ -1,22 +0,0 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.feign.GovAccessFeignClient;
import org.springframework.stereotype.Component;
import java.util.Set;
/**
* @Description
* @Author sun
*/
@Component
public class GovAccessFeignClientFallback implements GovAccessFeignClient {
@Override
public Result<Set<String>> listOperationPermissions(ListOpePermsFormDTO listOpePermsFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listOperationPermissions", listOpePermsFormDTO);
}
}

2
epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-project-server:
container_name: gov-project-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.30
image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.32
ports:
- "8102:8102"
network_mode: host # 使用现有网络

2
epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-project-server:
container_name: gov-project-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.28
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.32
ports:
- "8102:8102"
network_mode: host # 使用现有网络

4
epmet-module/gov-project/gov-project-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.30</version>
<version>0.3.32</version>
<parent>
<artifactId>gov-project</artifactId>
<groupId>com.epmet</groupId>
@ -147,6 +147,7 @@
<nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
<profile>
@ -179,6 +180,7 @@
<nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
</profiles>

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -118,4 +118,6 @@ public interface ProjectConstant {
* 议题转项目 项目服务数据入库成功议题数据更新或发送消息失败导致议题数据可以回滚项目服务数据不能回滚
*/
String SAVE_PROJECT_EXCEPTION = "已存在项目数据,不能重复转项目";
String REVIEW_PROJECT = "项目评论失败,评论内容为:%s";
}

24
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

@ -23,10 +23,15 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageConstant;
@ -46,6 +51,7 @@ import com.epmet.service.ProjectService;
import com.epmet.service.ProjectStaffService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -77,6 +83,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
private ProjectStaffService projectStaffService;
@Autowired
private com.epmet.feign.MessageFeignClient messageFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Override
public PageData<ProjectProcessDTO> page(Map<String, Object> params) {
@ -176,6 +186,20 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
@Override
@Transactional(rollbackFor = Exception.class)
public void transfer(TransferFormDTO formDTO) {
//公开回复内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(formDTO.getPublicReply());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//1:更新项目人员关联表数据状态为已处理
ProjectStaffEntity staffEntity = projectStaffDao.selectById(formDTO.getProjectStaffId());
if (null == staffEntity) {

28
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java

@ -24,10 +24,13 @@ import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.dao.ProjectSatisfactionDetailDao;
import com.epmet.dto.ProjectSatisfactionDetailDTO;
@ -37,9 +40,11 @@ import com.epmet.entity.ProjectSatisfactionDetailEntity;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.ProjectSatisfactionDetailRedis;
import com.epmet.service.ProjectSatisfactionDetailService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -53,12 +58,17 @@ import java.util.stream.Collectors;
* @since v1.0.0 2020-05-11
*/
@Service
@Slf4j
public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl<ProjectSatisfactionDetailDao, ProjectSatisfactionDetailEntity> implements ProjectSatisfactionDetailService {
@Autowired
private ProjectSatisfactionDetailRedis projectSatisfactionDetailRedis;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Override
public PageData<ProjectSatisfactionDetailDTO> page(Map<String, Object> params) {
@ -178,6 +188,22 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl<Projec
@Override
@Transactional(rollbackFor = Exception.class)
public void projectEvaluate(ProjectEvaluateFormDTO formDTO) {
String comment = formDTO.getComment();
//项目满意度评价内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(comment);
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
log.error(String.format(ProjectConstant.REVIEW_PROJECT,comment));
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
ProjectSatisfactionDetailEntity entity = new ProjectSatisfactionDetailEntity();
BeanUtils.copyProperties(formDTO,entity);
//校验是否评价

38
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -27,8 +27,12 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ParameterKeyConstant;
import com.epmet.constant.ProjectConstant;
import com.epmet.constant.UserMessageConstant;
@ -48,6 +52,7 @@ import com.epmet.redis.ProjectRedis;
import com.epmet.service.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -82,6 +87,10 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private MessageFeignClient messageFeignClient;
@Autowired
private ProjectRelatedPersonnelService projectRelatedPersonnelService;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
private final static String ONE_DAY = "<1";
@ -290,6 +299,20 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
@Override
@Transactional(rollbackFor = Exception.class)
public void closed(ProjectClosedFromDTO fromDTO) {
//公开回复内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(fromDTO.getPublicReply());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//更新项目表状态
ProjectEntity projectEntity = baseDao.selectById(fromDTO.getProjectId());
if (ProjectConstant.CLOSED.equals(projectEntity.getStatus())) {
@ -298,7 +321,6 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectEntity.setStatus(ProjectConstant.CLOSED);
projectEntity.setClosedStatus(fromDTO.getClosedStatus());
baseDao.updateById(projectEntity);
//更新项目关联表
ProjectStaffEntity projectStaffEntity = new ProjectStaffEntity();
projectStaffEntity.setId(fromDTO.getProjectStaffId());
@ -353,6 +375,20 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
@Override
@Transactional(rollbackFor = Exception.class)
public void projectReturn(ReturnFromDTO fromDTO) {
//公开回复内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(fromDTO.getPublicReply());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
ProjectEntity projectEntity = baseDao.selectById(fromDTO.getProjectId());
if (ProjectConstant.CLOSED.equals(projectEntity.getStatus())) {
throw new RenException(EpmetErrorCode.PROJECT_IS_CLOSED.getCode());

8
epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml

@ -103,6 +103,14 @@ ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
openapi:
scan:
server:
url: @openapi.scan.server.url@
method:
imgSyncScan: /imgSyncScan
textSyncScan: /textSyncScan
#pageHelper分页插件
pagehelper:
helper-dialect: mysql

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java

@ -72,4 +72,10 @@ public interface TopicConstant {
* 构造queryWrapper 用户Id
* */
String CUSTOMER_USER_ID = "CUSTOMER_USER_ID";
String REVIEW_TOPIC = "评论话题失败,评论内容为:%s";
String CREATE_TOPIC = "创建话题失败,话题内容为:%s";
String SHIFT_ISSUE = "转议题失败,标题为:%s , 建议为:%s";
}

2
epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-group-server:
container_name: resi-group-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.53
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.54
ports:
- "8095:8095"
network_mode: host # 使用现有网络

2
epmet-module/resi-group/resi-group-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-group-server:
container_name: resi-group-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-group-server:0.3.53
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-group-server:0.3.54
ports:
- "8095:8095"
network_mode: host # 使用现有网络

4
epmet-module/resi-group/resi-group-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">
<modelVersion>4.0.0</modelVersion>
<version>0.3.53</version>
<version>0.3.54</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>resi-group</artifactId>
@ -150,6 +150,7 @@
<nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
<profile>
@ -181,6 +182,7 @@
<nacos.config-enabled>false</nacos.config-enabled>
<nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled>
<openapi.scan.server.url>https://epmet-dev.elinkservice.cn/epmetscan/api</openapi.scan.server.url>
</properties>
</profile>
</profiles>

29
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java

@ -21,14 +21,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
@ -52,10 +57,12 @@ import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -69,6 +76,7 @@ import java.util.stream.Collectors;
* @since v1.0.0 2020-03-31
*/
@Service
@Slf4j
public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommentDao, ResiTopicCommentEntity> implements ResiTopicCommentService {
@Autowired
@ -86,6 +94,11 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
@Autowired
ResiGroupMemberDao resiGroupMemberDao;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
private final Log logger = LogFactory.getLog(getClass());
@Override
@ -151,6 +164,22 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
@Override
@Transactional(rollbackFor = Exception.class)
public Result commentTopic(TokenDto tokenDto, ResiPublishCommentFormDTO resiCommentFormDTO) {
String commentContent = resiCommentFormDTO.getCommentContent();
//评论话题内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(commentContent);
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
log.error(String.format(TopicConstant.REVIEW_TOPIC,commentContent));
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//1.判断当前用户是否被禁言
ResiTopicDTO topic = resiTopicService.get(resiCommentFormDTO.getTopicId());
if(null == topic){

76
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -24,12 +24,19 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommonDataFilterResultDTO;
@ -72,14 +79,15 @@ import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -91,6 +99,7 @@ import java.util.stream.Collectors;
* @since v1.0.0 2020-03-31
*/
@Service
@Slf4j
public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopicEntity> implements ResiTopicService {
@Autowired
@ -132,6 +141,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
private GovIssueFeignClient govIssueFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Value("${openapi.scan.method.imgSyncScan}")
private String imgSyncScanMethod;
private final Log logger = LogFactory.getLog(getClass());
@ -199,6 +215,41 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
**/
@Override
public Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO) {
String topicContent = resiTopicPublishFormDTO.getTopicContent();
List<String> attachmentList = resiTopicPublishFormDTO.getAttachmentList();
//创建话题内容审核
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setContent(topicContent);
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
log.error(String.format(TopicConstant.CREATE_TOPIC,topicContent));
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//创建话题图片审核
if (attachmentList.size() != NumConstant.ZERO){
ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO();
attachmentList.forEach(url -> {
ImgTaskDTO task = new ImgTaskDTO();
task.setDataId(UUID.randomUUID().toString().replace("-", ""));
task.setUrl(url);
imgScanParamDTO.getTasks().add(task);
});
Result<SyncScanResult> imgScanResult = ScanContentUtils.imgSyncScan(scanApiUrl.concat(imgSyncScanMethod), imgScanParamDTO);
if (!imgScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!imgScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.IMG_SCAN_FAILED.getCode());
}
}
}
if (null == tokenDto) {
logger.error(ModuleConstant.USER_NOT_NULL);
throw new RenException(ModuleConstant.USER_NOT_NULL);
@ -1045,6 +1096,29 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Override
@Transactional(rollbackFor = Exception.class)
public void shiftIssue(ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO) {
//话题转议题审核:标题、建议
String issueTitle = topicTurnIssueFromDTO.getIssueTitle();
String suggestion = topicTurnIssueFromDTO.getSuggestion();
TextScanParamDTO textScan = new TextScanParamDTO();
//标题
TextTaskDTO taskTitle = new TextTaskDTO();
taskTitle.setContent(issueTitle);
taskTitle.setDataId(UUID.randomUUID().toString().replace("-", ""));
textScan.getTasks().add(taskTitle);
//建议
TextTaskDTO taskSuggestion = new TextTaskDTO();
taskSuggestion.setDataId(UUID.randomUUID().toString().replace("-", ""));
taskSuggestion.setContent(suggestion);
textScan.getTasks().add(taskSuggestion);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScan);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
log.error(String.format(TopicConstant.SHIFT_ISSUE,issueTitle,suggestion));
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
//1.统一时间(群组服务 -> 议题服务)
Date now = new Date();
//2.调用gov-org获取数据权限

10
epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml

@ -117,4 +117,12 @@ ribbon:
#pageHelper分页插件
pagehelper:
helper-dialect: mysql
reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
openapi:
scan:
server:
url: @openapi.scan.server.url@
method:
imgSyncScan: /imgSyncScan
textSyncScan: /textSyncScan

2
epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-hall-server:
container_name: resi-hall-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/resi-hall-server:0.3.20
image: 192.168.1.130:10080/epmet-cloud-dev/resi-hall-server:0.3.21
ports:
- "8100:8100"
network_mode: host # 使用现有网络

2
epmet-module/resi-hall/resi-hall-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-hall-server:
container_name: resi-hall-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-hall-server:0.3.20
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-hall-server:0.3.21
ports:
- "8100:8100"
network_mode: host # 使用现有网络

2
epmet-module/resi-hall/resi-hall-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">
<modelVersion>4.0.0</modelVersion>
<version>0.3.20</version>
<version>0.3.21</version>
<parent>
<artifactId>resi-hall</artifactId>
<groupId>com.epmet</groupId>

8
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java

@ -131,8 +131,8 @@ public class IssueController {
// @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL)
public Result evaluate(@LoginUser TokenDto tokenDto,@RequestBody EvaluateFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO);
issueService.evaluate(tokenDto,formDTO);
return new Result();
return issueService.evaluate(tokenDto,formDTO);
}
/**
@ -144,8 +144,8 @@ public class IssueController {
// @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL)
public Result projectEvaluate(@LoginUser TokenDto tokenDto,@RequestBody ProjectEvaluateFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO);
issueService.projectEvaluate(tokenDto,formDTO);
return new Result();
return issueService.projectEvaluate(tokenDto,formDTO);
}
/**

5
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java

@ -2,6 +2,7 @@ package com.epmet.service;
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.dto.form.*;
import com.epmet.dto.result.*;
import org.springframework.web.bind.annotation.RequestBody;
@ -72,14 +73,14 @@ public interface IssueService {
* @param evaluateFormDTO
* @author zxc
*/
void evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO);
Result evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO);
/**
* @Description 提交满意度评价已转项目
* @param projectEvaluateFormDTO
* @author zxc
*/
void projectEvaluate(TokenDto tokenDto, ProjectEvaluateFormDTO projectEvaluateFormDTO);
Result projectEvaluate(TokenDto tokenDto, ProjectEvaluateFormDTO projectEvaluateFormDTO);
/**
* @Description 满意度评价列表已关闭

8
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -201,9 +201,9 @@ public class IssueServiceImpl implements IssueService {
* @author zxc
*/
@Override
public void evaluate(TokenDto tokenDto, EvaluateFormDTO evaluateFormDTO) {
public Result evaluate(TokenDto tokenDto, EvaluateFormDTO evaluateFormDTO) {
evaluateFormDTO.setUserId(tokenDto.getUserId());
govIssueFeignClient.evaluate(evaluateFormDTO);
return govIssueFeignClient.evaluate(evaluateFormDTO);
}
/**
@ -212,9 +212,9 @@ public class IssueServiceImpl implements IssueService {
* @author zxc
*/
@Override
public void projectEvaluate(TokenDto tokenDto, ProjectEvaluateFormDTO projectEvaluateFormDTO) {
public Result projectEvaluate(TokenDto tokenDto, ProjectEvaluateFormDTO projectEvaluateFormDTO) {
projectEvaluateFormDTO.setUserId(tokenDto.getUserId());
govProjectFeignClient.projectEvaluate(projectEvaluateFormDTO);
return govProjectFeignClient.projectEvaluate(projectEvaluateFormDTO);
}
/**

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

Loading…
Cancel
Save