Browse Source

按照诉求类型分类统计

feature/dangjian
zhaoqifeng 3 years ago
parent
commit
2ad9eee0f2
  1. 30
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/ScreenDeptEventStatDTO.java
  2. 1
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java
  3. 8
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java
  4. 106
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/entity/ScreenDeptEventEfficiencyEntity.java
  5. 32
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/entity/ScreenDeptEventStatEntity.java
  6. 39
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventEfficiencyServiceImpl.java
  7. 34
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java
  8. 266
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventEfficiencyDao.xml
  9. 20
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml

30
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/ScreenDeptEventStatDTO.java

@ -133,6 +133,36 @@ public class ScreenDeptEventStatDTO implements Serializable {
*/
private Integer closedIncr;
/**
* 民生诉求结案数
*/
private Integer livelihoodClosedCount;
/**
* 民生诉求结案增量
*/
private Integer livelihoodClosedIncr;
/**
* 发展诉求结案数
*/
private Integer developClosedCount;
/**
* 发展诉求结案增量
*/
private Integer developClosedIncr;
/**
* 执法诉求结案数
*/
private Integer lawClosedCount;
/**
* 执法诉求结案增量
*/
private Integer lawClosedIncr;
/**
* 删除标识 0未删除1删除
*/

1
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java

@ -24,4 +24,5 @@ public class EventStatisticsFormDTO implements Serializable {
private String startDate;
private String endDate;
private String type;
private String peopleFlag;
}

8
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java

@ -1,5 +1,6 @@
package com.elink.esua.epdc.dto.screen.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -45,5 +46,12 @@ public class EventStatisticsResultDTO implements Serializable {
/**
* 结案总数
*/
@JsonIgnore
private Integer closedCount;
@JsonIgnore
private Integer livelihoodClosedCount;
@JsonIgnore
private Integer developClosedCount;
@JsonIgnore
private Integer lawClosedCount;
}

106
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/entity/ScreenDeptEventEfficiencyEntity.java

@ -114,4 +114,110 @@ public class ScreenDeptEventEfficiencyEntity extends BaseEpdcEntity {
*/
private BigDecimal closedRatio;
/**
* 民生诉求事件数
*/
private Integer livelihoodCount;
/**
* 民生诉求响应数
*/
private Integer livelihoodResponseCount;
/**
* 民生诉求响应率
*/
private BigDecimal livelihoodResponseRatio;
/**
* 民生诉求满意数
*/
private Integer livelihoodSatisfiedCount;
/**
* 民生诉求满意率
*/
private BigDecimal livelihoodSatisfiedRatio;
/**
* 民生诉求结案数
*/
private Integer livelihoodClosedCount;
/**
* 民生诉求结案率
*/
private BigDecimal livelihoodClosedRatio;
/**
* 发展诉求事件数
*/
private Integer developCount;
/**
* 发展诉求响应数
*/
private Integer developResponseCount;
/**
* 发展诉求响应率
*/
private BigDecimal developResponseRatio;
/**
* 发展诉求满意数
*/
private Integer developSatisfiedCount;
/**
* 发展诉求满意率
*/
private BigDecimal developSatisfiedRatio;
/**
* 发展诉求结案数
*/
private Integer developClosedCount;
/**
* 发展诉求结案率
*/
private BigDecimal developClosedRatio;
/**
* 执法诉求事件数
*/
private Integer lawCount;
/**
* 执法诉求响应数
*/
private Integer lawResponseCount;
/**
* 执法诉求响应率
*/
private BigDecimal lawResponseRatio;
/**
* 执法诉求满意数
*/
private Integer lawSatisfiedCount;
/**
* 执法诉求满意率
*/
private BigDecimal lawSatisfiedRatio;
/**
* 执法诉求结案数
*/
private Integer lawClosedCount;
/**
* 执法诉求结案率
*/
private BigDecimal lawClosedRatio;
}

32
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/entity/ScreenDeptEventStatEntity.java

@ -103,6 +103,7 @@ public class ScreenDeptEventStatEntity extends BaseEpdcEntity {
*/
private Integer livelihoodIncr;
/**
* 发展诉求总数
*/
@ -133,4 +134,35 @@ public class ScreenDeptEventStatEntity extends BaseEpdcEntity {
*/
private Integer closedIncr;
/**
* 民生诉求结案数
*/
private Integer livelihoodClosedCount;
/**
* 民生诉求结案增量
*/
private Integer livelihoodClosedIncr;
/**
* 发展诉求结案数
*/
private Integer developClosedCount;
/**
* 发展诉求结案增量
*/
private Integer developClosedIncr;
/**
* 执法诉求结案数
*/
private Integer lawClosedCount;
/**
* 执法诉求结案增量
*/
private Integer lawClosedIncr;
}

39
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventEfficiencyServiceImpl.java

@ -83,6 +83,45 @@ public class ScreenDeptEventEfficiencyServiceImpl extends BaseServiceImpl<Screen
item.setSatisfiedRatio(satisfiedCount.multiply(hundred).divide(closedCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
}
}
if (item.getLivelihoodCount() != NumConstant.ZERO) {
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
BigDecimal eventCount = new BigDecimal(item.getLivelihoodCount());
BigDecimal closedCount = new BigDecimal(item.getLivelihoodClosedCount());
BigDecimal responseCount = new BigDecimal(item.getLivelihoodResponseCount());
BigDecimal satisfiedCount = new BigDecimal(item.getLivelihoodSatisfiedCount());
item.setLivelihoodClosedRatio(closedCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
item.setLivelihoodResponseRatio(responseCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
if (item.getLivelihoodClosedCount() != NumConstant.ZERO) {
item.setLivelihoodSatisfiedRatio(satisfiedCount.multiply(hundred).divide(closedCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
}
}
if (item.getDevelopCount() != NumConstant.ZERO) {
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
BigDecimal eventCount = new BigDecimal(item.getDevelopCount());
BigDecimal closedCount = new BigDecimal(item.getDevelopClosedCount());
BigDecimal responseCount = new BigDecimal(item.getDevelopResponseCount());
BigDecimal satisfiedCount = new BigDecimal(item.getDevelopSatisfiedCount());
item.setDevelopClosedRatio(closedCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
item.setDevelopResponseRatio(responseCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
if (item.getDevelopClosedCount() != NumConstant.ZERO) {
item.setDevelopSatisfiedRatio(satisfiedCount.multiply(hundred).divide(closedCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
}
}
if (item.getLawCount() != NumConstant.ZERO) {
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
BigDecimal eventCount = new BigDecimal(item.getLawCount());
BigDecimal closedCount = new BigDecimal(item.getLawClosedCount());
BigDecimal responseCount = new BigDecimal(item.getLawResponseCount());
BigDecimal satisfiedCount = new BigDecimal(item.getLawSatisfiedCount());
item.setLawClosedRatio(closedCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
item.setLawResponseRatio(responseCount.multiply(hundred).divide(eventCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
if (item.getLawClosedCount() != NumConstant.ZERO) {
item.setLawSatisfiedRatio(satisfiedCount.multiply(hundred).divide(closedCount, NumConstant.SIX, RoundingMode.HALF_UP).stripTrailingZeros());
}
}
});
baseDao.deleteData(statDate);
insertBatch(list);

34
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java

@ -106,9 +106,15 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
}
if (finalClosedMap.containsKey(item.getDeptId())) {
item.setClosedCount(finalClosedMap.get(item.getDeptId()).getClosedCount());
item.setLivelihoodClosedCount(finalClosedMap.get(item.getDeptId()).getLivelihoodClosedCount());
item.setDevelopClosedCount(finalClosedMap.get(item.getDeptId()).getDevelopClosedCount());
item.setLawClosedCount(finalClosedMap.get(item.getDeptId()).getLawClosedCount());
}
if (finalClosedIncrMap.containsKey(item.getDeptId())) {
item.setClosedIncr(finalClosedIncrMap.get(item.getDeptId()).getClosedCount());
item.setLivelihoodClosedIncr(finalClosedMap.get(item.getDeptId()).getLivelihoodClosedCount());
item.setDevelopClosedIncr(finalClosedMap.get(item.getDeptId()).getDevelopClosedCount());
item.setLawClosedIncr(finalClosedMap.get(item.getDeptId()).getLawClosedCount());
}
});
baseDao.deleteData(statDate);
@ -191,10 +197,10 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
//自定义区间
list = baseDao.getEventStatByOther(formDTO);
}
return getBarCategoryResultDTO(result, list);
return getBarCategoryResultDTO(result, list, formDTO.getPeopleFlag());
}
private BarCategoryResultDTO getBarCategoryResultDTO(BarCategoryResultDTO result, List<EventStatisticsResultDTO> list) {
private BarCategoryResultDTO getBarCategoryResultDTO(BarCategoryResultDTO result, List<EventStatisticsResultDTO> list, String peopleFlag) {
if (CollectionUtils.isNotEmpty(list)) {
List<BarCategoryDTO> barList = list.stream().map(item -> {
BarCategoryDTO dto = new BarCategoryDTO();
@ -203,11 +209,35 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
List<BarCategoryDetail> detail = new ArrayList<>();
BarCategoryDetail eventDetail = new BarCategoryDetail();
eventDetail.setLegendName("事件数");
switch (peopleFlag) {
case NumConstant.ZERO_STR:
eventDetail.setCount(item.getLivelihoodCount());
break;
case NumConstant.ONE_STR:
eventDetail.setCount(item.getDevelopCount());
break;
case NumConstant.TWO_STR:
eventDetail.setCount(item.getLawCount());
break;
default:
eventDetail.setCount(item.getEventCount());
}
detail.add(eventDetail);
BarCategoryDetail closedDetail = new BarCategoryDetail();
closedDetail.setLegendName("结案数");
switch (peopleFlag) {
case NumConstant.ZERO_STR:
eventDetail.setCount(item.getLivelihoodClosedCount());
break;
case NumConstant.ONE_STR:
eventDetail.setCount(item.getDevelopClosedCount());
break;
case NumConstant.TWO_STR:
eventDetail.setCount(item.getLawClosedCount());
break;
default:
closedDetail.setCount(item.getClosedCount());
}
detail.add(closedDetail);
dto.setDetail(detail);
return dto;

266
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventEfficiencyDao.xml

@ -17,30 +17,93 @@
a.type_key AS deptLevel,
a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.lawCount), 0) AS lawCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount,
IFNULL(SUM(b.livelihoodClosedCount), 0) AS livelihoodClosedCount,
IFNULL(SUM(b.developClosedCount), 0) AS developClosedCount,
IFNULL(SUM(b.lawClosedCount), 0) AS lawClosedCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount
IFNULL(SUM(b.livelihoodResponseCount), 0) AS livelihoodResponseCount,
IFNULL(SUM(b.developResponseCount), 0) AS developResponseCount,
IFNULL(SUM(b.lawResponseCount), 0) AS lawResponseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount,
IFNULL(SUM(b.livelihoodSatisfiedCount), 0) AS livelihoodSatisfiedCount,
IFNULL(SUM(b.developSatisfiedCount), 0) AS developSatisfiedCount,
IFNULL(SUM(b.lawSatisfiedCount), 0) AS lawSatisfiedCount
FROM meta_sys_dept a
LEFT JOIN (
SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount,
COUNT(CASE ITEM_STATE WHEN '10' THEN ID END) AS closedCount,
COUNT( CASE WHEN PEOPLE_FLAG = '0' THEN ID END) AS livelihoodCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' THEN ID END) AS developCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' THEN ID END) AS lawCount,
COUNT(CASE
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
THEN ID END) AS closedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
THEN ID END) AS livelihoodClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
THEN ID END) AS developClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
THEN ID END) AS lawClosedCount,
COUNT(CASE WHEN processCount > 1 THEN ID END) AS responseCount,
COUNT(CASE WHEN ITEM_STATE = '10' AND (EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0) THEN ID END) AS satisfiedCount
COUNT(CASE WHEN PEOPLE_FLAG = '0' AND processCount > 1 THEN ID END) AS livelihoodResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' AND processCount > 1 THEN ID END) AS developResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' AND processCount > 1 THEN ID END) AS lawResponseCount,
COUNT(CASE
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS satisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS livelihoodSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS developSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS lawSatisfiedCount
FROM epdc_item a
LEFT JOIN (
SELECT ITEM_ID, count(ID) AS 'processCount'
FROM epdc_item_handle_process
WHERE DEL_FLAG = '0'
GROUP BY ITEM_ID) b ON a.ID = b.ITEM_ID
GROUP BY ITEM_ID
) b ON a.ID = b.ITEM_ID
LEFT JOIN (
SELECT b.ITEM_ID,
b.CREATED_TIME
FROM (SELECT ID
FROM epdc_item
WHERE DEL_FLAG = '0'
AND PEOPLE_FLAG IS NOT NULL
AND IS_PEOPLE = '1'
AND EVENT_ID is null
AND ISSUE_ID is null
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}) a
STRAIGHT_JOIN epdc_item_handle_process b
ON b.ITEM_ID = a.ID AND b.DEL_FLAG = '0' AND b.STATE = '60'
) c ON a.ID = c.ITEM_ID
WHERE DEL_FLAG = '0'
AND PEOPLE_FLAG is not null
AND IS_PEOPLE = '1'
AND EVENT_ID is null
AND ISSUE_ID is null
<if test="statDate != null and statDate != ''">
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
</if>
AND DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}
GROUP BY ALL_DEPT_IDS
) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%')
WHERE a.del_flag = '0'
@ -55,24 +118,66 @@
a.type_key AS deptLevel,
a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.lawCount), 0) AS lawCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount,
IFNULL(SUM(b.livelihoodClosedCount), 0) AS livelihoodClosedCount,
IFNULL(SUM(b.developClosedCount), 0) AS developClosedCount,
IFNULL(SUM(b.lawClosedCount), 0) AS lawClosedCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount
IFNULL(SUM(b.livelihoodResponseCount), 0) AS livelihoodResponseCount,
IFNULL(SUM(b.developResponseCount), 0) AS developResponseCount,
IFNULL(SUM(b.lawResponseCount), 0) AS lawResponseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount,
IFNULL(SUM(b.livelihoodSatisfiedCount), 0) AS livelihoodSatisfiedCount,
IFNULL(SUM(b.developSatisfiedCount), 0) AS developSatisfiedCount,
IFNULL(SUM(b.lawSatisfiedCount), 0) AS lawSatisfiedCount
FROM meta_sys_dept a
LEFT JOIN (
SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount,
COUNT( CASE WHEN PEOPLE_FLAG = '0' THEN ID END) AS livelihoodCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' THEN ID END) AS developCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' THEN ID END) AS lawCount,
COUNT(CASE
WHEN DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
THEN ID END) AS closedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
THEN ID END) AS livelihoodClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
THEN ID END) AS developClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
THEN ID END) AS lawClosedCount,
COUNT(CASE WHEN DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS responseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '0' AND DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS livelihoodResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' AND DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS developResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' AND DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS lawResponseCount,
COUNT(CASE
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS satisfiedCount,
COUNT(CASE
WHEN ITEM_STATE = '10' AND
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} AND
(EVALUATION_SCORE != 0 OR
(DATE_FORMAT(EVALUATION_TIME, '%Y-%m') = #{statDate} AND
EVALUATION_SCORE > 0))
THEN ID END) AS satisfiedCount
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS livelihoodSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS developSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS lawSatisfiedCount
FROM epdc_item a
LEFT JOIN (
SELECT a.ITEM_ID,
@ -133,24 +238,66 @@
a.type_key AS deptLevel,
a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.lawCount), 0) AS lawCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount,
IFNULL(SUM(b.livelihoodClosedCount), 0) AS livelihoodClosedCount,
IFNULL(SUM(b.developClosedCount), 0) AS developClosedCount,
IFNULL(SUM(b.lawClosedCount), 0) AS lawClosedCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount
IFNULL(SUM(b.livelihoodResponseCount), 0) AS livelihoodResponseCount,
IFNULL(SUM(b.developResponseCount), 0) AS developResponseCount,
IFNULL(SUM(b.lawResponseCount), 0) AS lawResponseCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount,
IFNULL(SUM(b.livelihoodSatisfiedCount), 0) AS livelihoodSatisfiedCount,
IFNULL(SUM(b.developSatisfiedCount), 0) AS developSatisfiedCount,
IFNULL(SUM(b.lawSatisfiedCount), 0) AS lawSatisfiedCount
FROM meta_sys_dept a
LEFT JOIN (
SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount,
COUNT( CASE WHEN PEOPLE_FLAG = '0' THEN ID END) AS livelihoodCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' THEN ID END) AS developCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' THEN ID END) AS lawCount,
COUNT(CASE
WHEN DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
THEN ID END) AS closedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
THEN ID END) AS livelihoodClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
THEN ID END) AS developClosedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
THEN ID END) AS lawClosedCount,
COUNT(CASE WHEN DATE_FORMAT(b.CREATED_TIME, '%Y') = #{statDate} THEN ID END) AS responseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '0' AND DATE_FORMAT(b.CREATED_TIME, '%Y') = #{statDate} THEN ID END) AS livelihoodResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '1' AND DATE_FORMAT(b.CREATED_TIME, '%Y') = #{statDate} THEN ID END) AS developResponseCount,
COUNT(CASE WHEN PEOPLE_FLAG = '2' AND DATE_FORMAT(b.CREATED_TIME, '%Y') = #{statDate} THEN ID END) AS lawResponseCount,
COUNT(CASE
WHEN ITEM_STATE = '10' AND
WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS satisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} AND
(EVALUATION_SCORE != 0 OR
(DATE_FORMAT(EVALUATION_TIME, '%Y') = #{statDate} AND
EVALUATION_SCORE > 0))
THEN ID END) AS satisfiedCount
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS livelihoodSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS developSatisfiedCount,
COUNT(CASE
WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} AND
(EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0)
THEN ID END) AS lawSatisfiedCount
FROM epdc_item a
LEFT JOIN (
SELECT a.ITEM_ID,
@ -205,28 +352,66 @@
<select id="getScreenData" resultType="com.elink.esua.epdc.dto.screen.result.EfficiencyEvaluationResultDTO">
SELECT DEPT_ID,
DEPT_NAME,
<if test="peopleFlag != null and peopleFlag != ''">
EVENT_COUNT,
CLOSED_COUNT,
RESPONSE_COUNT,
SATISFIED_COUNT,
CASE RESPONSE_RATIO
WHEN 0 THEN
'0%'
ELSE
CONCAT(ROUND(RESPONSE_RATIO, 1), '%')
CASE RESPONSE_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(RESPONSE_RATIO, 1), '%')
END RESPONSE_RATIO,
CASE SATISFIED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(SATISFIED_RATIO, 1), '%')
END SATISFIED_RATIO,
CASE CLOSED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(CLOSED_RATIO, 1), '%')
END CLOSED_RATIO
</if>
<if test='peopleFlag == "0"'>
LIVELIHOOD_COUNT AS EVENT_COUNT,
LIVELIHOOD_CLOSED_COUNT AS CLOSED_COUNT,
LIVELIHOOD_RESPONSE_COUNT AS RESPONSE_COUNT,
LIVELIHOOD_SATISFIED_COUNT AS SATISFIED_COUNT,
CASE LIVELIHOOD_RESPONSE_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LIVELIHOOD_RESPONSE_RATIO, 1), '%')
END RESPONSE_RATIO,
CASE LIVELIHOOD_SATISFIED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LIVELIHOOD_SATISFIED_RATIO, 1), '%')
END SATISFIED_RATIO,
CASE LIVELIHOOD_CLOSED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LIVELIHOOD_CLOSED_RATIO, 1), '%')
END CLOSED_RATIO
</if>
<if test='peopleFlag == "1"'>
DEVELOP_COUNT AS EVENT_COUNT,
DEVELOP_CLOSED_COUNT AS CLOSED_COUNT,
DEVELOP_RESPONSE_COUNT AS RESPONSE_COUNT,
DEVELOP_SATISFIED_COUNT AS SATISFIED_COUNT,
CASE DEVELOP_RESPONSE_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(DEVELOP_RESPONSE_RATIO, 1), '%')
END RESPONSE_RATIO,
CASE SATISFIED_RATIO
WHEN 0 THEN
'0%'
ELSE
CONCAT(ROUND(SATISFIED_RATIO, 1), '%')
CASE DEVELOP_SATISFIED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(DEVELOP_SATISFIED_RATIO, 1), '%')
END SATISFIED_RATIO,
CASE CLOSED_RATIO
WHEN 0 THEN
'0%'
ELSE
CONCAT(ROUND(CLOSED_RATIO, 1), '%')
CASE DEVELOP_CLOSED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(DEVELOP_CLOSED_RATIO, 1), '%')
END CLOSED_RATIO
</if>
<if test='peopleFlag == "2"'>
LAW_COUNT AS EVENT_COUNT,
LAW_CLOSED_COUNT AS CLOSED_COUNT,
LAW_RESPONSE_COUNT AS RESPONSE_COUNT,
LAW_SATISFIED_COUNT AS SATISFIED_COUNT,
CASE LAW_RESPONSE_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LAW_RESPONSE_RATIO, 1), '%')
END RESPONSE_RATIO,
CASE LAW_SATISFIED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LAW_SATISFIED_RATIO, 1), '%')
END SATISFIED_RATIO,
CASE LAW_CLOSED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(LAW_CLOSED_RATIO, 1), '%')
END CLOSED_RATIO
</if>
FROM screen_dept_event_efficiency
WHERE DEL_FLAG = '0'
AND PID = #{deptId}
@ -289,6 +474,9 @@
AND IS_PEOPLE = '1'
AND EVENT_ID is null
AND ISSUE_ID is null
<if test="peopleFlag != null and peopleFlag != ''">
AND PEOPLE_FLAG = #{peopleFlag}
</if>
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &gt;= #{startDate}
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate}
) a
@ -312,6 +500,9 @@
AND IS_PEOPLE = '1'
AND EVENT_ID is null
AND ISSUE_ID is null
<if test="peopleFlag != null and peopleFlag != ''">
AND PEOPLE_FLAG = #{peopleFlag}
</if>
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &gt;= #{startDate}
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate}) a
STRAIGHT_JOIN epdc_item_handle_process b ON b.ITEM_ID = a.ID AND b.DEL_FLAG = '0' AND b.STATE = '60'
@ -323,6 +514,9 @@
AND IS_PEOPLE = '1'
AND EVENT_ID is null
AND ISSUE_ID is null
<if test="peopleFlag != null and peopleFlag != ''">
AND PEOPLE_FLAG = #{peopleFlag}
</if>
GROUP BY ALL_DEPT_IDS
) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%')
WHERE a.del_flag = '0'

20
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml

@ -62,7 +62,10 @@
LIVELIHOOD_COUNT,
DEVELOP_COUNT,
LAW_COUNT,
CLOSED_COUNT
CLOSED_COUNT,
LIVELIHOOD_CLOSED_COUNT,
DEVELOP_CLOSED_COUNT,
LAW_CLOSED_COUNT
FROM screen_dept_event_stat
WHERE PID = #{deptId}
AND STAT_DATE = #{statDate}
@ -79,7 +82,10 @@
SUM(LIVELIHOOD_INCR) LIVELIHOOD_COUNT,
SUM(DEVELOP_INCR) DEVELOP_COUNT,
SUM(LAW_INCR) LAW_COUNT,
SUM(CLOSED_INCR) CLOSED_COUNT
SUM(CLOSED_INCR) CLOSED_COUNT,
SUM(LIVELIHOOD_CLOSED_INCR) LIVELIHOOD_CLOSED_COUNT,
SUM(DEVELOP_CLOSED_INCR) DEVELOP_CLOSED_COUNT,
SUM(LAW_CLOSED_INCR) LAW_CLOSED_COUNT
FROM screen_dept_event_stat
WHERE PID = #{deptId}
AND DEPT_LEVEL != 'street_dept'
@ -107,11 +113,17 @@
a.pids,
a.type_key AS deptLevel,
a.sort AS deptSort,
IFNULL(SUM(b.closedCount), 0) AS 'closedCount'
IFNULL(SUM(b.closedCount), 0) AS 'closedCount',
IFNULL(SUM(b.livelihoodClosedCount), 0) AS 'livelihoodClosedCount',
IFNULL(SUM(b.developClosedCount), 0) AS 'developClosedCount',
IFNULL(SUM(b.lawClosedCount), 0) AS 'lawClosedCount'
FROM meta_sys_dept a
LEFT JOIN (
SELECT a.ALL_DEPT_IDS,
COUNT(a.ID) AS 'closedCount'
COUNT(a.ID) AS 'closedCount',
CASE a.PEOPLE_FLAG WHEN '0' THEN COUNT(a.ID) END AS 'livelihoodClosedCount',
CASE a.PEOPLE_FLAG WHEN '1' THEN COUNT(a.ID) END AS 'developClosedCount',
CASE a.PEOPLE_FLAG WHEN '2' THEN COUNT(a.ID) END AS 'lawClosedCount'
FROM epdc_item a
INNER JOIN epdc_item_handle_process b
ON a.ID = b.ITEM_ID AND b.DEL_FLAG = '0' AND b.STATE = '60'

Loading…
Cancel
Save