Browse Source

合并kpi

dev
yujintao 6 years ago
parent
commit
c2390305a6
  1. 15
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/constant/RoleTypeKeyConstant.java
  2. 50
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptLevelAndLeaderDTO.java
  3. 2
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java
  4. 4
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysSimpleDictDTO.java
  5. 4
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java
  6. 2
      esua-epdc/epdc-admin/epdc-admin-server/Dockerfile
  7. 39
      esua-epdc/epdc-admin/epdc-admin-server/pom.xml
  8. 48
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  9. 51
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java
  10. 14
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  11. 36
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
  12. 18
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleDao.java
  13. 37
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  14. 1
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleService.java
  15. 84
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  16. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java
  17. 46
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java
  18. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
  19. 10
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/logback-spring.xml
  20. 91
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  21. 15
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysRoleDao.xml
  22. 355
      esua-epdc/epdc-module/epdc-events/db/esua_epdc_events.pdman.json
  23. 17
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ItemEvaluationLevel.java
  24. 50
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/form/SubmitCommentFormDTO.java
  25. 32
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java
  26. 3
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java
  27. 2
      esua-epdc/epdc-module/epdc-events/epdc-events-server/Dockerfile
  28. 67
      esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml
  29. 6
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/controller/CategoryController.java
  30. 16
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/entity/CategoryEntity.java
  31. 6
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/CategoryService.java
  32. 254
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/impl/CategoryServiceImpl.java
  33. 10
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/controller/AppEventCommentController.java
  34. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/EventCommentService.java
  35. 15
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/impl/EventCommentServiceImpl.java
  36. 36
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java
  37. 36
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java
  38. 37
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java
  39. 49
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
  40. 28
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/AdminFeignClient.java
  41. 65
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java
  42. 95
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  43. 22
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEvaluateDeptEntity.java
  44. 77
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  45. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemEvaluateDeptServiceImpl.java
  46. 120
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  47. 22
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml
  48. 8
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml
  49. 6
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/category/CategoryDao.xml
  50. 67
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml
  51. 102
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml
  52. 5
      esua-epdc/epdc-module/epdc-job/epdc-job-client/pom.xml
  53. 20
      esua-epdc/epdc-module/epdc-job/epdc-job-server/Dockerfile
  54. 44
      esua-epdc/epdc-module/epdc-job/epdc-job-server/pom.xml
  55. 1
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/controller/ScheduleJobController.java
  56. 7
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/dao/ScheduleJobDao.java
  57. 49
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java
  58. 27
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java
  59. 38
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java
  60. 6
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobService.java
  61. 36
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java
  62. 6
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobServiceImpl.java
  63. 30
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java
  64. 35
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java
  65. 34
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiRuleTask.java
  66. 21
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/application.yml
  67. 10
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/logback-spring.xml
  68. 4
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/mapper/ScheduleJobDao.xml
  69. 24
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java
  70. 15
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiItemConstant.java
  71. 65
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiScheduleCodeConstant.java
  72. 25
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/EventCountFromDTO.java
  73. 25
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java
  74. 4
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreRuleDTO.java
  75. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java
  76. 113
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiMetaDataDTO.java
  77. 177
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiResultGridDTO.java
  78. 144
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiResultSuperiorDTO.java
  79. 4
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiTimeLimitItemDTO.java
  80. 50
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java
  81. 20
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/CategoryInfoFormDTO.java
  82. 33
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/KpiMetaDataOfEventsFormDTO.java
  83. 6
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/KpiRuleSaveOrUpdateFormDTO.java
  84. 38
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/CategoryInfoResultDTO.java
  85. 36
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiEvaluationAmountResultDTO.java
  86. 30
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiEventReportAmountResultDTO.java
  87. 30
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiItemHandleAmountResultDTO.java
  88. 48
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiItemTimeLimitByDeptResultDTO.java
  89. 51
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java
  90. 5
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiRuleQueryResultDTO.java
  91. 82
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java
  92. 116
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java
  93. 50
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiResultGridDataEnum.java
  94. 37
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiRuleModeEnum.java
  95. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/Dockerfile
  96. 69
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/pom.xml
  97. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiFormulaController.java
  98. 49
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java
  99. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreRuleController.java
  100. 110
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java

15
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/constant/RoleTypeKeyConstant.java

@ -0,0 +1,15 @@
package com.elink.esua.epdc.constant;
/**
* TypeKey 常量
*
* @author work@yujt.net.cn
* @date 2019/12/18 10:10
*/
public interface RoleTypeKeyConstant {
/**
* 角色网格长
*/
String ROLE_GRID_LEADER = "gridLeader";
}

50
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptLevelAndLeaderDTO.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 机构层级关系与机构负责人
*
* @author work@yujt.net.cn
* @date 2019/12/18 10:55
*/
@Data
public class DeptLevelAndLeaderDTO implements Serializable {
private static final long serialVersionUID = 8264059305193996215L;
/**
* 部门ID
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 父所有部门ID
*/
private String parentDeptIds;
/**
* 父所有部门
*/
private String parentDeptNames;
/**
* 所有部门ID
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
/**
* 部门负责人名称
*/
private String leaderName;
/**
* 部门负责人名称
*/
private String typeKey;
}

2
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java

@ -8,10 +8,10 @@
package com.elink.esua.epdc.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;

4
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysSimpleDictDTO.java

@ -28,4 +28,6 @@ public class SysSimpleDictDTO implements Serializable {
@ApiModelProperty(value = "字典值")
private String dictValue;
}
@ApiModelProperty(value = "备注")
private String remark;
}

4
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/UserSysDeptInfoFormDTO.java

@ -16,14 +16,10 @@ public class UserSysDeptInfoFormDTO implements Serializable {
/**
* 主键集合
*/
// @NotEmpty(message = "deptIdList不能为空")
// @Valid
private List<Long> deptIdList;
/**
* 部门类型键值
*/
// @NotEmpty(message = "部门类型不能为空")
// @Valid
private List<String> typeKeyList;
}

2
esua-epdc/epdc-admin/epdc-admin-server/Dockerfile

@ -1,5 +1,5 @@
# 基础镜像
FROM adoptopenjdk/openjdk11
FROM openjdk:8u242-jre-buster
# 作者
MAINTAINER rongchao@elink-cn.com
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值

39
esua-epdc/epdc-admin/epdc-admin-server/pom.xml

@ -62,6 +62,12 @@
<artifactId>feign-httpclient</artifactId>
<version>10.3.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-events-client</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!--RocketMq-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
@ -298,5 +304,38 @@
<rocketmq.producer.group>organizationGroup</rocketmq.producer.group>
</properties>
</profile>
<profile>
<id>prod_jinshui</id>
<properties>
<server.port>9100</server.port>
<spring.profiles.active>prod</spring.profiles.active>
<docker.tag>prod</docker.tag>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.20.0.4:80</nacos.server-addr>
<spring.zipkin.base-url>http://172.31.171.61:9411</spring.zipkin.base-url>
<!--居民端小程序配置-->
<wx.ma.appId>wx6dcf544cdae7d4ec</wx.ma.appId>
<wx.ma.secret>9e0882274ad3821400370312a56a8470</wx.ma.secret>
<!--工作端小程序-->
<work.wx.ma.appId>wxddb240334d09049f</work.wx.ma.appId>
<work.wx.ma.secret>071b8c70da0d0482aaf79052e64f83bc</work.wx.ma.secret>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.19.0.2:3306/esua_epdc_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epdc</spring.datasource.druid.username>
<spring.datasource.druid.password>Elink@833066</spring.datasource.druid.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.19.0.11</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>epdc!redis@master1405</spring.redis.password>
</properties>
</profile>
</profiles>
</project>

48
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java

@ -131,6 +131,7 @@ public class SysDeptController {
public Result<CompleteDeptDTO> getCompleteDept(@PathVariable("gridId") String gridId) {
return sysDeptService.getCompleteDept(gridId);
}
/**
* 通过网格ID获取该网格所有上级机构
*
@ -141,7 +142,7 @@ public class SysDeptController {
*/
@GetMapping("getParentAndAllDept/{deptId}")
public Result<ParentAndAllDeptDTO> getParentAndAllDept(@PathVariable("deptId") String deptId) {
return sysDeptService.getParentAndAllDept(deptId);
return new Result().ok(sysDeptService.getParentAndAllDept(deptId));
}
/**
@ -234,4 +235,49 @@ public class SysDeptController {
PageData<CompleteDeptDTO> page = sysDeptService.listCompleteDeptDTO(params);
return new Result<PageData<CompleteDeptDTO>>().ok(page);
}
/***
* 获取所有网格 kpi模块原始数据
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2019/12/12 17:26
*/
@GetMapping("listAllGridId")
public Result listAllGridId() {
return sysDeptService.listAllGridId();
}
/**
* 按部门类型分页查询部门列表
*
* @param typeKey 部门类型
* @param pageSize 页容量
* @param pageIndex 页码
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/12/17 16:03
*/
@GetMapping("pageDeptIdByTypeKey/{typeKey}/{pageSize}/{pageIndex}")
public Result<List<Long>> pageDeptIdByTypeKey(@PathVariable("typeKey") String typeKey,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("pageIndex") Integer pageIndex) {
return sysDeptService.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex);
}
/**
* 根据部门id获取部门层级关系获取部门领导姓名
*
* @param deptId 部门id
* @param leaderFlag 是否需要查询网格长姓名 0 1
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO>
* @author work@yujt.net.cn
* @date 2019/12/18 11:04
*/
@GetMapping("getDeptInfoById/{deptId}/{leaderFlag}")
public Result<DeptLevelAndLeaderDTO> getDeptInfoById(@PathVariable("deptId") Long deptId,
@PathVariable("leaderFlag") String leaderFlag) {
DeptLevelAndLeaderDTO dto = sysDeptService.getDeptInfoById(deptId, leaderFlag);
return new Result<DeptLevelAndLeaderDTO>().ok(dto);
}
}

51
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java

@ -8,31 +8,31 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.SysRoleDTO;
import com.elink.esua.epdc.service.AppRoleMenuService;
import com.elink.esua.epdc.service.SysRoleDataScopeService;
import com.elink.esua.epdc.service.SysRoleMenuService;
import com.elink.esua.epdc.service.SysRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.SysRoleDTO;
import com.elink.esua.epdc.service.AppRoleMenuService;
import com.elink.esua.epdc.service.SysRoleDataScopeService;
import com.elink.esua.epdc.service.SysRoleMenuService;
import com.elink.esua.epdc.service.SysRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 角色管理
@ -92,7 +92,6 @@ public class SysRoleController {
//查询角色对应app菜单权限
List<Long> appMenuIdList = appRoleMenuService.getAppMenuIdList(id);
data.setAppMenuIdList(appMenuIdList);
return new Result<SysRoleDTO>().ok(data);
}

14
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -88,6 +88,20 @@ public class SysUserController {
return new Result<SysUserDTO>().ok(data);
}
/**
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @Author yinzuomei
* @Description 查询用户角色Id
* @Date 2020/2/3 8:13
**/
@GetMapping("getRoleIdList/{userId}")
public Result<List<Long>> getRoleIdList(@PathVariable("userId") Long userId) {
//用户角色列表
List<Long> roleIdList = sysRoleUserService.getRoleIdList(userId);
return new Result<List<Long>>().ok(roleIdList);
}
@GetMapping("info")
@ApiOperation("登录用户信息")
public Result<SysUserDTO> info(@ApiIgnore UserDetail user) {

36
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java

@ -9,6 +9,7 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.DeptTreeDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
@ -156,4 +157,39 @@ public interface SysDeptDao extends BaseDao<SysDeptEntity> {
List<CompleteDeptDTO> selectListCompleteDeptDTO(Map<String, Object> params);
List<DeptTreeDTO> selectListDeptTreeForEpiDemic();
/***
* 查询所有网格
* @param
* @return java.util.List<java.lang.Long>
* @author qushutong
* @date 2019/12/12 18:12
*/
List<Long> selectListAllGridId();
/**
* 按部门类型分页查询部门列表
*
* @param typeKey 部门类型
* @param pageSize 页容量
* @param pageIndex 页码
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2019/12/17 16:11
*/
List<Long> pageDeptIdByTypeKey(@Param("typeKey") String typeKey,
@Param("pageSize") Integer pageSize,
@Param("pageIndex") Integer pageIndex);
/**
* 根据部门id查询该部门指定角色的用户姓名
*
* @param deptId 部门id
* @param roleType 角色类型
* @return java.lang.String
* @author work@yujt.net.cn
* @date 2019/12/18 13:45
*/
String selectDeptLeaderName(@Param("deptId") Long deptId, @Param("roleType") String roleType);
}

18
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleDao.java

@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
@ -12,6 +12,10 @@ import com.elink.esua.epdc.entity.SysRoleEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.SysRoleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 角色管理
@ -22,4 +26,14 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysRoleDao extends BaseDao<SysRoleEntity> {
/**
* 根据角色类型获取机构的此类角色数量
*
* @param roleType
* @param deptIdList
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author work@yujt.net.cn
* @date 2019/12/18 10:20
*/
List<Map<String, Object>> selectAmountByRoleTpye(@Param("roleType") String roleType, @Param("deptIdList") List<Long> deptIdList);
}

37
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -79,11 +79,11 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* 通过网格ID获取该网格所有上级机构
*
* @param deptId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CompleteDeptDTO>
* @return com.elink.esua.epdc.dto.CompleteDeptDTO
* @author yujintao
* @date 2019/9/7 09:13
*/
Result<ParentAndAllDeptDTO> getParentAndAllDept(String deptId);
ParentAndAllDeptDTO getParentAndAllDept(String deptId);
/**
* 通过街道ID获取项目可流转部门
@ -172,7 +172,6 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
**/
List<UserSysDeptInfoResultDTO> listUserSysDeptInfoResultDTO(UserSysDeptInfoFormDTO formDTO);
/***
* 组装所有部门
* @param
@ -212,18 +211,40 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
*
* @return com.elink.esua.epdc.dto.DeptOption
* @author work@yujt.net.cn
* @date 2020/1/28 10:40
*/
DeptOption getAllDeptOptionByLoginUser();
/***
* 获取所有网格
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author qushutong
* @date 2019/12/12 17:29
*/
Result<List<Long>> listAllGridId();
/**
* 获取用户部门层级结构街道-社区用户前端显示请求需携带token
* 按部门类型分页查询部门列表
*
* @return com.elink.esua.epdc.dto.DeptOption
* @param typeKey 部门类型
* @param pageSize 页容量
* @param pageIndex 页码
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author work@yujt.net.cn
* @date 2019/12/17 16:05
*/
Result<List<Long>> pageDeptIdByTypeKey(String typeKey, Integer pageSize, Integer pageIndex);
/**
* 根据部门id获取部门层级关系获取部门领导姓名
*
* @param deptId 部门id
* @param leaderFlag 是否需要查询网格长姓名 0 1
* @return com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO
* @author work@yujt.net.cn
* @date 2020/2/10 13:38
* @date 2019/12/18 11:05
*/
DeptOption getMiddleByLoginUser();
@ -235,4 +256,6 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @date 2020/2/11 11:31
*/
DeptOption getStreetByLoginUser();
DeptLevelAndLeaderDTO getDeptInfoById(Long deptId, String leaderFlag);
}

1
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleService.java

@ -35,5 +35,4 @@ public interface SysRoleService extends BaseService<SysRoleEntity> {
void update(SysRoleDTO dto);
void delete(Long[] ids);
}

84
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -14,8 +14,14 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.constant.*;
import com.elink.esua.epdc.commons.tools.constant.*;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
@ -27,6 +33,7 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
import com.elink.esua.epdc.constant.RoleTypeKeyConstant;
import com.elink.esua.epdc.dao.SysDeptDao;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
@ -254,7 +261,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
}
@Override
public Result<ParentAndAllDeptDTO> getParentAndAllDept(String deptId) {
public ParentAndAllDeptDTO getParentAndAllDept(String deptId) {
Long deptIdL = null;
try {
deptIdL = Long.parseLong(deptId.trim());
@ -262,7 +269,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
log.error("->getCompleteDept:::部门ID格式转换异常:::deptId->{}", deptId);
}
if (null == deptIdL) {
return new Result().error("参数格式异常");
throw new RenException("参数格式异常");
}
CompleteDeptDTO completeDept = this.baseDao.getParentAndAllDept(deptIdL);
ParentAndAllDeptDTO parentAndAllDeptDTO = new ParentAndAllDeptDTO();
@ -285,11 +292,11 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
parentAndAllDeptDTO.setAllDeptIds(deptIds);
parentAndAllDeptDTO.setAllDeptNames(deptNames);
} else {
return new Result().error("部门Id错误");
throw new RenException("部门Id错误");
}
return new Result().ok(parentAndAllDeptDTO);
return parentAndAllDeptDTO;
}
@Override
@ -499,7 +506,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
packageDeptOptionByUser(userId, false);
}
private void packageAllUserDeptOption(Long userId) {
public void packageAllUserDeptOption(Long userId) {
packageDeptOptionByUser(userId, true);
}
@ -822,6 +829,73 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return new PageData<>(userDtoList, iPage.getTotal());
}
@Override
public Result<List<Long>> listAllGridId() {
List<Long> gridIdList = baseDao.selectListAllGridId();
return new Result<List<Long>>().ok(gridIdList);
}
@Override
public Result<List<Long>> pageDeptIdByTypeKey(String typeKey, Integer pageSize, Integer pageIndex) {
if (null == pageSize || null == pageIndex || pageSize < NumConstant.ONE || pageIndex < NumConstant.ONE) {
return new Result().error("参数错误");
}
pageIndex = (pageIndex - NumConstant.ONE) * pageSize;
List<Long> deptIdList = baseDao.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex);
return new Result().ok(deptIdList);
}
@Override
public DeptLevelAndLeaderDTO getDeptInfoById(Long deptId, String leaderFlag) {
if (null == deptId || null == leaderFlag) {
return null;
}
SysDeptEntity sysDeptEntity = baseDao.selectById(deptId);
if (null == sysDeptEntity) {
return null;
}
String deptName = sysDeptEntity.getName();
String pids = sysDeptEntity.getPids();
// 上级机构id
String parentDeptIds = NumConstant.ZERO_STR.equals(pids) ? "" : pids;
// 全部机构id
String allDeptIds = StringUtils.isBlank(pids) ? String.valueOf(deptId) :
pids.concat(StrConstant.COMMA).concat(String.valueOf(deptId));
// 上级机构名称
String parentDeptNames = "";
if (StringUtils.isNotBlank(parentDeptIds)) {
String[] pidArray = parentDeptIds.split(StrConstant.COMMA);
List<String> deptNameList = Lists.newArrayList();
SysDeptEntity dept;
for (int i = 0; i < pidArray.length; i++) {
dept = baseDao.selectById(Long.parseLong(pidArray[i]));
deptNameList.add(dept.getName());
}
parentDeptNames = StringUtils.join(deptNameList, StrConstant.HYPHEN);
}
// 全部机构名称
String allDeptNames = StringUtils.isBlank(parentDeptNames) ? deptName : parentDeptNames.concat(StrConstant.HYPHEN).concat(deptName);
DeptLevelAndLeaderDTO deptLevel = new DeptLevelAndLeaderDTO();
deptLevel.setDeptId(deptId);
deptLevel.setDeptName(deptName);
deptLevel.setParentDeptIds(parentDeptIds);
deptLevel.setParentDeptNames(parentDeptNames);
deptLevel.setAllDeptIds(allDeptIds);
deptLevel.setAllDeptNames(allDeptNames);
deptLevel.setTypeKey(sysDeptEntity.getTypeKey());
if (YesOrNoEnum.YES.value().equals(leaderFlag)) {
String leaderName = baseDao.selectDeptLeaderName(deptId, RoleTypeKeyConstant.ROLE_GRID_LEADER);
deptLevel.setLeaderName(leaderName);
}
redisUtils.set(RedisKeys.getDeptOptionKey(deptId), deptLevel);
return deptLevel;
}
/**
*
* 组织机构名称修改发送MQ消息

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java

@ -134,7 +134,7 @@ public class SysDictServiceImpl extends BaseServiceImpl<SysDictDao, SysDictEntit
}
QueryWrapper<SysDictEntity> sdWrapper = new QueryWrapper<>();
sdWrapper.select("dict_value", "dict_name");
sdWrapper.select("dict_value", "dict_name","remark");
sdWrapper.eq("dict_type", dictType);
sdWrapper.ne("dict_value", "");
sdWrapper.isNotNull("dict_value");

46
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java

@ -8,17 +8,23 @@
package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.constant.RoleTypeKeyConstant;
import com.elink.esua.epdc.dao.SysRoleDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysRoleDTO;
import com.elink.esua.epdc.entity.SysRoleEntity;
import com.elink.esua.epdc.service.*;
@ -101,6 +107,8 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit
public void save(SysRoleDTO dto) {
SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class);
checkDeptRoleAmount(dto.getTypeKey(), dto.getDeptIdList());
//保存角色
insert(entity);
@ -112,6 +120,43 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit
//保存角色与app菜单关系
appRoleMenuService.saveOrUpdate(entity.getId(), dto.getAppMenuIdList());
}
/**
* 根据角色类型获取机构的此类角色数量
*
* @param roleType 角色类型
* @param deptidList 机构id列表
* @return void
* @author work@yujt.net.cn
* @date 2019/12/18 10:14
*/
private void checkDeptRoleAmount(String roleType, List<Long> deptidList) {
if (RoleTypeKeyConstant.ROLE_GRID_LEADER.equals(roleType)) {
List<Map<String, Object>> resultList = baseDao.selectAmountByRoleTpye(roleType, deptidList);
if (CollUtil.isEmpty(resultList)) {
return;
}
Map<String, Object> map;
String mapValue;
for (int i = 0; i < resultList.size(); i++) {
map = resultList.get(i);
mapValue = map.get("typeKey").toString();
if (!mapValue.equals(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY)) {
continue;
}
mapValue = map.get("amount").toString();
if (Integer.parseInt(mapValue) <= NumConstant.THREE) {
continue;
}
mapValue = map.get("id").toString();
ParentAndAllDeptDTO parentAndAllDept = sysDeptService.getParentAndAllDept(mapValue);
throw new RenException("保存失败:" + parentAndAllDept.getAllDeptNames() + ",网格长多于3人");
}
}
}
@Override
@ -130,6 +175,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit
//更新角色与app菜单关系
appRoleMenuService.saveOrUpdate(entity.getId(), dto.getAppMenuIdList());
}
@Override

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java

@ -191,7 +191,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
@Override
public Result<GridLeaderRegisterDTO> listGridWhileLeaderRegister(String mobile) {
//TODO:该方法的获取组织结构不灵活,得重构 create by rongchao
QueryWrapper<SysUserEntity> wrapper = new QueryWrapper<>();
wrapper.eq(FieldConstant.MOBILE, mobile)
.eq(FieldConstant.DEL_FLAG, DelFlagEnum.NORMAL.value());

10
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/logback-spring.xml

@ -144,10 +144,10 @@
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="ERROR"/>
<logger name="org.springboot.sample" level="ERROR"/>
<logger name="com.elink.esua.epdc" level="ERROR"/>
<root level="ERROR">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
@ -156,4 +156,4 @@
</root>
</springProfile>
</configuration>
</configuration>

91
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -5,7 +5,7 @@
<select id="getList" resultType="com.elink.esua.epdc.entity.SysDeptEntity">
select t1.*,(select t2.name from sys_dept t2 where t2.id=t1.pid)parentName from sys_dept t1
where t1.del_flag = 0
where t1.del_flag = 0
<if test="deptIdList != null">
and t1.id in
<foreach item="id" collection="deptIdList" open="(" separator="," close=")">
@ -138,7 +138,7 @@
sys_dept d
LEFT JOIN sys_dept d1 ON d.pids LIKE CONCAT( '%', d1.id, '%' )
WHERE
d.id IN <foreach collection="dataScopeDeptList" item="deptId" open="(" separator="," close=")" > #{deptId} </foreach>
d.id IN <foreach collection="dataScopeDeptList" item="deptId" open="(" separator="," close=")">#{deptId}</foreach>
AND d1.pid = 0
GROUP BY d1.id
ORDER BY d1.create_date ASC
@ -147,8 +147,8 @@
SELECT
tem2.*
FROM
( SELECT * FROM sys_dept d1 WHERE d1.id IN <foreach collection="dataScopeDeptList" item="item" open="(" separator="," close=")" > #{item} </foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE d2.pid IN <foreach collection="parentDeptIdList" item="deptId" open="(" separator="," close=")" > #{deptId} </foreach>) tem2
( SELECT * FROM sys_dept d1 WHERE d1.id IN <foreach collection="dataScopeDeptList" item="item" open="(" separator="," close=")">#{item}</foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE d2.pid IN <foreach collection="parentDeptIdList" item="deptId" open="(" separator="," close=")">#{deptId}</foreach>) tem2
WHERE
( tem1.PIDS LIKE CONCAT( '%', tem2.id, '%' ) OR tem1.PID = tem2.ID )
OR ( tem2.ID = tem1.ID AND NOT EXISTS ( SELECT 1 FROM sys_dept d WHERE d.PID = tem2.ID ) )
@ -160,35 +160,66 @@
<select id="selectListUserSysDeptInfo" parameterType="com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO"
resultType="com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO">
SELECT
sd.id,
sd.NAME,
sd.pid,
p.NAME AS parentName,
sd.pids,
NULL AS parentNames,
null as street,
null as community,
(case
when sd.type_key='grid_party' then sd.name
else null
end) as grid
sd.id,
sd.NAME,
sd.pid,
p.NAME AS parentName,
sd.pids,
NULL AS parentNames,
null as street,
null as community,
(case
when sd.type_key='grid_party' then sd.name
else null
end) as grid
FROM
sys_dept sd
LEFT JOIN sys_dept p ON ( sd.pid = p.id )
WHERE
sd.del_flag = '0'
<if test="typeKeyList!=null and typeKeyList.size()>0">
AND sd.type_key in
<foreach collection="typeKeyList" item="typeKey" index="index" open="(" close=")" separator=",">
#{typeKey}
</foreach>
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
AND sd.id IN
<foreach collection="deptIdList" item="deptId" index="index" open="(" close=")" separator=",">
#{deptId}
</foreach>
</if>
</select>
<!--查询所有网格-->
<select id="selectListAllGridId" resultType="Long">
SELECT
sd.id
FROM
sys_dept sd
LEFT JOIN sys_dept p ON ( sd.pid = p.id )
WHERE
sd.del_flag = '0'
<if test="typeKeyList!=null and typeKeyList.size()>0">
AND sd.type_key in
<foreach collection="typeKeyList" item="typeKey" index="index" open="(" close=")" separator=",">
#{typeKey}
</foreach>
</if>
<if test="deptIdList!=null and deptIdList.size()>0">
AND sd.id IN
<foreach collection="deptIdList" item="deptId" index="index" open="(" close=")" separator=",">
#{deptId}
</foreach>
</if>
sd.type_key = 'grid_party'
</select>
<select id="pageDeptIdByTypeKey" resultType="java.lang.Long">
SELECT d.id FROM sys_dept d
WHERE d.type_key = #{typeKey} AND d.del_flag = '0' AND d.id != 0
ORDER BY d.create_date ASC
LIMIT #{pageIndex},#{pageSize}
</select>
<select id="selectDeptLeaderName" resultType="java.lang.String">
SELECT
GROUP_CONCAT( u.real_name ) gridLeader
FROM
sys_dept d
LEFT JOIN sys_role_data_scope rds ON rds.dept_id = d.id
LEFT JOIN sys_role r ON rds.role_id = r.id
LEFT JOIN sys_role_user ru ON ru.role_id = r.id
LEFT JOIN sys_user u ON u.id = ru.user_id
WHERE
r.type_key = #{roleType} AND d.id = #{deptId} AND u.id != ''
GROUP BY d.id
</select>
<!--获取所有部门tree-->

15
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysRoleDao.xml

@ -3,4 +3,19 @@
<mapper namespace="com.elink.esua.epdc.dao.SysRoleDao">
<select id="selectAmountByRoleTpye" resultType="java.util.Map">
SELECT
d.id, d.type_key typeKey, count( u.real_name) amount
FROM
sys_dept d
LEFT JOIN sys_role_data_scope rds ON rds.dept_id = d.id
LEFT JOIN sys_role r ON rds.role_id = r.id
LEFT JOIN sys_role_user ru ON ru.role_id = r.id
LEFT JOIN sys_user u ON u.id = ru.user_id
WHERE
r.type_key = #{roleType} AND u.id != ''
AND d.id in (<foreach collection="deptIdList" item="item" separator=",">#{item}</foreach>)
GROUP BY
d.id
</select>
</mapper>

355
esua-epdc/epdc-module/epdc-events/db/esua_epdc_events.pdman.json

@ -2679,8 +2679,361 @@
"defaultValue": ""
}
]
},
{
"title": "EPDC_HANDLE_CATEGORY",
"fields": [
{
"name": "ID",
"type": "IdOrKey",
"remark": "",
"chnname": "主键",
"pk": true,
"notNull": true
},
{
"name": "CATEGORY_CODE",
"type": "IdOrKey",
"remark": "",
"chnname": "处理类型编码",
"notNull": true
},
{
"name": "CATEGORY_VAL",
"type": "Integer",
"remark": "",
"chnname": "处理类别值",
"notNull": true
},
{
"name": "CATEGORY_LABEL",
"type": "VARCHAR_20",
"remark": "",
"chnname": "处理类别显示信息",
"notNull": true
},
{
"name": "AVAILABLE",
"type": "YesNo",
"remark": "",
"chnname": "可用状态(0-不可用,1-可用)",
"notNull": true,
"defaultValue": "1"
},
{
"name": "SORT",
"type": "Integer",
"remark": "",
"chnname": "排序",
"notNull": true,
"defaultValue": "0"
},
{
"name": "REVISION",
"type": "Integer",
"remark": "",
"chnname": "乐观锁"
},
{
"name": "CREATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "创建人"
},
{
"name": "CREATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "创建时间"
},
{
"name": "UPDATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "更新人"
},
{
"name": "UPDATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "更新时间"
}
],
"indexs": [],
"headers": [
{
"fieldName": "chnname",
"relationNoShow": false
},
{
"fieldName": "name",
"relationNoShow": false
},
{
"fieldName": "type",
"relationNoShow": false
},
{
"fieldName": "dataType",
"relationNoShow": true
},
{
"fieldName": "remark",
"relationNoShow": true
},
{
"fieldName": "pk",
"relationNoShow": false
},
{
"fieldName": "notNull",
"relationNoShow": true
},
{
"fieldName": "autoIncrement",
"relationNoShow": true
},
{
"fieldName": "defaultValue",
"relationNoShow": true
},
{
"fieldName": "relationNoShow",
"relationNoShow": true
},
{
"fieldName": "uiHint",
"relationNoShow": true
}
],
"chnname": "处理类别表",
"remark": "处理类别表"
},
{
"title": "EPDC_HANDLE_ROLE_CATEGORY",
"fields": [
{
"name": "ID",
"type": "IdOrKey",
"remark": "",
"chnname": "主键",
"pk": true,
"notNull": true
},
{
"name": "ROLE_ID",
"type": "IdOrKey",
"remark": "",
"chnname": "角色ID",
"notNull": true
},
{
"name": "CATEGORY_ID",
"type": "IdOrKey",
"remark": "",
"chnname": "处理类别ID",
"notNull": true
},
{
"name": "REVISION",
"type": "Integer",
"remark": "",
"chnname": "乐观锁"
},
{
"name": "CREATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "创建人"
},
{
"name": "CREATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "创建时间"
},
{
"name": "UPDATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "更新人"
},
{
"name": "UPDATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "更新时间"
}
],
"indexs": [],
"headers": [
{
"fieldName": "chnname",
"relationNoShow": false
},
{
"fieldName": "name",
"relationNoShow": false
},
{
"fieldName": "type",
"relationNoShow": false
},
{
"fieldName": "dataType",
"relationNoShow": true
},
{
"fieldName": "remark",
"relationNoShow": true
},
{
"fieldName": "pk",
"relationNoShow": false
},
{
"fieldName": "notNull",
"relationNoShow": true
},
{
"fieldName": "autoIncrement",
"relationNoShow": true
},
{
"fieldName": "defaultValue",
"relationNoShow": true
},
{
"fieldName": "relationNoShow",
"relationNoShow": true
},
{
"fieldName": "uiHint",
"relationNoShow": true
}
],
"chnname": "角色和处理类别关系表",
"remark": "角色和处理类别关系表"
},
{
"title": "EPDC_HANDLE_ROLE_DEPT",
"fields": [
{
"name": "ID",
"type": "IdOrKey",
"remark": "",
"chnname": "主键",
"pk": true,
"notNull": true
},
{
"name": "ROLE_ID",
"type": "IdOrKey",
"remark": "",
"chnname": "角色ID",
"notNull": true
},
{
"name": "DEPT_ID",
"type": "IdOrKey",
"remark": "",
"chnname": "部门ID",
"notNull": true
},
{
"name": "DEPT_TYPE",
"type": "VARCHAR_50",
"remark": "",
"chnname": "部门机构类型",
"notNull": true
},
{
"name": "REVISION",
"type": "Integer",
"remark": "",
"chnname": "乐观锁"
},
{
"name": "CREATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "创建人"
},
{
"name": "CREATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "创建时间"
},
{
"name": "UPDATED_BY",
"type": "IdOrKey",
"remark": "",
"chnname": "更新人"
},
{
"name": "UPDATED_TIME",
"type": "DateTime",
"remark": "",
"chnname": "更新时间"
}
],
"indexs": [],
"headers": [
{
"fieldName": "chnname",
"relationNoShow": false
},
{
"fieldName": "name",
"relationNoShow": false
},
{
"fieldName": "type",
"relationNoShow": false
},
{
"fieldName": "dataType",
"relationNoShow": true
},
{
"fieldName": "remark",
"relationNoShow": true
},
{
"fieldName": "pk",
"relationNoShow": false
},
{
"fieldName": "notNull",
"relationNoShow": true
},
{
"fieldName": "autoIncrement",
"relationNoShow": true
},
{
"fieldName": "defaultValue",
"relationNoShow": true
},
{
"fieldName": "relationNoShow",
"relationNoShow": true
},
{
"fieldName": "uiHint",
"relationNoShow": true
}
],
"chnname": "处理部门角色权限表",
"remark": "处理部门角色权限表"
}
]
],
"graphCanvas": {
"nodes": [],
"edges": []
},
"associations": []
}
],
"dataTypeDomains": {

17
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ItemEvaluationLevel.java

@ -0,0 +1,17 @@
package com.elink.esua.epdc.constant;
/**
* @author: qushutong
* @Date: 2019/12/20 15:53
* @Description: 评价结果0-不满意1-基本满意2-非常满意
*/
public interface ItemEvaluationLevel {
String levaluationLevelBad = "0";
String levaluationLevelBetter = "1";
String levaluationLevelBest = "2";
}

50
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/form/SubmitCommentFormDTO.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.dto.comment.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @Description 议题提交评论DTO
* @Author yinzuomei
* @Date 2019/12/18 16:56
*/
@Data
public class SubmitCommentFormDTO implements Serializable {
private static final long serialVersionUID = -3253699905608729529L;
private String issueId;
private String itemId;
/**
* 父评论被评论ID
*/
private String faCommentId;
@Size(min = 1, max = 500, message = "评论内容不能超过500字")
private String content;
/**
* 评论人ID
*/
@NotBlank(message = "评论人ID不能为空")
private String userId;
/**
* 评论人昵称
*/
private String userName;
/**
* 评论人头像
*/
private String userFace;
/**
* 党员标识0-1-
*/
private String partyFlag;
}

32
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.dto.events.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author: qushutong
* @Date: 2019/12/16 14:52
* @Description: 查询参数
*/
@Data
public class EventCountSqlFromDTO implements Serializable {
private static final long serialVersionUID = 4648104037156856679L;
/***
* 网格id
*/
private Long gridId;
/***
* 0,1,2
*/
private String type;
/***
* 0 是群众反应问题总数 1 群众反应问题响应数
*/
private String responseType;
}

3
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java

@ -7,6 +7,7 @@ import java.util.List;
/**
* 项目处理类型枚举
*
* @Author LC
* @Date 2019/9/16 14:00
*/
@ -28,7 +29,7 @@ public enum ItemHandleCategoryEnum {
public static List<ItemHandleResultDTO> getHandleCategoriesForGird(boolean selected) {
List<ItemHandleResultDTO> handleResultDTOS = new ArrayList<>();
for (ItemHandleCategoryEnum e:
for (ItemHandleCategoryEnum e :
ItemHandleCategoryEnum.values()) {
if (e.getValue() != ItemHandleCategoryEnum.HANDLE_REPORT.getValue()) {
ItemHandleResultDTO dto = new ItemHandleResultDTO();

2
esua-epdc/epdc-module/epdc-events/epdc-events-server/Dockerfile

@ -1,5 +1,5 @@
# 基础镜像
FROM adoptopenjdk/openjdk11
FROM openjdk:8u242-jre-buster
# 作者
MAINTAINER rongchao@elink-cn.com
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值

67
esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml

@ -13,6 +13,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-kpi-client</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-events-client</artifactId>
@ -62,6 +67,10 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>-->
<!--版本控制-->
<dependency>
<groupId>com.esua.epdc</groupId>
@ -179,6 +188,14 @@
<rocketmq.producer.category.group>categoryGroup</rocketmq.producer.category.group>
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
<!--<properties>
<server.port>9066</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>513d6635-3cfe-401f-b8b6-a04417288f47</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
<docker.tag>dev</docker.tag>
</properties>-->
</profile>
<profile>
@ -206,11 +223,8 @@
<docker.tag>test</docker.tag>
<!--小程序配置-->
<!-- <wx.ma.appId>wxdd8530c5f4926766</wx.ma.appId>-->
<!-- <wx.ma.secret>5bf4fb813145431b3493a10aa7e041e9</wx.ma.secret>-->
<wx.ma.appId>wx5d3e97461d248397</wx.ma.appId>
<wx.ma.secret>bfed51b731e53db9affb9e6131e7ae12</wx.ma.secret>
<wx.ma.appId>wxdd8530c5f4926766</wx.ma.appId>
<wx.ma.secret>5bf4fb813145431b3493a10aa7e041e9</wx.ma.secret>
<!--工作端小程序-->
<work.wx.ma.appId>wx9f20a46906ab2c3e</work.wx.ma.appId>
<work.wx.ma.secret>dc13065f79429979d9f687d249eb5c4e</work.wx.ma.secret>
@ -223,6 +237,14 @@
<rocketmq.producer.category.group>categoryGroup</rocketmq.producer.category.group>
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
<!--<properties>
<server.port>9066</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
<docker.tag>test</docker.tag>
</properties>-->
</profile>
<profile>
@ -340,6 +362,41 @@
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
</profile>
<profile>
<id>prod_jinshui</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<server.port>9066</server.port>
<docker.tag>prod</docker.tag>
<!--居民端小程序配置-->
<wx.ma.appId>wx6dcf544cdae7d4ec</wx.ma.appId>
<wx.ma.secret>9e0882274ad3821400370312a56a8470</wx.ma.secret>
<!--工作端小程序-->
<work.wx.ma.appId>wxddb240334d09049f</work.wx.ma.appId>
<work.wx.ma.secret>071b8c70da0d0482aaf79052e64f83bc</work.wx.ma.secret>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.19.0.11</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>epdc!redis@master1405</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.20.0.4:80</nacos.server-addr>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.19.0.2:3306/esua_epdc_events?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epdc</spring.datasource.druid.username>
<spring.datasource.druid.password>Elink@833066</spring.datasource.druid.password>
</properties>
</profile>
</profiles>
</project>

6
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/controller/CategoryController.java

@ -26,8 +26,8 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.category.CategoryDTO;
import com.elink.esua.epdc.dto.category.CategoryOption;
import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.dto.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.modules.category.excel.CategoryExcel;
import com.elink.esua.epdc.modules.category.service.CategoryService;
import io.swagger.annotations.ApiOperation;
@ -134,7 +134,7 @@ public class CategoryController {
/**
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO>>
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.result.CategoryInfoResultDTO>>
* @Author yinzuomei
* @Description 根据id查询事件分类基本信息
* @Date 2019/12/4 9:43

16
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/entity/CategoryEntity.java

@ -17,13 +17,13 @@
package com.elink.esua.epdc.modules.category.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
@ -69,6 +69,11 @@ public class CategoryEntity extends BaseEntity {
*/
private Integer sort;
/**
* 第三方平台分类编码
*/
private String infoCode;
/**
* 删除标识 0未删除 1删除
*/
@ -99,11 +104,6 @@ public class CategoryEntity extends BaseEntity {
@TableField(exist = false)
private String label;
/**
* 第三方平台分类编码
*/
private String infoCode;
/**
* 启用标识0-1-
*/

6
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/CategoryService.java

@ -21,8 +21,8 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.category.CategoryDTO;
import com.elink.esua.epdc.dto.category.CategoryOption;
import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.dto.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.modules.category.entity.CategoryEntity;
import org.springframework.web.multipart.MultipartFile;
@ -125,7 +125,7 @@ public interface CategoryService extends BaseService<CategoryEntity> {
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO>
* @return java.util.List<com.elink.esua.epdc.dto.result.CategoryInfoResultDTO>
* @Author yinzuomei
* @Description 根据id查询事件分类基本信息
* @Date 2019/12/4 9:43

254
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/impl/CategoryServiceImpl.java

@ -17,12 +17,14 @@
package com.elink.esua.epdc.modules.category.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
@ -35,8 +37,8 @@ import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
import com.elink.esua.epdc.dto.category.CategoryDTO;
import com.elink.esua.epdc.dto.category.CategoryOption;
import com.elink.esua.epdc.dto.category.CategoryTreeDTO;
import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.dto.form.CategoryInfoFormDTO;
import com.elink.esua.epdc.dto.result.CategoryInfoResultDTO;
import com.elink.esua.epdc.modules.category.dao.CategoryDao;
import com.elink.esua.epdc.modules.category.entity.CategoryEntity;
import com.elink.esua.epdc.modules.category.redis.CategoryRedis;
@ -583,127 +585,141 @@ public class CategoryServiceImpl extends BaseServiceImpl<CategoryDao, CategoryEn
return new Result<CategoryOption>().ok((CategoryOption) obj);
}
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO>
* @Author yinzuomei
* @Description 根据id查询事件分类基本信息
* @Date 2019/12/4 9:43
**/
@Override
public List<CategoryInfoResultDTO> listCategoryInfo(CategoryInfoFormDTO formDTO) {
List<CategoryInfoResultDTO> categoryInfoResultDTOList = new ArrayList<>();
for (Long id : formDTO.getIds()) {
CategoryEntity entity = baseDao.getById(id);
if (null != entity) {
List<String> parentNameList = new ArrayList<>();
if (StringUtils.isNotBlank(entity.getPids())) {
String[] pidList = entity.getPids().split(",");
for (String pid : pidList) {
CategoryEntity parentEntity = baseDao.getById(Long.valueOf(pid));
parentNameList.add(parentEntity.getCategoryName());
}
}
CategoryInfoResultDTO categoryInfoResultDTO = ConvertUtils.sourceToTarget(entity, CategoryInfoResultDTO.class);
categoryInfoResultDTO.setParentNames(parentNameList);
categoryInfoResultDTOList.add(categoryInfoResultDTO);
}
}
return categoryInfoResultDTOList;
}
/**
* @param
* @return void
* @Author yinzuomei
* @Description 组装事件类别
* @Date 2019/12/3 18:18
**/
@Override
public void packageCategoryOption() {
List<CategoryTreeDTO> dtoList = baseDao.selectListCategoryTreeDTO();
JSONObject node;
JSONArray headNodes = new JSONArray();
for (CategoryTreeDTO categoryTreeDto : dtoList) {
if (categoryTreeDto.getPid().longValue() == NumConstant.ZERO_L) {
node = new JSONObject();
node.put("value", categoryTreeDto.getId());
node.put("label", categoryTreeDto.getCategoryName());
headNodes.add(node);
}
}
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.result.CategoryInfoResultDTO>
* @Author yinzuomei
* @Description 根据id查询事件分类基本信息
* @Date 2019/12/4 9:43
**/
@Override
public List<CategoryInfoResultDTO> listCategoryInfo(CategoryInfoFormDTO formDTO) {
List<CategoryInfoResultDTO> result = Lists.newArrayList();
CategoryInfoResultDTO categoryInfoResult;
for (Long id : formDTO.getIds()) {
CategoryEntity entity = baseDao.getById(id);
if (null == entity) {
continue;
}
if(StringUtils.isBlank(entity.getPids())){
categoryInfoResult = ConvertUtils.sourceToTarget(entity, CategoryInfoResultDTO.class);
result.add(categoryInfoResult);
continue;
}
List<String> parentNameList = Lists.newArrayList();
String[] pidList = entity.getPids().split(StrConstant.COMMA);
if (null != pidList && pidList.length > NumConstant.ZERO) {
CategoryEntity parentEntity;
for (int i = 0; i < pidList.length; i++) {
parentEntity = baseDao.getById(Long.valueOf(pidList[i]));
if (null != parentEntity) {
parentNameList.add(parentEntity.getCategoryName());
}
}
}
categoryInfoResult = ConvertUtils.sourceToTarget(entity, CategoryInfoResultDTO.class);
if (CollUtil.isNotEmpty(parentNameList)) {
categoryInfoResult.setParentNames(StringUtils.join(parentNameList, StrConstant.HYPHEN));
}
result.add(categoryInfoResult);
}
return result;
}
/**
* @param
* @return void
* @Author yinzuomei
* @Description 组装事件类别
* @Date 2019/12/3 18:18
**/
@Override
public void packageCategoryOption() {
List<CategoryTreeDTO> dtoList = baseDao.selectListCategoryTreeDTO();
JSONObject node;
JSONArray headNodes = new JSONArray();
for (CategoryTreeDTO categoryTreeDto : dtoList) {
if (categoryTreeDto.getPid().longValue() == NumConstant.ZERO_L) {
node = new JSONObject();
node.put("value", categoryTreeDto.getId());
node.put("label", categoryTreeDto.getCategoryName());
headNodes.add(node);
}
}
// 用于存放所有父级节点
JSONArray parent;
// 用于存放所有子级节点
JSONArray allChildren = new JSONArray();
JSONArray children;
// 用于存放单个子级节点
JSONObject childNode;
parent = headNodes;
// 存放其余未处理的类别(节点)
List<CategoryTreeDTO> others = this.getOtherCategory(dtoList, parent);
while (!others.isEmpty()) {
for (int i = 0; i < parent.size(); i++) {
node = parent.getJSONObject(i);
children = new JSONArray();
for (CategoryTreeDTO categoryTreeDto : others) {
if (categoryTreeDto.getPid().equals(node.get("value"))) {
childNode = new JSONObject();
childNode.put("value", categoryTreeDto.getId());
childNode.put("label", categoryTreeDto.getCategoryName());
children.add(childNode);
allChildren.add(childNode);
}
}
if (!children.isEmpty()) {
node.put("children", children);
}
}
parent = allChildren;
others = this.getOtherCategory(others, parent);
}
// 用于存放所有父级节点
JSONArray parent;
// 用于存放所有子级节点
JSONArray allChildren = new JSONArray();
JSONArray children;
// 用于存放单个子级节点
JSONObject childNode;
parent = headNodes;
// 存放其余未处理的类别(节点)
List<CategoryTreeDTO> others = this.getOtherCategory(dtoList, parent);
while (!others.isEmpty()) {
for (int i = 0; i < parent.size(); i++) {
node = parent.getJSONObject(i);
children = new JSONArray();
for (CategoryTreeDTO categoryTreeDto : others) {
if (categoryTreeDto.getPid().equals(node.get("value"))) {
childNode = new JSONObject();
childNode.put("value", categoryTreeDto.getId());
childNode.put("label", categoryTreeDto.getCategoryName());
children.add(childNode);
allChildren.add(childNode);
}
}
if (!children.isEmpty()) {
node.put("children", children);
}
}
parent = allChildren;
others = this.getOtherCategory(others, parent);
}
// JSONObject treeNodes = new JSONObject();
// treeNodes.put("options", headNodes);
// logger.info(treeNodes.toJSONString());
//存放到redis中
List<JSONArray> cache = Lists.newArrayList();
cache.add(headNodes);
CategoryOption option = new CategoryOption();
option.setOptions(cache.get(0));
redisUtils.set(RedisKeys.getEventsCategoryKey(), option);
}
/*
* @param dtoList 上次进行筛选的分类集合
* @param parent 已处理过的上级节点
* @return java.util.List<com.elink.esua.epdc.dto.category.CategoryTreeDTO>
* @Author yinzuomei
* @Description 组装其余未处理过的分类集合
* @Date 2019/12/3 17:27
**/
private List<CategoryTreeDTO> getOtherCategory(List<CategoryTreeDTO> dtoList, JSONArray parent) {
List<Long> already = Lists.newArrayList();
for (int i = 0; i < parent.size(); i++) {
already.add((Long) parent.getJSONObject(i).get("value"));
}
List<CategoryTreeDTO> others = Lists.newArrayList();
for (CategoryTreeDTO categoryTreeDto : dtoList) {
Long categoryTreeDtoId = categoryTreeDto.getId();
if (!already.contains(categoryTreeDtoId)) {
others.add(categoryTreeDto);
}
}
return others;
}
//存放到redis中
List<JSONArray> cache = Lists.newArrayList();
cache.add(headNodes);
CategoryOption option = new CategoryOption();
option.setOptions(cache.get(0));
redisUtils.set(RedisKeys.getEventsCategoryKey(), option);
}
/*
* @param dtoList 上次进行筛选的分类集合
* @param parent 已处理过的上级节点
* @return java.util.List<com.elink.esua.epdc.dto.category.CategoryTreeDTO>
* @Author yinzuomei
* @Description 组装其余未处理过的分类集合
* @Date 2019/12/3 17:27
**/
private List<CategoryTreeDTO> getOtherCategory(List<CategoryTreeDTO> dtoList, JSONArray parent) {
List<Long> already = Lists.newArrayList();
for (int i = 0; i < parent.size(); i++) {
already.add((Long) parent.getJSONObject(i).get("value"));
}
List<CategoryTreeDTO> others = Lists.newArrayList();
for (CategoryTreeDTO categoryTreeDto : dtoList) {
Long categoryTreeDtoId = categoryTreeDto.getId();
if (!already.contains(categoryTreeDtoId)) {
others.add(categoryTreeDto);
}
}
return others;
}
/**
*

10
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/controller/AppEventCommentController.java

@ -21,8 +21,8 @@ import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.form.CommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.form.SubmitCommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO;
@ -48,13 +48,13 @@ public class AppEventCommentController {
/**AppTopicCommentController
* 提交评论或回复接口
* @param commentFormDTO
* @param submitCommentFormDTO
* @return
*/
@PostMapping("submit")
public Result submit(@RequestBody CommentFormDTO commentFormDTO){
ValidatorUtils.validateEntity(commentFormDTO);
return eventCommentService.submit(commentFormDTO);
public Result submit(@RequestBody SubmitCommentFormDTO submitCommentFormDTO){
ValidatorUtils.validateEntity(submitCommentFormDTO);
return eventCommentService.submit(submitCommentFormDTO);
}
/**

5
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/EventCommentService.java

@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.comment.EpdcCommentsAndAttitudeFromTopicFormDTO;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.CommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.form.SubmitCommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO;
@ -105,9 +106,9 @@ public interface EventCommentService extends BaseService<EventCommentEntity> {
/**
* 提交评论或回复接口
* @param commentFormDTO
* @param submitCommentFormDTO
*/
Result submit(CommentFormDTO commentFormDTO);
Result submit(SubmitCommentFormDTO submitCommentFormDTO);
/**

15
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/impl/EventCommentServiceImpl.java

@ -26,10 +26,9 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.comment.*;
import com.elink.esua.epdc.dto.comment.form.CommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.form.SubmitCommentFormDTO;
import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO;
@ -44,7 +43,6 @@ import com.elink.esua.epdc.modules.comment.entity.EventCommentEntity;
import com.elink.esua.epdc.modules.comment.service.EventCommentService;
import com.elink.esua.epdc.modules.comment.service.EventCommentUserAttitudeService;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.feign.UserFeignClient;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
import com.elink.esua.epdc.modules.issue.service.IssueService;
import com.elink.esua.epdc.modules.item.entity.ItemEntity;
@ -87,9 +85,6 @@ public class EventCommentServiceImpl extends BaseServiceImpl<EventCommentDao, Ev
@Autowired
private EventCommentUserAttitudeService eventCommentUserAttitudeService;
@Autowired
private UserFeignClient userFeignClient;
@Override
public PageData<EventCommentDTO> page(Map<String, Object> params) {
IPage<EventCommentEntity> page = baseDao.selectPage(
@ -144,7 +139,7 @@ public class EventCommentServiceImpl extends BaseServiceImpl<EventCommentDao, Ev
@Override
@Transactional(rollbackFor = Exception.class)
public Result submit(CommentFormDTO commentFormDTO) {
public Result submit(SubmitCommentFormDTO commentFormDTO) {
IssueEntity issueEntity = null;
ItemEntity itemEntity = null;
@ -153,11 +148,7 @@ public class EventCommentServiceImpl extends BaseServiceImpl<EventCommentDao, Ev
commentEntity.setUserId(commentFormDTO.getUserId());
commentEntity.setUserName(commentFormDTO.getUserName());
commentEntity.setUserFace(commentFormDTO.getUserFace());
Result<UserDTO> userDTOResult=userFeignClient.getUserInfoById(commentFormDTO.getUserId());
if(!userDTOResult.success()){
return new Result().error("获取用户信息失败");
}
commentEntity.setPartyFlag(userDTOResult.getData().getPartyFlag());
commentEntity.setPartyFlag(commentFormDTO.getPartyFlag());
boolean isIssue = true;
boolean isComment = true;

36
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java

@ -31,6 +31,8 @@ import com.elink.esua.epdc.dto.events.EpdcEventsDetailDTO;
import com.elink.esua.epdc.dto.events.EpdcRejectEventDetailDTO;
import com.elink.esua.epdc.dto.events.EpdcRejectEventsDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventsReviewFormDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO;
import com.elink.esua.epdc.modules.events.excel.EpdcEventsExcel;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import org.springframework.beans.factory.annotation.Autowired;
@ -56,20 +58,20 @@ public class EpdcEventsController {
@GetMapping("page")
@DataFilter(tableAlias = "temp", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
public Result<PageData<EpdcEventsDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<EpdcEventsDTO>> page(@RequestParam Map<String, Object> params) {
PageData<EpdcEventsDTO> page = epdcEventsService.listOfPendingReviewEvents(params);
return new Result<PageData<EpdcEventsDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<EpdcEventsDetailDTO> get(@PathVariable("id") String id){
public Result<EpdcEventsDetailDTO> get(@PathVariable("id") String id) {
EpdcEventsDetailDTO data = epdcEventsService.getEvent(id);
return new Result<EpdcEventsDetailDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody EpdcEventsDTO dto){
public Result save(@RequestBody EpdcEventsDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
@ -79,7 +81,7 @@ public class EpdcEventsController {
}
@PutMapping
public Result update(@RequestBody EpdcEventsDTO dto){
public Result update(@RequestBody EpdcEventsDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
@ -89,7 +91,7 @@ public class EpdcEventsController {
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
@ -107,6 +109,7 @@ public class EpdcEventsController {
/**
* 事件审核
*
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -120,20 +123,22 @@ public class EpdcEventsController {
/**
* 已驳回事件列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.events.EpdcRejectEventsDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData < com.elink.esua.epdc.dto.events.EpdcRejectEventsDTO>>
* @Author: liuchuang
* @Date: 2019/9/6 15:11
*/
@GetMapping("rejectEvents")
@DataFilter(tableAlias = "temp", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
public Result<PageData<EpdcRejectEventsDTO>> rejectEvents(@RequestParam Map<String, Object> params){
public Result<PageData<EpdcRejectEventsDTO>> rejectEvents(@RequestParam Map<String, Object> params) {
PageData<EpdcRejectEventsDTO> page = epdcEventsService.listOfRejectEvents(params);
return new Result<PageData<EpdcRejectEventsDTO>>().ok(page);
}
/**
* 已驳回事件详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.events.EpdcRejectEventDetailDTO>
* @Author: liuchuang
@ -146,11 +151,10 @@ public class EpdcEventsController {
}
/**
*
* 初始化党群议事菜单消息
*
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @params []
* @author liuchuang
* @since 2019/10/30 13:43
*/
@ -171,4 +175,18 @@ public class EpdcEventsController {
public Result<Boolean> checkTopicToIssueFlag(@PathVariable("topicId") String topicId) {
return epdcEventsService.checkTopicToIssueFlag(topicId);
}
/***
* 统计网格指定时间段内事件上报数与事件受理数
* @param eventReportAmountFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/16 14:10
*/
@PostMapping("statEventReportAmount")
public Result<List<KpiEventReportAmountResultDTO>> statEventReportAmount(@RequestBody KpiMetaDataOfEventsFormDTO eventReportAmountFormDto) {
List<KpiEventReportAmountResultDTO> dtoList = epdcEventsService.statEventReportAmount(eventReportAmountFormDto);
return new Result().ok(dtoList);
}
}

36
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java

@ -18,17 +18,17 @@
package com.elink.esua.epdc.modules.events.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.events.*;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssuePendingResponseFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssuePendingResponseResultDTO;
import com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO;
import com.elink.esua.epdc.dto.issue.result.IssueStateStatisticsResultDTO;
import com.elink.esua.epdc.modules.events.entity.EpdcEventsEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@ -43,38 +43,47 @@ import java.util.Map;
public interface EpdcEventsDao extends BaseDao<EpdcEventsEntity> {
/**
* 根据ID获取事件详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.dto.events.EpdcEventsDetailDTO
* @Author: liuchuang
* @Date: 2019/9/4 20:31
*/
EpdcEventsDetailDTO selectOneOfEventDetailById(@Param("id") String id);
/**
* 事件待审核列表
*
* @Params: [params]
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcEventsDTO>
* @Author: liuchuang
* @Date: 2019/9/5 19:42
*/
List<EpdcEventsDTO> selectListOfPendingReviewEvents(Map<String, Object> params);
/**
* 已驳回事件列表
*
* @Params: []
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcRejectEventsDTO>
* @Author: liuchuang
* @Date: 2019/9/6 15:04
*/
List<EpdcRejectEventsDTO> selectListOfRejectEvents(Map<String, Object> params);
/**
* 已驳回事件详情
*
* @Params: []
* @Return: com.elink.esua.epdc.dto.events.EpdcRejectEventDetailDTO
* @Author: liuchuang
* @Date: 2019/9/6 14:46
*/
EpdcRejectEventDetailDTO selectOneOfRejectEventDetail(@Param("id") String id);
/**
* 评论列表
*
* @Params: [eventId]
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>
* @Author: liuchuang
@ -89,30 +98,35 @@ public interface EpdcEventsDao extends BaseDao<EpdcEventsEntity> {
/**
* 赞数+1
*
* @param eventId
*/
void updateApproveNumAdd(String eventId);
/**
* 踩数+1
*
* @param eventId
*/
void updateOpposeNumAdd(String eventId);
/**
* 赞数-1
*
* @param eventId
*/
void updateApproveNumSubtract(String eventId);
/**
* 踩数-1
*
* @param eventId
*/
void updateOpposeNumSubtract(String eventId);
/**
* 移动端-事件详情
*
* @Params: [eventId]
* @Return: com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO
* @Author: liuchuang
@ -121,18 +135,18 @@ public interface EpdcEventsDao extends BaseDao<EpdcEventsEntity> {
EventAppDetailResultDTO selectOneOfEventDetail(String eventId);
/**
*
* 根据网格ID 状态获取事件数量
*
* @params [deptId, state]
* @return int
* @params [deptId, state]
* @author liuchuang
* @since 2019/10/30 12:36
*/
int selectCountOfDeptNotice(Long deptId, int state);
/**
*根据网格id和状态获取议题状态统计
* 根据网格id和状态获取议题状态统计
*
* @param deptIdList
* @return
*/
@ -140,11 +154,23 @@ public interface EpdcEventsDao extends BaseDao<EpdcEventsEntity> {
/**
* 查询待回应列表
*
* @param formDto
* @return
*/
List<IssuePendingResponseResultDTO> listIssuePendingResponse(IssuePendingResponseFormDTO formDto);
/**
* 统计网格指定时间内事件上报数与事件受理数
*
* @param kpiParamDto KPI模块参数
* @param issueLimitHour 事件有效响应时限
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO>
* @author work@yujt.net.cn
* @date 2019/12/19 19:01
*/
List<KpiEventReportAmountResultDTO> statEventReportAmount(@Param("kpiParamDto") KpiMetaDataOfEventsFormDTO kpiParamDto,
@Param("issueLimitHour") int issueLimitHour);
/**
*
* 查询需要修改组织机构信息事件

37
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java

@ -25,9 +25,11 @@ import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventsReviewFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.issue.IssueDTO;
import com.elink.esua.epdc.dto.issue.form.IssuePendingResponseFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssuePendingResponseResultDTO;
import com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO;
import com.elink.esua.epdc.dto.issue.result.IssueStateStatisticsResultDTO;
import com.elink.esua.epdc.modules.events.entity.EpdcEventsEntity;
import com.elink.esua.epdc.modules.rocketmq.dto.CategoryModifyDTO;
@ -46,6 +48,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 事件待审核列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.events.EpdcEventsDTO>
* @Author: liuchuang
@ -57,6 +60,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 根据ID获取事件详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.dto.events.EpdcEventsDetailDTO
* @Author: liuchuang
@ -68,6 +72,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 发布议题
*
* @Params: [dto]
* @Return: void
* @Author: liuchuang
@ -81,6 +86,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 事件审核
*
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -90,6 +96,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 已驳回事件列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.events.EpdcRejectEventsDTO>
* @Author: liuchuang
@ -99,6 +106,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 已驳回事件详情
*
* @Params: []
* @Return: com.elink.esua.epdc.dto.events.EpdcRejectEventDetailDTO
* @Author: liuchuang
@ -108,6 +116,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 评论列表
*
* @Params: [eventId]
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>
* @Author: liuchuang
@ -122,12 +131,14 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 赞数+1
*
* @param eventId
*/
void updateApproveNumAdd(String eventId);
/**
* 踩数+1
*
* @param eventId
*/
void updateOpposeNumAdd(String eventId);
@ -135,12 +146,14 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 赞数-1
*
* @param eventId
*/
void updateApproveNumSubtract(String eventId);
/**
* 踩数-1
*
* @param eventId
*/
void updateOpposeNumSubtract(String eventId);
@ -148,6 +161,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 更新浏览数
*
* @Params: [eventId]
* @Return: boolean
* @Author: liuchuang
@ -157,6 +171,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 移动端-事件详情
*
* @Params: [eventId]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO>
* @Author: liuchuang
@ -165,22 +180,20 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
Result<EventAppDetailResultDTO> getEventDetail(String eventId);
/**
*
* 菜单消息-议题待回应
*
* @params [deptId]
* @return void
* @params [deptId]
* @author liuchuang
* @since 2019/10/30 17:23
*/
void sendMenuNoticeOfEventRespond(Long deptId, Long userId);
/**
*
* 初始化党群议事菜单消息
*
* @params []
* @return void
* @params []
* @author liuchuang
* @since 2019/10/30 13:43
*/
@ -188,6 +201,7 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 根据状态和网格id查询书量
*
* @param deptIdList
* @return
*/
@ -195,17 +209,17 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
/**
* 待回应列表
*
* @param formDto
* @return
*/
Result<List<IssuePendingResponseResultDTO>> listIssuePendingResponse(IssuePendingResponseFormDTO formDto);
/**
*
* 话题转议题
*
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @params [dto]
* @author liuchuang
* @since 2019/11/25 19:23
*/
@ -220,6 +234,17 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
**/
Result<Boolean> checkTopicToIssueFlag(String topicId);
/***
* 统计网格指定时间内事件上报数与事件受理数
* @param eventReportAmountFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.KpiMetaDataDTO>
* @author qushutong
* @date 2019/12/16 14:17
*/
List<KpiEventReportAmountResultDTO> statEventReportAmount(KpiMetaDataOfEventsFormDTO eventReportAmountFormDto);
/**
*
* 事件修改组织机构信息

49
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java

@ -24,6 +24,8 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -43,9 +45,11 @@ import com.elink.esua.epdc.dto.events.form.EpdcEventsReviewFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
import com.elink.esua.epdc.dto.form.SmsNoticeFormDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.issue.IssueDTO;
import com.elink.esua.epdc.dto.issue.form.IssuePendingResponseFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssuePendingResponseResultDTO;
import com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO;
import com.elink.esua.epdc.dto.issue.result.IssueStateStatisticsResultDTO;
import com.elink.esua.epdc.modules.async.IssueOverseeResultsTask;
import com.elink.esua.epdc.modules.async.NewsTask;
@ -111,6 +115,9 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
@Autowired
private IssueDao issueDao;
@Autowired
private RedisUtils redisUtils;
@Override
public PageData<EpdcEventsDTO> listOfPendingReviewEvents(Map<String, Object> params) {
IPage<EpdcEventsDTO> page = getPage(params);
@ -249,7 +256,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
imageType = ImageConstant.TYPE_IMAGE_BIZ_ISSUE_HANDLE;
}
imgService.saveImages(dto.getImages(),referenceId,imageType);
imgService.saveImages(dto.getImages(), referenceId, imageType);
// 插入部门响应记录
// deptRespondTask.saveEventDeptRespond(dto);
@ -360,7 +367,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
|| OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(dtoResult.getData().getTypeKey())
|| OrganizationTypeConstant.ORG_TYPE_STREET_PARTY.equals(dtoResult.getData().getTypeKey())
|| OrganizationTypeConstant.ORG_TYPE_STREET_DEPT.equals(dtoResult.getData().getTypeKey())
|| OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dtoResult.getData().getTypeKey())){
|| OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dtoResult.getData().getTypeKey())) {
// 项目-待处理项目-吹哨部门用户
itemService.sendWhistlingDeptItemHandleMenuNotice(Collections.singletonList(deptId), userId);
}
@ -401,7 +408,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
issueEntity.setGroupName(entity.getGroupName());
issueEntity.setTopicId(entity.getTopicId());
issueEntity.setIssueState(EventIssueItemState.ISSUE_REVIEW_PASS);
issueEntity.setIssueCode("DT"+System.currentTimeMillis());
issueEntity.setIssueCode("DT" + System.currentTimeMillis());
return issueEntity;
}
@ -433,11 +440,10 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
}
/**
*
* 菜单消息-议题待回应
*
* @params [deptId]
* @return void
* @params [deptId]
* @author liuchuang
* @since 2019/10/29 18:05
*/
@ -461,10 +467,10 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
@Override
public Result<List<IssuePendingResponseResultDTO>> listIssuePendingResponse(IssuePendingResponseFormDTO formDto) {
List list;
if (formDto.getDeptId() > 0){
if (formDto.getDeptId() > 0) {
list = new ArrayList<>();
list.add(formDto.getDeptId());
}else {
} else {
list = SecurityUser.getUser().getDeptIdList();
}
formDto.setDeptIdList(list);
@ -527,20 +533,20 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
private EventsCategoryDTO initCategoryInfo(String categoryId) {
Long category = Long.parseLong(categoryId);
EventsCategoryDTO resultDto = new EventsCategoryDTO();
CategoryDTO cateDto =categoryService.get(category);
CategoryDTO cateDto = categoryService.get(category);
resultDto.setCategoryCode(cateDto.getCategoryCode());
//获取所有父类分类标签
List<CategoryEntity> cateList = categoryService.getPidListById(category);
//所选分类标签为多级
if(cateList != null && cateList.size() > 0) {
if (cateList != null && cateList.size() > 0) {
// list第一个为一级分类标签
resultDto.setFirstCategoryCode(cateList.get(0).getCategoryCode());
//分类标签全称拼接:-分割
String name = "";
for (int i = 0; i < cateList.size(); i++){
if (i == cateList.size() -1){
for (int i = 0; i < cateList.size(); i++) {
if (i == cateList.size() - 1) {
name = name + cateList.get(i).getCategoryName();
}else {
} else {
name = name + cateList.get(i).getCategoryName() + "-";
}
}
@ -564,18 +570,33 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
* @Author: zy
* @Date: 2020-01-08
*/
private void issueSmsNotification(EpdcEventsReviewFormDTO dto, List<String> userMobiles){
private void issueSmsNotification(EpdcEventsReviewFormDTO dto, List<String> userMobiles) {
// 审核操作发送短信
SmsNoticeFormDTO sms = new SmsNoticeFormDTO();
sms.setMobiles(userMobiles);
if (EventIssueItemState.EVENT_REVIEW_PASS == dto.getEventState()) { // 审核通过
sms.setSmsTemplateType(SysSmsTemplateConstant.SMS_TEMPLATE_RESIDENTS_ISSUE_PASSED);
}else {
} else {
sms.setSmsTemplateType(SysSmsTemplateConstant.SMS_TEMPLATE_RESIDENTS_ISSUE_NOT_PASS);
}
issueOverseeResultsTask.sendSmsNotice(sms);
}
@Override
public List<KpiEventReportAmountResultDTO> statEventReportAmount(KpiMetaDataOfEventsFormDTO eventReportAmountFormDto) {
// 议题有效响应时限
int issueLimitHour = NumConstant.TWENTY;
Object obj = redisUtils.get(RedisKeys.getKpiIssueTimeLimitKey());
if (null != obj) {
issueLimitHour = Integer.parseInt(obj.toString());
}
List<KpiEventReportAmountResultDTO> list = baseDao.statEventReportAmount(eventReportAmountFormDto, issueLimitHour);
return list;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyOrganizationInfo(OrganizationModifyDTO dto) {

28
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/AdminFeignClient.java

@ -71,23 +71,23 @@ public interface AdminFeignClient {
@GetMapping("sys/deptgridplatform/selectByDeptId/{deptId}")
Result<DeptGridPlatformDTO> getDeptGridPlatformDTO(@PathVariable("deptId") String deptId);
/**
* @Description: 根据部门id查询部门下的所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
/**
* @Description: 根据部门id查询部门下的所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
@GetMapping(value ="sys/user/getUserPhoneByListDeptId", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<String>> getUserPhoneByListDeptId(List<Long> deptId);
/**
* @Description: 根据议题网格ID查询拥有这个网格数据权限且是网格长的角色再根据角色查出所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
/**
* @Description: 根据议题网格ID查询拥有这个网格数据权限且是网格长的角色再根据角色查出所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
@GetMapping("sys/user/getSysGridLeaderPhone/{deptId}")
Result<List<String>> getSysGridLeaderPhone(@PathVariable("deptId") Long deptId);
}

65
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java

@ -27,11 +27,14 @@ import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.events.form.EventDeleteCommentsFormDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemHandleSubmitFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemContentForPCEndResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemDetailForPCEndResultDTO;
import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO;
import com.elink.esua.epdc.modules.item.excel.ItemExcel;
import com.elink.esua.epdc.modules.item.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
@ -57,32 +60,34 @@ public class ItemController {
/**
* 项目列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.item.ItemPendingHandleDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData < com.elink.esua.epdc.dto.item.ItemPendingHandleDTO>>
* @Author: liuchuang
* @Date: 2019/9/16 9:56
*/
@GetMapping("page")
public Result<PageData<ItemPendingHandleDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<ItemPendingHandleDTO>> page(@RequestParam Map<String, Object> params) {
PageData<ItemPendingHandleDTO> page = itemService.listOfItemsForPCEnd(params);
return new Result<PageData<ItemPendingHandleDTO>>().ok(page);
}
/**
* 项目处理详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.ItemDTO>
* @Author: liuchuang
* @Date: 2019/9/16 9:56
*/
@GetMapping("{id}")
public Result<ItemDetailForPCEndResultDTO> get(@PathVariable("id") String id){
public Result<ItemDetailForPCEndResultDTO> get(@PathVariable("id") String id) {
ItemDetailForPCEndResultDTO data = itemService.getItemDetailById(id);
return new Result<ItemDetailForPCEndResultDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody ItemDTO dto){
public Result save(@RequestBody ItemDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
itemService.save(dto);
@ -90,7 +95,7 @@ public class ItemController {
}
@PutMapping
public Result update(@RequestBody ItemDTO dto){
public Result update(@RequestBody ItemDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
itemService.update(dto);
@ -98,7 +103,7 @@ public class ItemController {
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
itemService.delete(ids);
@ -113,6 +118,7 @@ public class ItemController {
/**
* 项目处理提交
*
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -126,21 +132,23 @@ public class ItemController {
/**
* 项目内容详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.ItemDTO>
* @Author: liuchuang
* @Date: 2019/9/16 9:56
*/
@GetMapping("contentDetail/{id}")
public Result<ItemContentForPCEndResultDTO> getItemContentDetail(@PathVariable("id") String id){
public Result<ItemContentForPCEndResultDTO> getItemContentDetail(@PathVariable("id") String id) {
ItemContentForPCEndResultDTO data = itemService.getItemContentDetail(id);
return new Result<ItemContentForPCEndResultDTO>().ok(data);
}
/**
* 评论列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData < com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>>
* @Author: liuchuang
* @Date: 2019/9/6 18:58
*/
@ -152,6 +160,7 @@ public class ItemController {
/**
* 屏蔽评论
*
* @Params: [commentId]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -162,4 +171,44 @@ public class ItemController {
return itemService.modifyCommentById(eventDeleteCommentsFormDTO.getCommentIds());
}
/***
* kpi-统计群众对问题处理的满意度
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author qushutong
* @date 2019/12/18 10:27
*/
@PostMapping("statPeopleEvaluationMetaData")
public Result<List<KpiEvaluationAmountResultDTO>> statPeopleEvaluationMetaData(@RequestBody KpiMetaDataOfEventsFormDTO metaDataFormDto) {
List<KpiEvaluationAmountResultDTO> list = itemService.statPeopleEvaluationMetaData(metaDataFormDto);
return new Result().ok(list);
}
/**
* kpi- 统计项目处理数 包括网格呼叫总数网格呼叫被响应数网格呼叫被关闭数
*
* @param metaDataFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/18 16:02
*/
@PostMapping("statItemHandleAmountMetaData")
public Result<List<KpiItemHandleAmountResultDTO>> statItemHandleAmountMetaData(@RequestBody KpiMetaDataOfEventsFormDTO metaDataFormDto) {
List<KpiItemHandleAmountResultDTO> list = itemService.statItemHandleAmount(metaDataFormDto);
return new Result().ok(list);
}
/***
* kpi- 网格对项目处理的评价 不满意 满意 非常满意 统计
* @param metaDataFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/20 15:37
*/
@PostMapping("statGridEvaluationMetaData")
public Result<List<KpiEvaluationAmountResultDTO>> statGridEvaluationMetaData(@RequestBody KpiMetaDataOfEventsFormDTO metaDataFormDto) {
List<KpiEvaluationAmountResultDTO> list = itemService.statGridEvaluationMetaData(metaDataFormDto);
return new Result().ok(list);
}
}

95
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java

@ -18,6 +18,8 @@
package com.elink.esua.epdc.modules.item.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.result.KpiItemTimeLimitByDeptResultDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
@ -26,6 +28,8 @@ import com.elink.esua.epdc.dto.item.form.ItemDetailFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO;
import com.elink.esua.epdc.modules.item.entity.ItemEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -44,6 +48,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 根据议题ID获取项目信息
*
* @Params: [issueId]
* @Return: com.elink.esua.epdc.dto.item.ItemDTO
* @Author: liuchuang
@ -53,6 +58,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 移动端-项目列表
*
* @Params: [formDto]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>
* @Author: liuchuang
@ -61,11 +67,10 @@ public interface ItemDao extends BaseDao<ItemEntity> {
List<ItemResultDTO> selectListOfItems(ItemFormDTO formDto, int[] states);
/**
*
* 移动端-我的项目列表
*
* @params [formDto, states]
* @return java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>
* @params [formDto, states]
* @author liuchuang
* @since 2019/10/31 16:28
*/
@ -73,6 +78,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 移动端-项目详情
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO
* @Author: liuchuang
@ -82,14 +88,17 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 工作端-项目列表
* @Params: [formDto,deptIdList]
*
* @Params: [formDto, deptIdList]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>
* @Author: lipengfei
* @Date: 2019/11/19 16:50
*/
List<ItemResultDTO> selectListOfItemsByWork(ItemFormDTO formDto,List<Long> deptIdList);
List<ItemResultDTO> selectListOfItemsByWork(ItemFormDTO formDto, List<Long> deptIdList);
/**
* 工作端-项目详情
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO
* @Author: lipengfei
@ -100,6 +109,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 移动端-议题分类统计
*
* @Params: [formDTO]
* @Return: com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO
* @Author: liuchuang
@ -108,9 +118,9 @@ public interface ItemDao extends BaseDao<ItemEntity> {
ItemCategoryStatisticsResultDTO selectOneItemCategoryStatistics(ItemCategoryStatisticsFormDTO formDTO);
/**
* PC端项目列表
*
* @Params: [params]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.ItemPendingHandleDTO>
* @Author: liuchuang
@ -120,6 +130,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* PC端项目详情
*
* @Params: [itemId]
* @Return: com.elink.esua.epdc.dto.item.result.ItemDetailForPCEndResultDTO
* @Author: liuchuang
@ -129,6 +140,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 项目处理进度
*
* @Params: [issueId, itemId, outOrInside(0内部数据 1外部数据)]
* @Return: com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO
* @Author: liuchuang
@ -138,6 +150,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 业务端-项目处理进度
*
* @Params: [itemId]
* @Return: com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO
* @Author: liuchuang
@ -158,30 +171,29 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 项目内容详情
*
* @Params: [itemId]
* @Return: com.elink.esua.epdc.dto.item.result.ItemContentForPCEndResultDTO
* @Author: liuchuang
* @Date: 2019/9/17 10:37
*/
ItemContentForPCEndResultDTO selectItemContentForPCEnd(String itemId);
ItemContentForPCEndResultDTO selectItemContentForPCEnd(String itemId);
/**
*
* 项目处理发送菜单消息
*
* @params [deptId, state]
* @return int
* @params [deptId, state]
* @author liuchuang
* @since 2019/10/30 13:28
*/
int selectCountOfItemDeptNotice(Long deptId, int state);
/**
*
* 根据吹哨部门ID统计吹哨部门待处理项目数量
*
* @params [deptId]
* @return int
* @params [deptId]
* @author liuchuang
* @since 2019/10/30 13:33
*/
@ -189,6 +201,7 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 移动端-项目统计
*
* @Params: [formDTO]
* @Return: com.elink.esua.epdc.dto.item.result.ItemStatisticsResultDTO
* @Author: lipengfei
@ -196,6 +209,68 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
ItemStatisticsResultDTO selectOneItemStatistics(ItemStatisticsFormDTO formDTO);
/**
* 绩效考核 - 项目 - 根据部门id,查询考核周期内群众满意度
*
* @param metaDataFormDto
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO>
* @author qushutong
* @date 2019/12/20 14:30
*/
List<KpiEvaluationAmountResultDTO> selectListPeopleEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/***
* 绩效考核 - 项目 - 网格对项目处理的评价 不满意 满意 非常满意 统计
* @param metaDataFormDto
* @return java.util.List<com.elink.esua.epdc.dto.KpiMetaDataDTO>
* @author qushutong
* @date 2019/12/20 15:43
*/
List<KpiEvaluationAmountResultDTO> selectListGridEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/***
* 绩效考核 - 项目 - 网格吹哨总数
* @param metaDataFormDto
* @param metaDataCode 元数据编码不可变参数 KpiMetaDataEnum.GRID_CALL_SUPERIOR_AMOUNT.getValue()
* @return java.util.List<com.elink.esua.epdc.dto.KpiMetaDataDTO>
* @author qushutong
* @date 2019/12/18 16:23
*/
List<KpiItemHandleAmountResultDTO> selectListItemGridCallAmount(@Param("metaDataFormDto") KpiMetaDataOfEventsFormDTO metaDataFormDto,
@Param("metaDataCode") String metaDataCode);
/***
* 绩效考核 - 项目 - 查询每个部门吹哨的所有项目与项目吹哨时间
* @param metaDataFormDto
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiItemTimeLimitByDeptResultDTO>
* @author qushutong
* @date 2019/12/19 17:16
*/
List<KpiItemTimeLimitByDeptResultDTO> selctListItemTimeLimitByDept(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/**
* 绩效考核 - 项目 - 按部门id查询与项目有效响应时限 网格呼叫被响应总数
*
* @param kpiItemTimeLimitByDeptList
* @param metaDataCode 元数据编码不可变参数 KpiMetaDataEnum.GRID_CALL_SUPERIOR_RESP_AMOUNT.getValue()
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO>
* @author qushutong
* @date 2019/12/23 13:27
*/
List<KpiItemHandleAmountResultDTO> selectListItemRespondAmount(@Param("timeLimitList") List<KpiItemTimeLimitByDeptResultDTO> kpiItemTimeLimitByDeptList,
@Param("metaDataCode") String metaDataCode);
/**
* 绩效考核 - 项目 - 按部门id查询与项目有效办结时限 网格呼叫被办结总数
*
* @param kpiItemTimeLimitByDeptList
* @param metaDataCode 元数据编码 不可变参数 KpiMetaDataEnum.GRID_CALL_SUPERIOR_CLOSE_AMOUNT.getValue()
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO>
* @author qushutong
* @date 2019/12/23 13:37
*/
List<KpiItemHandleAmountResultDTO> selectListItemCloseAmount(@Param("timeLimitList") List<KpiItemTimeLimitByDeptResultDTO> kpiItemTimeLimitByDeptList,
@Param("metaDataCode") String metaDataCode);
/**
*
* 删除项目处理进度表历史记录

22
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEvaluateDeptEntity.java

@ -26,41 +26,41 @@ import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 部门满意度评价表
* 部门满意度评价表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-09-17
*/
@Data
@EqualsAndHashCode(callSuper=false)
@EqualsAndHashCode(callSuper = false)
@TableName("epdc_item_evaluate_dept")
public class ItemEvaluateDeptEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
/**
* 项目ID
*/
private String itemId;
/**
* 项目ID
*/
private String itemId;
/**
* 被评价部门ID
*/
private Long deptId;
private Long deptId;
/**
* 被评价部门名称
*/
private String deptName;
private String deptName;
/**
* 评价满意度
*/
private Integer evaluationLevel;
private Integer evaluationLevel;
/**
* 操作人部门ID
*/
private Long createdDeptId;
private Long createdDeptId;
}

77
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java

@ -21,11 +21,14 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.*;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO;
import com.elink.esua.epdc.modules.item.entity.ItemEntity;
import com.elink.esua.epdc.modules.rocketmq.dto.CategoryModifyDTO;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
@ -53,6 +56,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* PC端项目列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.item.ItemPendingHandleDTO>
* @Author: liuchuang
@ -82,6 +86,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目详情
*
* @Params: [id]
* @Return: com.elink.esua.epdc.dto.item.result.ItemDetailForPCEndResultDTO
* @Author: liuchuang
@ -121,6 +126,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 根据议题ID获取项目信息
*
* @Params: [issueId]
* @Return: com.elink.esua.epdc.modules.item.entity.ItemEntity
* @Author: liuchuang
@ -130,16 +136,19 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 移动端-项目列表
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: liuchuang
* @Date: 2019/9/9 16:47
*/
Result<List<ItemResultDTO>> listItems(ItemFormDTO formDto);
/**
* 项目列表-移动app端用
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: lipengfei
* @Date: 2019/10/19 16:47
*/
@ -147,6 +156,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 移动端-项目详情
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO>
* @Author: liuchuang
@ -156,6 +166,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 工作端-项目详情
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO>
* @Author: lipengfei
@ -166,14 +177,17 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 工作端-获取满意度评价结果
*
* @Params: [evaluationFormDTO]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result
* @Author: lipengfei
* @Date: 2019/9/10 20:54
* @ Author: lipengfei
* @ Date: 2 0 1 9 / 9 / 1 0 2 0 : 5 4
*/
Result evaluation(EvaluationFormDTO evaluationFormDTO);
/**
* 工作端-获取可吹哨部门
*
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: lipengfei
* @Date: 2019/11/19 16:34
@ -182,6 +196,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目分类统计
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO>
* @Author: liuchuang
@ -191,6 +206,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目处理进度
*
* @Params: [itemId, outOrInside(0内部数据 1外部数据)]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO>
* @Author: liuchuang
@ -200,6 +216,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目处理提交
*
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -209,6 +226,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目内容详情
*
* @Params: [itemId]
* @Return: com.elink.esua.epdc.dto.item.result.ItemContentForPCEndResultDTO
* @Author: liuchuang
@ -218,6 +236,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 评论列表
*
* @Params: [params]
* @Return: com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>
* @Author: liuchuang
@ -227,6 +246,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 屏蔽评论
*
* @Params: [commentId]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
@ -236,30 +256,29 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 我的项目列表
*
* @Params: [formDTO]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: liuchuang
* @Date: 2019/9/17 13:37
*/
Result<List<ItemResultDTO>> listItemsOfMine(ItemOfMineFormDTO formDTO);
/**
*
* 项目处理发送菜单消息
*
* @params [deptId]
* @return void
* @params [deptId]
* @author liuchuang
* @since 2019/10/30 9:12
*/
void sendItemHandleMenuNotice(Long deptId, Long userId);
/**
*
* 项目处理发送菜单消息-吹哨部门
*
* @params [deptIds]
* @return void
* @params [deptIds]
* @author liuchuang
* @since 2019/10/30 12:26
*/
@ -267,6 +286,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目统计
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO>
* @Author: lipengfei
@ -276,6 +296,7 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目处理进度
*
* @Params: [itemId]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO>
* @Author: lipengfei
@ -284,33 +305,30 @@ public interface ItemService extends BaseService<ItemEntity> {
List<ItemHandleProgressResultDTO> listOfItemHandleProgressByWork(String itemId);
/**
*
* 项目处理进度-居民端
*
* @params [itemId]
* @return java.util.List<com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO>
* @params [itemId]
* @author liuchuang
* @since 2019/12/24 9:03
*/
List<ItemHandleProgressResultDTO> listOfItemHandleProgressByMobile(String itemId);
/**
*
* 拉取市北网格化平台项目进度情况
*
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @params []
* @author liuchuang
* @since 2019/12/25 13:28
*/
Result queryItemHandle();
/**
*
* 网格化平台处理情况回调
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @params [formDto]
* @author liuchuang
* @since 2019/12/26 13:52
*/
@ -325,6 +343,35 @@ public interface ItemService extends BaseService<ItemEntity> {
**/
Result<List<ItemHandleResultDTO>> queryHandleCategories();
/***
* kpi查询问题满意度
* @param metaDataFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/18 10:30
*/
List<KpiEvaluationAmountResultDTO> statPeopleEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/**
* 统计项目处理数 包括网格呼叫总数网格呼叫被响应数网格呼叫被关闭数
*
* @param metaDataFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/18 16:02
*/
List<KpiItemHandleAmountResultDTO> statItemHandleAmount(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/***
* 绩效考核 - 项目 - 网格对项目处理的评价 不满意 满意 非常满意 统计
* @param metaDataFormDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/20 15:40
*/
List<KpiEvaluationAmountResultDTO> statGridEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto);
/**
*
* 项目修改组织机构信息

5
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemEvaluateDeptServiceImpl.java

@ -16,6 +16,7 @@
*/
package com.elink.esua.epdc.modules.item.service.impl;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.dto.item.ItemEvaluateDeptDTO;
import com.elink.esua.epdc.dto.item.result.ItemDeptEvaluateResultDTO;
@ -31,7 +32,7 @@ import java.util.Arrays;
import java.util.List;
/**
* 部门满意度评价表
* 部门满意度评价表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-09-17
@ -50,7 +51,7 @@ public class ItemEvaluateDeptServiceImpl extends BaseServiceImpl<ItemEvaluateDep
@Transactional(rollbackFor = Exception.class)
public void saveEvaluateDepts(List<ItemEvaluateDeptDTO> evaluateDeptDTOS, String itemId, Long createdDeptId) {
List<ItemEvaluateDeptEntity> evaluateDeptEntities = new ArrayList<>();
for (ItemEvaluateDeptDTO dto:
for (ItemEvaluateDeptDTO dto :
evaluateDeptDTOS) {
ItemEvaluateDeptEntity entity = new ItemEvaluateDeptEntity();
entity.setDeptId(dto.getDeptId());

120
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java

@ -28,6 +28,8 @@ import com.elink.esua.epdc.commons.tools.enums.InterfaceLogBusinessTypeEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.*;
@ -39,14 +41,19 @@ import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.form.SmsNoticeFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssueProgressResultDTO;
import com.elink.esua.epdc.dto.item.*;
import com.elink.esua.epdc.dto.item.form.*;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemTimeLimitByDeptResultDTO;
import com.elink.esua.epdc.enums.ItemGridPlatformHandleStatusEnum;
import com.elink.esua.epdc.enums.ItemHandleCategoryEnum;
import com.elink.esua.epdc.enums.KpiMetaDataEnum;
import com.elink.esua.epdc.gird.shibei.api.ShiBeiCityGridApi;
import com.elink.esua.epdc.gird.shibei.constant.CommonConstants;
import com.elink.esua.epdc.gird.shibei.contants.ApiConstants;
@ -94,6 +101,7 @@ import java.util.*;
*/
@Service
public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implements ItemService {
private Logger logger = LogManager.getLogger(ItemServiceImpl.class);
@Autowired
@ -107,10 +115,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
@Autowired
private ItemHandleProcessService itemHandleProcessService;
@Autowired
private ItemInformationService itemInformationService;
@Autowired
private ItemEvaluateDeptService itemEvaluateDeptService;
@ -123,6 +131,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
@Autowired
private ImgService imgService;
@Autowired
private RedisUtils redisUtils;
@Autowired
private ImgDao imgDao;
@ -165,10 +176,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
if (OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(user.getTypeKey())) {
if (params.get("streetId") != null && !"".equals(params.get("streetId"))) {
Result<SysDeptDTO> resultdept = adminFeignClient.getSysDeptInfo(Long.parseLong(params.get("streetId").toString()));
SysDeptDTO dept =resultdept.getData();
SysDeptDTO dept = resultdept.getData();
Object deptId = params.get("streetId");
if (OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(dept.getTypeKey())) {
params.put("districtDeptId",deptId);
params.put("districtDeptId", deptId);
params.remove("streetId");
}
}
@ -253,10 +264,12 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
List<ItemResultDTO> data = baseDao.selectListOfItems(formDto, states);
return new Result<List<ItemResultDTO>>().ok(data);
}
/**
* 项目列表-移动app端用
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: lipengfei
* @Date: 2019/10/19 16:47
*/
@ -267,6 +280,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
List<ItemResultDTO> data = baseDao.selectListOfItemsByWork(formDto, SecurityUser.getUser().getDeptIdList());
return new Result<List<ItemResultDTO>>().ok(data);
}
@Override
public Result<ItemDetailResultDTO> getItemDetailByWork(String id) {
ItemDetailResultDTO resultDTO = baseDao.selectOneOfItemDetailForWork(id);
@ -427,14 +441,16 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return resultDTO;
}
/**
* 工作端-获取可吹哨部门
*
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: lipengfei
* @Date: 2019/11/19 16:34
*/
@Override
public Result<List<ItemCirculationDeptResultDTO>> whistlingDept(){
public Result<List<ItemCirculationDeptResultDTO>> whistlingDept() {
UserDetail user = SecurityUser.getUser();
List<ItemCirculationDeptResultDTO> deptResultDTOS = new ArrayList<>();
// 网格-可做操作和可流转部门
@ -612,10 +628,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
// 发送菜单消息-待处理项目-吹哨部门
this.sendWhistlingDeptItemHandleMenuNotice(deptIds, null);
} else if (ItemHandleCategoryEnum.HANDLE_REPORT.getValue() == dto.getHandleCategory()) {
boolean reportFlag = this.checkReport(dto.getId());
if (reportFlag) {
return new Result().error("当前项目已上报网格化平台");
}
boolean reportFlag = this.checkReport(dto.getId());
if (reportFlag) {
return new Result().error("当前项目已上报网格化平台");
}
handleProcessEntity.setState(dto.getHandleCategory());
informationFormDTO.setTitle(EventsNoticeConstant.NOTICE_REPORT);
GridDto gridDto = null;
@ -678,7 +694,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
// 通知部门Id(网格)
itemInfoDto.setDeptId(entity.getGridId().toString());
itemInformationService.insert(itemInfoDto);
// 街道部门和区直部门
// 街道部门和区直部门
} else if (OrganizationTypeConstant.ORG_TYPE_STREET_DEPT.equals(user.getTypeKey()) || OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(user.getTypeKey())) {
//插入项目消息表(网格和街道)
// 通知部门Id(网格)
@ -686,20 +702,20 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
itemInformationService.insert(itemInfoDto);
//修改通知部门Id(街道Id)
ItemInformationEntity itemInfoStreetDto = new ItemInformationEntity();
BeanUtils.copyProperties(itemInfoDto,itemInfoStreetDto);
BeanUtils.copyProperties(itemInfoDto, itemInfoStreetDto);
itemInfoStreetDto.setId(null);
Result<CompleteDeptDTO> result =adminFeignClient.getCompleteDept(entity.getGridId());
Result<CompleteDeptDTO> result = adminFeignClient.getCompleteDept(entity.getGridId());
CompleteDeptDTO comDeptDto = result.getData();
itemInfoStreetDto.setDeptId(comDeptDto.getStreetId().toString());
itemInformationService.insert(itemInfoStreetDto);
}
// 吹哨处理
}else if (ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue() == dto.getHandleCategory()) {
List<ItemCirculationDeptResultDTO> deptList = dto.getDeptResultDTOS();
// 吹哨处理
} else if (ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue() == dto.getHandleCategory()) {
List<ItemCirculationDeptResultDTO> deptList = dto.getDeptResultDTOS();
// 拼接被吹哨部门
String whistlDept = "";
for (int i =0; i < deptList.size(); i++) {
ItemCirculationDeptResultDTO indexDto = (ItemCirculationDeptResultDTO)deptList.get(i);
for (int i = 0; i < deptList.size(); i++) {
ItemCirculationDeptResultDTO indexDto = (ItemCirculationDeptResultDTO) deptList.get(i);
if (i == 0) {
whistlDept += indexDto.getDeptName();
} else {
@ -711,12 +727,12 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
for (ItemCirculationDeptResultDTO itemDto : deptList) {
// 通知部门Id(被吹哨部门)
ItemInformationEntity itemInfoEachDto = new ItemInformationEntity();
BeanUtils.copyProperties(itemInfoDto,itemInfoEachDto);
BeanUtils.copyProperties(itemInfoDto, itemInfoEachDto);
itemInfoEachDto.setId(null);
itemInfoEachDto.setDeptId(itemDto.getDeptId().toString());
itemInformationService.insert(itemInfoEachDto);
}
// 关闭和结案处理
// 关闭和结案处理
} else {
// 查询已吹哨部门
List<Long> oldDeptIds = itemDeptService.listOfWhistlingDeptIds(dto.getId(), SecurityUser.getDeptId());
@ -724,7 +740,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
for (Long itemDeptId : oldDeptIds) {
// 通知部门Id(被吹哨部门)
ItemInformationEntity itemInfoEachDto = new ItemInformationEntity();
BeanUtils.copyProperties(itemInfoDto,itemInfoEachDto);
BeanUtils.copyProperties(itemInfoDto, itemInfoEachDto);
itemInfoEachDto.setId(null);
itemInfoEachDto.setDeptId(itemDeptId.toString());
itemInformationService.insert(itemInfoEachDto);
@ -743,12 +759,12 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
this.sendWhistlingDeptItemHandleMenuNotice(Collections.singletonList(user.getDeptId()), null);
}
//项目外部处理意见图片保存
if(dto.getOutHandleImages()!= null && dto.getOutHandleImages().size()>0){
imgService.saveImages(dto.getOutHandleImages(),handleProcessEntity.getId(), ImageConstant.TYPE_IMAGE_ITEM_OUT_HANDLE);
if (dto.getOutHandleImages() != null && dto.getOutHandleImages().size() > 0) {
imgService.saveImages(dto.getOutHandleImages(), handleProcessEntity.getId(), ImageConstant.TYPE_IMAGE_ITEM_OUT_HANDLE);
}
//项目处理意见图片保存
if(dto.getHandleImages()!= null && dto.getHandleImages().size()>0){
imgService.saveImages(dto.getHandleImages(),handleProcessEntity.getId(), ImageConstant.TYPE_IMAGE_ITEM_HANDLE);
if (dto.getHandleImages() != null && dto.getHandleImages().size() > 0) {
imgService.saveImages(dto.getHandleImages(), handleProcessEntity.getId(), ImageConstant.TYPE_IMAGE_ITEM_HANDLE);
}
//居民端项目关闭、结案-短信通知
if (ItemHandleCategoryEnum.HANDLE_CLOSE.getValue() == dto.getHandleCategory() ||
@ -896,12 +912,55 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
newsTask.eventMenuNotice(menuNoticeDTO, userId);
}
}
@Override
public Result<ItemStatisticsResultDTO> getItemStatistics(ItemStatisticsFormDTO formDto) {
ItemStatisticsResultDTO resultDTO = baseDao.selectOneItemStatistics(formDto);
return new Result<ItemStatisticsResultDTO>().ok(resultDTO);
}
@Override
public List<KpiEvaluationAmountResultDTO> statPeopleEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto) {
return baseDao.selectListPeopleEvaluationMetaData(metaDataFormDto);
}
@Override
public List<KpiItemHandleAmountResultDTO> statItemHandleAmount(KpiMetaDataOfEventsFormDTO metaDataFormDto) {
List<KpiItemHandleAmountResultDTO> kpiMetaDataDTOList = new ArrayList<>();
// 按部门id查询 部门网格呼叫事件总数
List<KpiItemHandleAmountResultDTO> callAmountOfDept = baseDao.selectListItemGridCallAmount(metaDataFormDto, KpiMetaDataEnum.GRID_CALL_SUPERIOR_AMOUNT.getValue());
kpiMetaDataDTOList.addAll(callAmountOfDept);
//查询各个街道的项目呼叫有效时间 有效结案时间
List<KpiItemTimeLimitByDeptResultDTO> KpiItemTimeLimitByDeptList = baseDao.selctListItemTimeLimitByDept(metaDataFormDto);
for (KpiItemTimeLimitByDeptResultDTO itemTimeLimitByDept : KpiItemTimeLimitByDeptList) {
if (StringUtils.isBlank(itemTimeLimitByDept.getItemId()) || StringUtils.isBlank(itemTimeLimitByDept.getCatecoryId())) {
continue;
}
Map<String, Integer> map = (Map<String, Integer>) redisUtils.get(RedisKeys.getKpiItemTimeLimitKey(itemTimeLimitByDept.getCatecoryId()));
itemTimeLimitByDept.setValidCloseTime(map.get(KpiItemConstant.CLOSE_ITEM_TIME_LIMIT));
itemTimeLimitByDept.setValidRespondTime(map.get(KpiItemConstant.RESPOND_ITEM_TIME_LIMIT));
}
// 按部门id查询与项目有效响应时限 网格呼叫被响应总数
List<KpiItemHandleAmountResultDTO> itemRespondAmountByDeot = baseDao.selectListItemRespondAmount(KpiItemTimeLimitByDeptList, KpiMetaDataEnum.GRID_CALL_SUPERIOR_RESP_AMOUNT.getValue());
kpiMetaDataDTOList.addAll(itemRespondAmountByDeot);
// 按部门id查询与项目有效办结时限 网格呼叫被办结总数
List<KpiItemHandleAmountResultDTO> itemCloseAmountByDeot = baseDao.selectListItemCloseAmount(KpiItemTimeLimitByDeptList, KpiMetaDataEnum.GRID_CALL_SUPERIOR_CLOSE_AMOUNT.getValue());
kpiMetaDataDTOList.addAll(itemCloseAmountByDeot);
return kpiMetaDataDTOList;
}
@Override
public List<KpiEvaluationAmountResultDTO> statGridEvaluationMetaData(KpiMetaDataOfEventsFormDTO metaDataFormDto) {
List<KpiEvaluationAmountResultDTO> list = baseDao.selectListGridEvaluationMetaData(metaDataFormDto);
return list;
}
/**
* @param dto
* @return void
@ -927,11 +986,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
/**
*
* 保存接口调用日志
*
* @params [referenceId, businessType, interfaceName, successFlag, callMsgBody, returnMsgBody]
* @return void
* @params [referenceId, businessType, interfaceName, successFlag, callMsgBody, returnMsgBody]
* @author liuchuang
* @since 2019/12/26 11:08
*/
@ -1102,7 +1160,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
// 获取已上报网格平台未结案的项目
List<ItemGridPlatformDTO> gridPlatformDTOList = itemGridPlatformService.listOfGridPlatformItemNotEnd();
// 拉取处理情况
for (ItemGridPlatformDTO dto:
for (ItemGridPlatformDTO dto :
gridPlatformDTOList) {
SearchCaseProcessByTaskIdDto searchResultDot = shiBeiCityGridApi.searchCaseProcessByTaskId(dto.getTaskid());
String successFlag = YesOrNoEnum.NO.value();
@ -1136,11 +1194,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
/**
*
* 删除历史网格化平台处理记录
*
* @params [id]
* @return void
* @params [id]
* @author liuchuang
* @since 2019/12/25 19:08
*/
@ -1156,18 +1213,17 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
/**
*
* 保存新的网格化平台处理记录
*
* @params [progressList]
* @return void
* @params [progressList]
* @author liuchuang
* @since 2019/12/25 19:27
*/
private void insertNewHandleProcess(List<SearchCaseProcessByTaskIdItemDto> progressList, String itemId, String itemGridPlatformId) {
try {
for (SearchCaseProcessByTaskIdItemDto dto:
for (SearchCaseProcessByTaskIdItemDto dto :
progressList) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date insertTime = sdf.parse(dto.getInserttime());

22
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml

@ -1,3 +1,23 @@
#server:
# port: @server.port@
# servlet:
# context-path: /events
#
#nacos:
# config:
# server-addr: @nacos.server-addr@
# type: YAML
# namespace: @nacos.config.namespace@
# group: @nacos.config.group@
# dataId: epdc-events-server
# bootstrap:
# enable: true
# log:
# enable: @nacos.config.bootstrap.log.enable@
#
#spring:
# application:
# name: epdc-events-server
server:
port: @server.port@
servlet:
@ -34,7 +54,7 @@ spring:
tx-service-group: epdc-events-server-fescar-service-group
datasource:
druid:
driver-class-name: com.mysql.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver
url: @spring.datasource.druid.url@
username: @spring.datasource.druid.username@
password: @spring.datasource.druid.password@

8
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml

@ -147,10 +147,10 @@
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="ERROR"/>
<logger name="org.springboot.sample" level="ERROR"/>
<logger name="com.elink.esua.epdc" level="ERROR"/>
<root level="ERROR">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>

6
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/category/CategoryDao.xml

@ -62,7 +62,8 @@
creator,
create_date,
updater,
update_date)
update_date,
info_code)
values
<foreach collection="categorys" item="item" index="index" separator="," >
(#{item.id},
@ -76,7 +77,8 @@
#{item.creator},
#{item.createDate},
#{item.updater},
#{item.updateDate})
#{item.updateDate},
#{item.infoCode})
</foreach>
</insert>
</mapper>

67
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml

@ -58,30 +58,30 @@
<select id="selectListOfPendingReviewEvents" resultType="com.elink.esua.epdc.dto.events.EpdcEventsDTO">
SELECT
temp.id,
temp.nick_Name AS nickName,
temp.event_content AS eventContent,
temp.CREATED_TIME AS createdTime
temp.id,
temp.nick_Name AS nickName,
temp.event_content AS eventContent,
temp.CREATED_TIME AS createdTime
FROM
epdc_events temp
epdc_events temp
WHERE
temp.DEL_FLAG = '0'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( temp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="gridId != null and gridId != ''">
AND (temp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},temp.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},temp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},temp.ALL_DEPT_IDS))
</if>
AND temp.EVENT_STATE = 0
temp.DEL_FLAG = '0'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( temp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="gridId != null and gridId != ''">
AND (temp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},temp.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},temp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},temp.ALL_DEPT_IDS))
</if>
AND temp.EVENT_STATE = 0
ORDER BY temp.CREATED_TIME DESC
</select>
@ -331,6 +331,29 @@
LIMIT #{pageIndex},#{pageSize}
</select>
<select id="statEventReportAmount"
resultType="com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO">
SELECT
t.deptId gridId,
COUNT( t.ID ) reportAmount,
COUNT( t.respondTime > t.updatedTime AND t.EVENT_STATE != '0' OR NULL ) respondAmount
FROM (
SELECT
ev.ID,
dept.deptId,
ev.EVENT_STATE,
DATE_ADD( CREATED_TIME, INTERVAL #{issueLimitHour} HOUR ) respondTime,
ev.UPDATED_TIME updatedTime
FROM
<foreach collection="kpiParamDto.deptIdList" item="item" open="( " separator="UNION ALL" close=") dept ">
SELECT #{item} AS deptId
</foreach>
LEFT JOIN epdc_events ev ON ev.GRID_ID = dept.deptId AND ev.CREATED_TIME BETWEEN #{kpiParamDto.startDate} AND DATE_ADD(#{kpiParamDto.endDate},INTERVAL 1 DAY)
WHERE
ev.DEL_FLAG = '0' OR ev.DEL_FLAG IS NULL
) t
GROUP BY t.deptId
</select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.events.EpdcEventsDTO">
SELECT
ID,

102
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

@ -905,6 +905,108 @@
</if>
</select>
<select id="selectListPeopleEvaluationMetaData" resultType="com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO">
SELECT
dept.deptId,
COUNT( ei.EVALUATION_SCORE = '0' OR NULL ) lowAmount,
COUNT( ei.EVALUATION_SCORE = '1' OR NULL ) mediumAmount,
COUNT( ei.EVALUATION_SCORE = '2' OR NULL ) highAmount
FROM
<foreach collection="deptIdList" item="item" open="( " separator="UNION ALL" close=") dept ">
SELECT #{item} AS deptId
</foreach>
LEFT JOIN epdc_item ei ON ei.GRID_ID = dept.deptId AND ei.CREATED_TIME BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
WHERE ei.DEL_FLAG = '0' OR ei.DEL_FLAG IS NULL
GROUP BY dept.deptId
</select>
<select id="selectListGridEvaluationMetaData" resultType="com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO">
SELECT
dept.deptId,
COUNT(ed.EVALUATION_LEVEL = '0' OR NULL) lowAmount,
COUNT(ed.EVALUATION_LEVEL = '1' OR NULL) mediumAmount,
COUNT(ed.EVALUATION_LEVEL = '2' OR NULL) highAmount
FROM
<foreach item="deptId" collection="deptIdList" open="( " separator="UNION ALL" close=") dept">
SELECT #{deptId} AS deptId
</foreach>
LEFT JOIN epdc_item_evaluate_dept ed ON dept.deptId = ed.DEPT_ID AND ed.CREATED_TIME BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
WHERE
ed.DEL_FLAG = '0' OR ed.DEL_FLAG IS NULL
GROUP BY dept.deptId
</select>
<select id="selectListItemGridCallAmount" resultType="com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO">
SELECT
COUNT(ed.ID) AS metaDataValue,
dept.deptId AS deptId,
'${metaDataCode}' as metaDataCode
FROM
<foreach item="deptId" collection="metaDataFormDto.deptIdList" open="( " separator="UNION ALL" close=") dept">
SELECT #{deptId} AS deptId
</foreach>
LEFT JOIN epdc_item_dept ed ON ed.DEPT_ID = dept.deptId
AND ed.CREATED_TIME BETWEEN #{metaDataFormDto.startDate} AND DATE_ADD(#{metaDataFormDto.endDate},INTERVAL 1 DAY)
AND ed.DEL_FLAG = '0'
GROUP BY dept.deptId
</select>
<select id="selctListItemTimeLimitByDept" resultType="com.elink.esua.epdc.dto.result.KpiItemTimeLimitByDeptResultDTO">
SELECT
dept.deptId,
ed.ITEM_ID,
ed.CREATED_TIME,
ec.id as catecoryId
FROM
<foreach item="deptId" collection="deptIdList" open="( " separator="UNION ALL" close=") dept">
SELECT #{deptId} AS deptId
</foreach>
LEFT JOIN epdc_item_dept ed ON dept.deptId = ed.DEPT_ID
AND DATE_FORMAT( ed.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
AND ed.DEL_FLAG = '0'
LEFT JOIN epdc_item ei ON ed.ITEM_ID = ei.ID
LEFT JOIN epdc_category ec ON ei.CATEGORY_CODE = ec.id
</select>
<select id="selectListItemRespondAmount" resultType="com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO">
select
COUNT(process.ID) AS metaDataValue,
tl.deptId AS deptId,
'${metaDataCode}' as metaDataCode
from
<foreach collection="timeLimitList" item="timeRuleItem" open="( " separator="UNION ALL" close=") tl">
SELECT #{timeRuleItem.deptId} AS deptId ,
#{timeRuleItem.itemId} AS itemId ,
#{timeRuleItem.createdTime} AS createdTime ,
#{timeRuleItem.validRespondTime} AS validRespondTime
</foreach>
LEFT JOIN epdc_item_handle_process process ON tl.deptId = process.HANDLER_DEPT_ID
AND tl.itemId = process.ITEM_ID
AND process.DEL_FLAG = '0'
AND process.CREATED_TIME &lt;= DATE_ADD(tl.createdTime,INTERVAL tl.validRespondTime HOUR)
GROUP BY tl.deptId
</select>
<select id="selectListItemCloseAmount" resultType="com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO">
select
COUNT(process.ID) AS metaDataValue,
tl.deptId AS deptId,
'${metaDataCode}' as metaDataCode
from
<foreach collection="timeLimitList" item="timeRuleItem" open="( " separator="UNION ALL" close=") tl">
SELECT #{timeRuleItem.deptId} AS deptId ,
#{timeRuleItem.itemId} AS itemId ,
#{timeRuleItem.createdTime} AS createdTime ,
#{timeRuleItem.validCloseTime} AS validCloseTime
</foreach>
LEFT JOIN epdc_item_handle_process process ON tl.deptId = process.HANDLER_DEPT_ID
AND process.STATE = '10'
AND tl.itemId = process.ITEM_ID
AND process.DEL_FLAG = '0'
AND process.CREATED_TIME &lt;= DATE_ADD(tl.createdTime,INTERVAL tl.validCloseTime HOUR)
GROUP BY tl.deptId
</select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.item.ItemDTO">
SELECT
ID,

5
esua-epdc/epdc-module/epdc-job/epdc-job-client/pom.xml

@ -18,6 +18,11 @@
<artifactId>epdc-commons-tools</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-user-client</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

20
esua-epdc/epdc-module/epdc-job/epdc-job-server/Dockerfile

@ -0,0 +1,20 @@
# 基础镜像
FROM openjdk:8u242-jre-buster
# 作者
MAINTAINER rongchao@elink-cn.com
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值
ARG JAR_FILE
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_NAME的值
ARG JAR_NAME
# 对应pom.xml文件中的dockerfile-maven-plugin插件SERVER_PORT的值
ARG SERVER_PORT
# 复制打包完成后的jar文件到/opt目录下
ENV JAR_PATH /mnt/epdc/${JAR_NAME}.jar
ADD ${JAR_FILE} $JAR_PATH
# /data设为环境变量
ENV DATAPATH /data
# 挂载/data目录到主机
VOLUME $DATAPATH
# 启动容器时执行
ENTRYPOINT java -jar -Xmx1024m $JAR_PATH
EXPOSE ${SERVER_PORT}

44
esua-epdc/epdc-module/epdc-job/epdc-job-server/pom.xml

@ -75,6 +75,10 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>-->
<!-- 替换Feign原生httpclient -->
<dependency>
<groupId>io.github.openfeign</groupId>
@ -160,6 +164,13 @@
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
</properties>
<!--<properties>
<server.port>9061</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>513d6635-3cfe-401f-b8b6-a04417288f47</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
</properties>-->
</profile>
<profile>
@ -183,6 +194,13 @@
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
</properties>
<!--<properties>
<server.port>9061</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
</properties>-->
</profile>
<profile>
@ -256,6 +274,32 @@
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>prod_jinshui</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<docker.tag>prod</docker.tag>
<server.port>9061</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.19.0.11</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>epdc!redis@master1405</spring.redis.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.20.0.4:80</nacos.server-addr>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.19.0.2:3306/esua_epdc_job?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epdc</spring.datasource.druid.username>
<spring.datasource.druid.password>Elink@833066</spring.datasource.druid.password>
</properties>
</profile>
</profiles>
</project>

1
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/controller/ScheduleJobController.java

@ -67,6 +67,7 @@ public class ScheduleJobController {
@ApiOperation("保存")
@LogOperation("保存")
public Result save(@RequestBody ScheduleJobDTO dto){
dto.setId(null);
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
scheduleJobService.save(dto);

7
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/dao/ScheduleJobDao.java

@ -8,10 +8,10 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.entity.ScheduleJobEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.ScheduleJobEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
@ -27,4 +27,9 @@ public interface ScheduleJobDao extends BaseDao<ScheduleJobEntity> {
* 批量更新状态
*/
int updateBatch(Map<String, Object> map);
/**
* 根据params删除某一个定时任务
*/
void deleteJobByParams(@Param("params")String params);
}

49
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java

@ -0,0 +1,49 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.fallback.KpiFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @author: qushutong
* @Date: 2019/12/12 18:46
* @Description: kpi模块
*/
@FeignClient(name = ServiceConstant.EPDC_KPI_SERVER, fallback = KpiFeignClientFallBack.class)
public interface KpiFeignClient {
/***
* 调用kpi模块执行获取元数据的定时任务
* @param kpiScheduleCode
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2019/12/12 18:55
*/
@GetMapping("kpi/metaData/buildMetaData/{kpiScheduleCode}")
Result runKpiMateData(@PathVariable("kpiScheduleCode") String kpiScheduleCode);
/**
* 根据规则编码启动公式计算
*
* @param ruleCode
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/12/25 14:06
*/
@GetMapping("kpi/rule/calcByCode/{ruleCode}")
Result startTaskByRuleCode(@PathVariable("ruleCode") String ruleCode);
/**
* 将手动打分存入元数据表
*
* @param params
* @return void
* @author work@yujt.net.cn
* @date 2019/12/25 14:06
*/
@GetMapping("kpi/manualScore/initMetaData/{params}")
Result manualScoreToMetaData(@PathVariable("params") String params);
}

27
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.KpiFeignClient;
import org.springframework.stereotype.Component;
@Component
public class KpiFeignClientFallBack implements KpiFeignClient {
@Override
public Result runKpiMateData(String kpiScheduleCode) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_KPI_SERVER, "runKpiMateData", kpiScheduleCode);
}
@Override
public Result startTaskByRuleCode(String ruleCode) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_KPI_SERVER, "startTaskByRuleCode", ruleCode);
}
@Override
public Result manualScoreToMetaData(String params) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_KPI_SERVER, "manualScoreToMetaData", params);
}
}

38
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java

@ -0,0 +1,38 @@
package com.elink.esua.epdc.service;
/**
* @author: qushutong
* @Date: 2019/12/12 16:52
* @Description: kpi 模块查原始数据
*/
public interface ScheduleJobKpiService {
/***
* 启动kpi模块获取原始数据
* @param params
* @return void
* @author qushutong
* @date 2019/12/12 16:56
*/
void startKpiMetaData(String params);
/**
* 启动与规则编码匹配的相关任务
*
* @param ruleCode
* @return void
* @author work@yujt.net.cn
* @date 2019/12/17 14:43
*/
void startTaskByRuleCode(String params);
/**
* 将手动打分存入元数据表
*
* @param jobParams
* @return void
* @author work@yujt.net.cn
* @date 2019/12/25 14:05
*/
void manualScoreToMetaData(String jobParams);
}

6
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobService.java

@ -8,7 +8,6 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.entity.ScheduleJobEntity;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.ScheduleJobDTO;
@ -61,4 +60,9 @@ public interface ScheduleJobService extends BaseService<ScheduleJobEntity> {
* 恢复运行
*/
void resume(Long[] ids);
/**
* 根据params删除某一个定时任务
*/
void deleteJobByParams(String params);
}

36
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.feign.KpiFeignClient;
import com.elink.esua.epdc.service.ScheduleJobKpiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author: qushutong
* @Date: 2019/12/12 16:53
* @Description: 查询gridId
*/
@Component
public class ScheduleJobKpiServiceImpl implements ScheduleJobKpiService {
@Autowired
private KpiFeignClient kpiFeignClient;
@Override
public void startKpiMetaData(String params) {
kpiFeignClient.runKpiMateData(ModuleUtils.encodeByBase64(params));
}
@Override
public void startTaskByRuleCode(String params) {
kpiFeignClient.startTaskByRuleCode(ModuleUtils.encodeByBase64(params));
}
@Override
public void manualScoreToMetaData(String params) {
kpiFeignClient.manualScoreToMetaData(ModuleUtils.encodeByBase64(params));
}
}

6
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobServiceImpl.java

@ -130,4 +130,10 @@ public class ScheduleJobServiceImpl extends BaseServiceImpl<ScheduleJobDao, Sche
updateBatch(ids, ScheduleStatusEnum.NORMAL.value());
}
@Override
public void deleteJobByParams(String params) {
//删除数据
baseDao.deleteJobByParams(params);
}
}

30
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.task;
import com.elink.esua.epdc.service.ScheduleJobKpiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 绩效考核规则的相关任务
*
* @author work@yujt.net.cn
* @date 2019/12/17 14:40
*/
@Component("kpiManualScoreTask")
public class KpiManualScoreTask implements ITask {
@Autowired
private ScheduleJobKpiService kpiService;
/**
* 将手动打分存入元数据表
* @param jobParams
* @return void
* @author work@yujt.net.cn
* @date 2019/12/25 14:02
*/
@Override
public void run(String jobParams) {
kpiService.manualScoreToMetaData(jobParams);
}
}

35
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java

@ -0,0 +1,35 @@
package com.elink.esua.epdc.task;
import com.elink.esua.epdc.service.ScheduleJobKpiService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 绩效考核元数据统计任务
*
* @author: qushutong
* @Date: 2019/12/12 16:50
* @Description: kpi
*/
@Component("kpiMetaDataTask")
public class KpiMetaDataTask implements ITask {
@Autowired
private ScheduleJobKpiService scheduleJobKpiService;
/***
* 查询所有gruidID 统计kpi元数据
* @param params
* @return void
* @author qushutong
* @date 2019/12/12 16:51
*/
@Override
public void run(String params) {
if (StringUtils.isNotBlank(params)) {
//群众反应问题网格响应数 总数
scheduleJobKpiService.startKpiMetaData(params);
}
}
}

34
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiRuleTask.java

@ -0,0 +1,34 @@
package com.elink.esua.epdc.task;
import com.elink.esua.epdc.service.ScheduleJobKpiService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 绩效考核规则的相关任务
*
* @author work@yujt.net.cn
* @date 2019/12/17 14:40
*/
@Component("kpiRuleTask")
public class KpiRuleTask implements ITask {
@Autowired
private ScheduleJobKpiService kpiService;
/**
* 根据规则编码执行计划任务
*
* @param ruleCode
* @return void
* @author work@yujt.net.cn
* @date 2019/12/17 14:42
*/
@Override
public void run(String ruleCode) {
if (StringUtils.isNotBlank(ruleCode)) {
kpiService.startTaskByRuleCode(ruleCode);
}
}
}

21
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/application.yml

@ -1,9 +1,30 @@
#server:
# port: @server.port@
# servlet:
# context-path: /job
#
#nacos:
# config:
# server-addr: @nacos.server-addr@
# type: YAML
# namespace: @nacos.config.namespace@
# group: @nacos.config.group@
# dataId: epdc-job-server
# bootstrap:
# enable: true
# log:
# enable: @nacos.config.bootstrap.log.enable@
#spring:
# application:
# name: epdc-job-server
server:
port: @server.port@
servlet:
context-path: /job
spring:
main:
allow-bean-definition-overriding: true
application:
name: epdc-job-server
# 环境 dev|test|prod

10
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/logback-spring.xml

@ -144,10 +144,10 @@
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="ERROR"/>
<logger name="org.springboot.sample" level="ERROR"/>
<logger name="com.elink.esua.epdc" level="ERROR"/>
<root level="ERROR">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
@ -156,4 +156,4 @@
</root>
</springProfile>
</configuration>
</configuration>

4
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/mapper/ScheduleJobDao.xml

@ -11,4 +11,8 @@
</foreach>
</update>
<delete id="deleteJobByParams" parameterType="String">
delete from schedule_job where params = #{params}
</delete>
</mapper>

24
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java

@ -0,0 +1,24 @@
package com.elink.esua.epdc.constant;
/**
* 绩效考核一些字段常量
*
* @author work@yujt.net.cn
* @date 2019/12/18 19:41
*/
public interface KpiFieldConstant {
String RULE_ID = "RULE_ID";
String RULE_NAME = "RULE_NAME";
String RULE_MODE = "RULE_MODE";
String SCORE_START_DATE = "SCORE_START_DATE";
String START_DATE = "START_DATE";
String SCORE_END_DATE = "SCORE_END_DATE";
String END_DATE = "END_DATE";
String DEPT_ID = "DEPT_ID";
String KPI_CYCLE = "KPI_CYCLE";
String REFERENCE_ID = "REFERENCE_ID";
String DATA_CODE = "DATA_CODE";
}

15
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiItemConstant.java

@ -0,0 +1,15 @@
package com.elink.esua.epdc.constant;
/**
* 绩效考核项目相关常量
*
* @author work@yujt.net.cn
* @date 2019/12/17 10:35
*/
public interface KpiItemConstant {
String RESPOND_ITEM_TIME_LIMIT = "validCloseTime";
String CLOSE_ITEM_TIME_LIMIT = "validRespondTime";
}

65
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiScheduleCodeConstant.java

@ -0,0 +1,65 @@
package com.elink.esua.epdc.constant;
/**
* 考核规则编码常量
*
* @author work@yujt.net.cn
* @date 2019/12/19 14:45
*/
public interface KpiScheduleCodeConstant {
/**
* 元数据统计群众事件上报总数 被响应总数
*/
String META_DATA_PEOPLE_REPORT_AMOUNT = "statPeopleReportAmount";
/**
* 元数据统计群众对网格问题办理 满意度评价
*/
String META_DATA_PEOPLE_EVALUATION = "statPeopleEvaluation";
/**
* 元数据统计包括网格呼叫数网格呼叫被响应数网格呼叫被办结数
*/
String META_DATA_ITEM_HANDLE_AMOUNT = "statItemHandleAmount";
/**
* 元数据统计网格对项目处理 满意度评价
*/
String META_DATA_GRID_EVALUATION = "statGridEvaluation";
/**
* 考核规则基础网格 平时工作成效得分 月度
*/
String GRID_WORK_SCORE_MONTH = "calcGridWorkScoreByMonth";
/**
* 考核规则基础网格 平时工作成效得分 季度
*/
String GRID_WORK_SCORE_QUARTER = "calcGridWorkScoreByQuarter";
/**
* 考核规则基础网格 平时工作成效得分 年度
*/
String GRID_WORK_SCORE_YEAR = "calcGridWorkScoreByYear";
/**
* 考核规则基础网格 考核最终得分 月度
*/
String GRID_FINAL_SCORE_MONTH = "calcGridFinalScoreByMonth";
/**
* 考核规则基础网格 考核最终得分 季度
*/
String GRID_FINAL_SCORE_QUARTER = "calcGridFinalScoreByQuarter";
/**
* 考核规则基础网格 考核最终得分 年度
*/
String GRID_FINAL_SCORE_YEAR = "calcGridFinalScoreByYear";
/**
* 考核规则街道/区直 考核最终得分 月度
*/
String SUPERIOR_FINAL_SCORE_MONTH = "calcSuperiorFinalScoreByMonth";
/**
* 考核规则街道/区直 考核最终得分 季度
*/
String SUPERIOR_FINAL_SCORE_QUARTER = "calcSuperiorFinalScoreByQuarter";
/**
* 考核规则街道/区直 考核最终得分 年度
*/
String SUPERIOR_FINAL_SCORE_YEAR = "calcSuperiorFinalScoreByYear";
}

25
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/EventCountFromDTO.java

@ -0,0 +1,25 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.util.List;
/**
* @author: qushutong
* @Date: 2019/12/17 10:23
* @Description: kpi 群众反应问题数
*/
@Data
public class EventCountFromDTO {
/***
* 所有网格
*/
private List<Long> gridIdList;
/***
* 0 是群众反应问题总数 1 群众反应问题响应数
*/
private String responseType;
}

25
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreDTO.java

@ -18,9 +18,11 @@
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.Min;
@ -37,7 +39,7 @@ import javax.validation.constraints.NotEmpty;
@Data
public class KpiManualScoreDTO implements Serializable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 866931079518321362L;
/**
* 主键
@ -54,23 +56,25 @@ public class KpiManualScoreDTO implements Serializable {
* 被打分的部门id
*/
@NotBlank(message = "考核部门id不能为空")
private String deptId;
private Long deptId;
/**
* 得分
*/
@NotBlank(message = "得分不能为空")
@Min(0)
private Integer score;
private BigDecimal score;
/**
* 考核起止日期
*/
@JSONField(format = "yyyy-MM-dd")
private Date scoreStartDate;
/**
* 考核终止日期
*/
@JSONField(format = "yyyy-MM-dd")
private Date scoreEndDate;
/**
@ -123,6 +127,21 @@ public class KpiManualScoreDTO implements Serializable {
*/
private String allDeptNames;
/**
* 打分者的部门id
*/
private String creatorDeptName;
/**
* 打分者的部门名称
*/
private Long creatorDeptId;
/**
* 被考核部门的网格长姓名
*/
private String leaderName;
/**
* 考核周期起始月
*/

4
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreRuleDTO.java

@ -32,7 +32,7 @@ import java.math.BigDecimal;
@Data
public class KpiManualScoreRuleDTO implements Serializable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = -3127206787305914421L;
/**
* 主键
@ -57,7 +57,7 @@ public class KpiManualScoreRuleDTO implements Serializable {
/**
* 满分
*/
private Integer fullMarks;
private BigDecimal fullMarks;
/**
* 乐观锁

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiManualScoreTempDTO.java

@ -46,7 +46,7 @@ public class KpiManualScoreTempDTO implements Serializable {
/**
* 被打分的部门id
*/
private String deptId;
private Long deptId;
/**
* 得分

113
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiMetaDataDTO.java

@ -0,0 +1,113 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 绩效考核的元数据
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-16
*/
@Data
public class KpiMetaDataDTO implements Serializable {
private static final long serialVersionUID = -5970791269666802942L;
/**
* 主键
*/
private String id;
/**
* 数据项编码
*/
private String dataCode;
/**
* 数据项名称
*/
private String dataName;
/**
* 元数据值
*/
private BigDecimal dataValue;
/**
* 考核周期(字典值 代表月)
*/
private String kpiCycle;
/**
* 考核周期开始日
*/
private Date startDate;
/**
* 考核周期结束日
*/
private Date endDate;
/**
* 部门ID
*/
private Long deptId;
/**
* 部门类别
*/
private String deptTypeKey;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
}

177
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiResultGridDTO.java

@ -0,0 +1,177 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.math.BigDecimal;
/**
* 网格考核最终得分
*
* @author work@yujt.net.cn
* @since v1.0.0 2019-12-17
*/
@Data
public class KpiResultGridDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 网格ID
*/
private Long gridId;
/**
* 手动打分得分
*/
private BigDecimal manualScore;
/**
* 工作得分
*/
private BigDecimal workScore;
/**
* 投票得分
*/
private BigDecimal voteScore;
/**
* 最终得分
*/
private BigDecimal finalScore;
/**
* 考核周期开始日
*/
private Date startDate;
/**
* 考核周期结束日
*/
private Date endDate;
/**
* 被考核部门的网格长姓名
*/
private String leaderName;
/**
* 考核周期(字典值 代表月)
*/
private String kpiCycle;
/**
* 所有上级机构id
*/
private String parentDeptIds;
/**
* 所有上级机构名称
*/
private String parentDeptNames;
/**
* 所有机构id
*/
private String allDeptIds;
/**
* 所有机构名称
*/
private String allDeptNames;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
//虚字段
/**
* 街道名
*/
private String street;
/**
* 社区名
*/
private String community;
/**
* 网格名
*/
private String grid;
/**
* 伪列
*/
private int rownum;
/**
* 规则
*/
private String rule;
/**
* 详情
*/
private String detail;
//虚字段-----------------------
//考核周期开始日
private String startDateString;
//考核周期结束日
private String endDateString;
}

144
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiResultSuperiorDTO.java

@ -0,0 +1,144 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
/**
* 街道或区直绩效考核最终得分
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-23
*/
@Data
public class KpiResultSuperiorDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 网格ID
*/
private Long deptId;
/**
* 最终得分
*/
private BigDecimal finalScore;
/**
* 考核周期开始日
*/
private Date startDate;
/**
* 考核周期结束日
*/
private Date endDate;
/**
* 考核周期(字典值 代表月)
*/
private String kpiCycle;
/**
* 机构类别
*/
private String deptTypeKey;
/**
* 所有上级机构id
*/
private String parentDeptIds;
/**
* 所有上级机构名称
*/
private String parentDeptNames;
/**
* 所有机构id
*/
private String allDeptIds;
/**
* 所有机构名称
*/
private String allDeptNames;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 删除标记
*/
private String delFlag;
//虚字段-----------------------
//考核周期开始日
private String startDateString;
//考核周期结束日
private String endDateString;
//详情页 网格呼叫事项总数
private BigDecimal gridCallSuperiorAmount;
//详情页 响应网格呼叫事项数
private BigDecimal gridCallSuperiorRespAmount;
//详情页 办结网格呼叫事项数
private BigDecimal gridCallSuperiorCloseAmount;
//详情页 工作评议满意数
private BigDecimal gridHighEvaluationAmount;
//详情页 工作评议基本满意数
private BigDecimal gridMediumEvaluationAmount;
//详情页 工作评议不满意数
private BigDecimal gridLowEvaluationAmount;
}

4
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/KpiTimeLimitItemDTO.java

@ -53,7 +53,7 @@ public class KpiTimeLimitItemDTO implements Serializable {
/**
* 项目类别id
*/
private String categoryId;
private Long categoryId;
/**
* 所有上级项目类别id
@ -108,6 +108,6 @@ public class KpiTimeLimitItemDTO implements Serializable {
/**
* 项目类别集合
*/
private List<String> categoryIds;
private List<Long[]> categoryIds;
}

50
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.dto;
import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
/**
* 定时任务参数
*
* @author work@yujt.net.cn
* @date 2020/2/6 14:00
*/
@Slf4j
@Data
public class ScheduleJobParamDTO {
/**
* 规则编码取值范围{@link com.elink.esua.epdc.constant.KpiScheduleCodeConstant}
*/
String ruleCode;
/**
* 日期 格式yyyy-MM-dd
*/
String dateStr;
public ScheduleJobParamDTO getByJobParams(String params) {
ScheduleJobParamDTO scheduleJobParam;
try {
scheduleJobParam = JSONObject.parseObject(params, ScheduleJobParamDTO.class);
if (null != scheduleJobParam) {
String dateStr = scheduleJobParam.getDateStr();
if (StringUtils.isBlank(dateStr) || !ModuleUtils.isValidDate(dateStr, DateUtils.DATE_PATTERN)) {
scheduleJobParam.setDateStr(null);
}
}
} catch (Exception e) {
log.error("定时任务参数格式错误,错误参数:{}", params);
throw new RenException("定时任务参数格式错误");
}
return scheduleJobParam;
}
}

20
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/CategoryInfoFormDTO.java

@ -0,0 +1,20 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/4 10:29
*/
@Data
public class CategoryInfoFormDTO implements Serializable {
private static final long serialVersionUID = -8214790072156444793L;
/**
* 主键集合
*/
private Long[] ids;
}

33
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/KpiMetaDataOfEventsFormDTO.java

@ -0,0 +1,33 @@
package com.elink.esua.epdc.dto.form;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 参数用于统计事件上报数与事件受理数
*
* @author work@yujt.net.cn
* @date 2019/12/19 18:43
*/
@Data
public class KpiMetaDataOfEventsFormDTO {
private static final long serialVersionUID = 9029313054917612850L;
/**
* 所有网格
*/
private List<Long> deptIdList;
/**
* 统计周期开始日
*/
private Date startDate;
/**
* 统计周期结束日
*/
private Date endDate;
}

6
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/KpiRuleSaveOrUpdateFormDTO.java

@ -56,6 +56,12 @@ public class KpiRuleSaveOrUpdateFormDTO implements Serializable {
@NotBlank(message = "考核部门类别不能为空")
private String deptTypeKey;
/**
* 考核部门类别
*/
private String[] deptTypeKeys;
/**
* 乐观锁
*/

38
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/CategoryInfoResultDTO.java

@ -0,0 +1,38 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @Author yinzuomei
* @Date 2019/12/4 9:05
*/
@Data
public class CategoryInfoResultDTO implements Serializable {
private static final long serialVersionUID = 229431634619504645L;
/**
* 主键
*/
private Long id;
/**
* 分类名称
*/
private String categoryName;
/**
* 上级分类ID
*/
private Long pid;
/**
* 所有上级分类ID用逗号分开
*/
private String pids;
/**
* 所有上级分类名称用逗号分开
*/
private String parentNames;
}

36
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiEvaluationAmountResultDTO.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
/**
* 满意数统计结果
*
* @author work@yujt.net.cn
* @date 2019/12/19 18:56
*/
@Data
public class KpiEvaluationAmountResultDTO {
private static final long serialVersionUID = 2661466688976182183L;
/**
* 机构Id
*/
private Long deptId;
/**
* 满意数
*/
private Integer highAmount;
/**
* 基本满意数
*/
private Integer mediumAmount;
/**
* 不满意数
*/
private Integer lowAmount;
}

30
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiEventReportAmountResultDTO.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
/**
* 时间上报数统计结果
* @author work@yujt.net.cn
* @date 2019/12/19 18:56
*/
@Data
public class KpiEventReportAmountResultDTO {
private static final long serialVersionUID = 9029313054917612850L;
/**
* 网格Id
*/
private Long gridId;
/**
* 事件上报数
*/
private Integer reportAmount;
/**
* 网格响应数
*/
private Integer respondAmount;
}

30
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiItemHandleAmountResultDTO.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
/**
* 绩效考核统计项目处理相关数量
*
* @author work@yujt.net.cn
* @date 2019/12/23 10:50
*/
@Data
public class KpiItemHandleAmountResultDTO {
private static final long serialVersionUID = -4265085165992694474L;
/**
* 部门id
*/
private Long deptId;
/**
* 元数据值统计数
*/
private Integer metaDataValue;
/**
* 对应绩效考核元数据编码
*/
private String metaDataCode;
}

48
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiItemTimeLimitByDeptResultDTO.java

@ -0,0 +1,48 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author: qushutong
* @Date: 2019/12/19 16:48
* @Description: 项目 街道 时间规则绑定
*/
@Data
public class KpiItemTimeLimitByDeptResultDTO implements Serializable {
private static final long serialVersionUID = 3349393132985690393L;
/***
* 街道 区直 deptId
*/
private Long deptId;
/***
* 项目ID
*/
private String itemId;
/***
* 事件分类字典id
*/
private String catecoryId;
/***
* 创建时间
*/
private Date createdTime;
/**
* 有效响应时间小时数
*/
private Integer validRespondTime;
/**
* 有效结案时间小时数
*/
private Integer validCloseTime;
}

51
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreTemplateResultDTO.java

@ -12,6 +12,7 @@ import java.util.Date;
*/
@Data
public class KpiManualScoreTemplateResultDTO implements Serializable {
private static final long serialVersionUID = 3228442740296126765L;
/**
* 规则名称
@ -33,43 +34,16 @@ public class KpiManualScoreTemplateResultDTO implements Serializable {
*/
private String grid;
/**
* 部门名称
*/
private String deptName;
/**
* 考核周期
*/
private String kpiCycleName;
/**
* 考核起止日期
*/
private String scoreStartTime;
/**
* 考核终止日期
*/
private String scoreEndTime;
/**
* 得分
*/
private Integer score;
/*********************************************************************************************************/
/**
* epdc_kpi_rule表主键
*/
private String ruleId;
/**
* 被打分的部门id
*/
private String deptId;
/**
* 考核起止日期yyyy-MM-dd
*/
@ -80,28 +54,5 @@ public class KpiManualScoreTemplateResultDTO implements Serializable {
*/
private Date scoreEndDate;
/**
* 所有父级部门id
*/
private String parentDeptIds;
/**
* 所有父级部门名称
*/
private String parentDeptNames;
/**
* 完整部门名称
*/
private String allDeptNames;
/**
* 完整部门id
*/
private String allDeptIds;
/**
* 导出用户id
*/
private String userId;
}

5
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiRuleQueryResultDTO.java

@ -50,6 +50,11 @@ public class KpiRuleQueryResultDTO implements Serializable {
*/
private String deptTypeKey;
/**
* 考核部门类别
*/
private String[] deptTypeKeys;
/**
* 乐观锁
*/

82
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiCycleEnum.java

@ -1,44 +1,54 @@
package com.elink.esua.epdc.enums;
import org.apache.commons.lang3.StringUtils;
/**
* @Auther: yinzuomei
* @author: yinzuomei
* @Date: 2019/12/5 12:41
* @Description: 考核周期枚举
*/
public enum KpiCycleEnum {
/**
* 月month quarter year
*/
KPI_CYCLE_MONTH("month","月"),
/**
*
*/
KPI_CYCLE_QUARTER("quarter","季"),
/**
*
*/
KPI_CYCLE_YEAR("year","年");
private String value;
private String name;
KpiCycleEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 月month quarter year
*/
KPI_CYCLE_MONTH("month", "月"),
/**
*
*/
KPI_CYCLE_QUARTER("quarter", "季"),
/**
*
*/
KPI_CYCLE_YEAR("year", "年");
private String value;
private String name;
KpiCycleEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public String getName() {
return name;
}
public static KpiCycleEnum getByValue(String value){
if(StringUtils.isNotBlank(value)){
KpiCycleEnum[] enums = KpiCycleEnum.values();
for (KpiCycleEnum kpiCycleEnum : enums) {
if(kpiCycleEnum.getValue().equals(value)){
return kpiCycleEnum;
}
}
}
return null;
}
}

116
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java

@ -0,0 +1,116 @@
package com.elink.esua.epdc.enums;
import org.apache.commons.lang3.StringUtils;
/**
* @author: qushutong
* @Date: 2019/12/17 19:53
* @Description: 数据项名称
*/
public enum KpiMetaDataEnum {
/***
* 群众反映问题总数
*/
PEOPLE_REPORT_AMOUNT("people_report_amount", "群众反映问题总数"),
/***
* 群众反映问题被响应数
*/
PEOPLE_REPORT_RESP_AMOUNT("people_report_resp_amount", "群众反映问题被响应数"),
/***
* 居民对项目处理评为满意的评价数量
*/
PEOPLE_HIGH_EVALUATION_AMOUNT("people_high_evaluation_amount", "问题办理满意数"),
/***
* 居民对项目处理评为基本满意的评价数量
*/
PEOPLE_MEDIUM_EVALUATION_AMOUNT("people_medium_evaluation_amount", "问题办理基本满意数"),
/***
* 居民对项目处理评为不满意的评价数量
*/
PEOPLE_LOW_EVALUATION_AMOUNT("people_low_evaluation_amount", "问题办理不满意数"),
/***
* 履行抓基层党建工作得分(上级为网格打分)
*/
GRID_SCORE_BY_SUPERIOR_MANUAL("grid_score_by_superior_manual", "履行抓基层党建工作得分"),
/***
* 网格呼叫上级部门总数
*/
GRID_CALL_SUPERIOR_AMOUNT("grid_call_superior_amount", "网格呼叫总数"),
/***
* 上级部门响应网格呼叫总数
*/
GRID_CALL_SUPERIOR_RESP_AMOUNT("grid_call_superior_resp_amount", "网格呼叫被响应数"),
/***
* 上级部门办结网格呼叫总数
*/
GRID_CALL_SUPERIOR_CLOSE_AMOUNT("grid_call_superior_close_amount", "网格呼叫被办结数"),
/***
* 网格对上级部门处理项目评为满意
*/
GRID_HIGH_EVALUATION_AMOUNT("grid_high_evaluation_amount", "网格评议满意数"),
/***
* 网格对上级部门处理项目评为基本满意
*/
GRID_MEDIUM_EVALUATION_AMOUNT("grid_medium_evaluation_amount", "网格评议基本满意数"),
/***
* 网格对上级部门处理项目评为不满意
*/
GRID_LOW_EVALUATION_AMOUNT("grid_low_evaluation_amount", "网格评议不满意数"),
/***
* 群众满意度投票投票满意的数量
*/
VOTE_HIGH_EVALUATION_AMOUNT("vote_high_evaluation_amount", "群众投票满意数"),
/***
* 群众满意度投票投票基本满意的数量
*/
VOTE_MEDIUM_EVALUATION_AMOUNT("vote_medium_evaluation_amount", "群众投票基本满意数"),
/***
* 群众满意度投票投票不满意的数量
*/
VOTE_LOW_EVALUATION_AMOUNT("vote_low_evaluation_amount", "群众投票不满意数");
private String value;
private String name;
KpiMetaDataEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public String getName() {
return name;
}
public static KpiMetaDataEnum getByValue(String value) {
if (StringUtils.isNotBlank(value)) {
KpiMetaDataEnum[] metaDataEnums = KpiMetaDataEnum.values();
for (KpiMetaDataEnum metaDataEnum : metaDataEnums) {
if (value.equals(metaDataEnum.getValue())) {
return metaDataEnum;
}
}
}
return null;
}
}

50
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiResultGridDataEnum.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.enums;
/**
* @author: zy
* @Date: 2019/12/20
* @Description: 数据项名称
*/
public enum KpiResultGridDataEnum {
/***
* 履行抓基层党建工作职责得分
*/
BASIC_LEVEL_WORK_SCORE("basic_level_work_score", "履行抓基层党建工作职责得分"),
/***
* 群众反映问题网格响应率得分
*/
GRID_PROBLEM_RESPONSE_RATE_SCORE("grid_problem_response_rate_score","群众反映问题网格响应率得分"),
/***
* 群众反映问题网格办理满意率得分
*/
GRID_PROBLEM_SATISFACTION_RATE_SCORE("grid_problem_satisfaction_rate_score","群众反映问题网格办理满意率得分");
private String value;
private String name;
KpiResultGridDataEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

37
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiRuleModeEnum.java

@ -0,0 +1,37 @@
package com.elink.esua.epdc.enums;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
/**
* 规则来源枚举类
*
* @author work@yujt.net.cn
* @date 2019/12/18 19:10
*/
public enum KpiRuleModeEnum {
/**
* 元公式
*/
FORMULA(NumConstant.ZERO_STR),
/**
* 手动打分
*/
MANMUAL_SCORE(NumConstant.ONE_STR),
/**
* 投票
*/
VOTE(NumConstant.TWO_STR);
private String value;
KpiRuleModeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
}

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/Dockerfile

@ -1,5 +1,5 @@
# 基础镜像
FROM adoptopenjdk/openjdk11
FROM openjdk:8u242-jre-buster
# 作者
MAINTAINER rongchao@elink-cn.com
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值

69
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/pom.xml

@ -20,7 +20,7 @@
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-events-client</artifactId>
<artifactId>epdc-admin-client</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
@ -50,7 +50,16 @@
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring.boot.admin.version}</version>
</dependency>
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>-->
<!--RocketMQ-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
<build>
@ -115,7 +124,7 @@
<properties>
<spring.profiles.active>dev</spring.profiles.active>
<server.port>9987</server.port>
<server.port>9069</server.port>
<spring.redis.index>2</spring.redis.index>
<spring.redis.host>47.104.224.45</spring.redis.host>
@ -130,7 +139,18 @@
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
<!--<properties>
<server.port>9987</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>513d6635-3cfe-401f-b8b6-a04417288f47</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
</properties>-->
</profile>
<profile>
@ -153,7 +173,18 @@
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
<!--<properties>
<server.port>9987</server.port>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.config.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.config.namespace>
<nacos.config.group>EPDC_CONFIG_GROUP</nacos.config.group>
<nacos.config.bootstrap.log.enable>true</nacos.config.bootstrap.log.enable>
</properties>-->
</profile>
<profile>
@ -162,7 +193,7 @@
<spring.profiles.active>prod</spring.profiles.active>
<docker.tag>prod</docker.tag>
<server.port>9987</server.port>
<server.port>9069</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>10.5.34.164</spring.redis.host>
@ -203,6 +234,36 @@
<nacos.server-addr>172.16.1.238:8848</nacos.server-addr>
</properties>
</profile>
<profile>
<id>prod_shibei_aliyun</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
<server.port>9069</server.port>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.host>172.16.0.54</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>Elink833066</spring.redis.password>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.16.0.52:3306/esua_epdc_kpi?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epdc</spring.datasource.druid.username>
<spring.datasource.druid.password>Elink@833066</spring.datasource.druid.password>
<!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
<nacos.ip></nacos.ip>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.52:9876;172.16.0.54:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
<rocketmq.consumer.category.group>categoryGroup</rocketmq.consumer.category.group>
</properties>
</profile>
</profiles>
</project>

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiFormulaController.java

@ -44,7 +44,7 @@ import java.util.Map;
* @since v1.0.0 2019-11-26
*/
@RestController
@RequestMapping("kpiformula")
@RequestMapping("formula")
public class KpiFormulaController {
@Autowired

49
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java

@ -17,7 +17,9 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
@ -36,7 +38,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -49,41 +50,41 @@ import java.util.Map;
* @since v1.0.0 2019-12-04
*/
@RestController
@RequestMapping("kpimanualscore")
@RequestMapping("manualScore")
public class KpiManualScoreController {
@Autowired
private KpiManualScoreService kpiManualScoreService;
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
@GetMapping("page")
public Result<PageData<KpiManualScoreResultDTO>> page(@RequestParam Map<String, Object> params){
// PageData<KpiManualScoreDTO> page = kpiManualScoreService.page(params);
@DataFilter(prefix = "and", tableAlias = "kmc", isPendingCreator = false)
public Result<PageData<KpiManualScoreResultDTO>> page(@RequestParam Map<String, Object> params) {
PageData<KpiManualScoreResultDTO> page = kpiManualScoreService.listKpiManualScoreResultDTO(params);
return new Result<PageData<KpiManualScoreResultDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiManualScoreDTO> get(@PathVariable("id") String id){
public Result<KpiManualScoreDTO> get(@PathVariable("id") String id) {
KpiManualScoreDTO data = kpiManualScoreService.get(id);
return new Result<KpiManualScoreDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiManualScoreDTO dto){
public Result save(@RequestBody KpiManualScoreDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return kpiManualScoreService.save(dto);
}
@PutMapping
public Result update(@RequestBody KpiManualScoreDTO dto){
public Result update(@RequestBody KpiManualScoreDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
return kpiManualScoreService.update(dto);
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiManualScoreService.delete(ids);
@ -96,6 +97,19 @@ public class KpiManualScoreController {
ExcelUtils.exportExcelToTarget(response, null, list, KpiManualScoreExcel.class);
}
/**
* 导出打分模版前校验选项
*
* @param params
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/12/16 14:17
*/
@GetMapping("checkExportTemplate")
public Result checkExportTemplate(@RequestParam Map<String, Object> params) {
return kpiManualScoreService.checkExportTemplate(params);
}
/**
* @param params
* @return void
@ -106,8 +120,8 @@ public class KpiManualScoreController {
@GetMapping("exportTemplate")
public void exportTemplate(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiManualScoreTemplateResultDTO> list = kpiManualScoreService.listKpiManualScoreTemplateResultDTO(params);
ExcelUtils.exportExcelToTarget(response, simpleDateFormat.format(new Date()), list, KpiManualScoreTemplateExcel.class);
ExcelUtils.exportExcelToTarget(response,
DateUtils.format(new Date(), DateUtils.DATE_TIME_NO_SPLIT), list, KpiManualScoreTemplateExcel.class);
}
/**
@ -121,4 +135,17 @@ public class KpiManualScoreController {
public Result importManualScoreExcel(@RequestParam("file") MultipartFile file) {
return kpiManualScoreService.importManualScoreExcel(file);
}
/**
* 将手动打分初始化为元数据项
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/12/25 14:10
*/
@GetMapping("initMetaData/{params}")
public Result initManualScoreToMetaData(@PathVariable("params") String params) {
kpiManualScoreService.initManualScoreToMetaData(params);
return new Result();
}
}

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreRuleController.java

@ -44,7 +44,7 @@ import java.util.Map;
* @since v1.0.0 2019-12-02
*/
@RestController
@RequestMapping("kpimanualscorerule")
@RequestMapping("manualScoreRule")
public class KpiManualScoreRuleController {
@Autowired

110
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java

@ -0,0 +1,110 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.constant.KpiScheduleCodeConstant;
import com.elink.esua.epdc.dto.KpiMetaDataDTO;
import com.elink.esua.epdc.excel.KpiMetaDataExcel;
import com.elink.esua.epdc.service.KpiMetaDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 绩效考核的元数据
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-16
*/
@RestController
@RequestMapping("metaData")
public class KpiMetaDataController {
@Autowired
private KpiMetaDataService kpiMetaDataService;
@GetMapping("page")
public Result<PageData<KpiMetaDataDTO>> page(@RequestParam Map<String, Object> params) {
PageData<KpiMetaDataDTO> page = kpiMetaDataService.page(params);
return new Result<PageData<KpiMetaDataDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<KpiMetaDataDTO> get(@PathVariable("id") String id) {
KpiMetaDataDTO data = kpiMetaDataService.get(id);
return new Result<KpiMetaDataDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody KpiMetaDataDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
kpiMetaDataService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody KpiMetaDataDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
kpiMetaDataService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiMetaDataService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<KpiMetaDataDTO> list = kpiMetaDataService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, KpiMetaDataExcel.class);
}
/***
* 构建元数据
* @param
* @return void
* @author qushutong
* @date 2019/12/16 10:17
*/
@GetMapping("buildMetaData/{kpiScheduleCode}")
public Result buildMetaData(@PathVariable("kpiScheduleCode") String kpiScheduleCode) {
kpiMetaDataService.buildMetaData(kpiScheduleCode);
return new Result();
}
}

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

Loading…
Cancel
Save