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. 40
      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. 38
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java
  8. 350
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventEfficiencyDao.xml
  9. 28
      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 closedIncr;
/**
* 民生诉求结案数
*/
private Integer livelihoodClosedCount;
/**
* 民生诉求结案增量
*/
private Integer livelihoodClosedIncr;
/**
* 发展诉求结案数
*/
private Integer developClosedCount;
/**
* 发展诉求结案增量
*/
private Integer developClosedIncr;
/**
* 执法诉求结案数
*/
private Integer lawClosedCount;
/**
* 执法诉求结案增量
*/
private Integer lawClosedIncr;
/** /**
* 删除标识 0未删除1删除 * 删除标识 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 startDate;
private String endDate; private String endDate;
private String type; 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; package com.elink.esua.epdc.dto.screen.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -45,5 +46,12 @@ public class EventStatisticsResultDTO implements Serializable {
/** /**
* 结案总数 * 结案总数
*/ */
@JsonIgnore
private Integer closedCount; 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 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;
} }

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

@ -98,12 +98,13 @@ public class ScreenDeptEventStatEntity extends BaseEpdcEntity {
*/ */
private Integer livelihoodCount; private Integer livelihoodCount;
/** /**
* 民生诉求增量 * 民生诉求增量
*/ */
private Integer livelihoodIncr; private Integer livelihoodIncr;
/**
/**
* 发展诉求总数 * 发展诉求总数
*/ */
private Integer developCount; private Integer developCount;
@ -133,4 +134,35 @@ public class ScreenDeptEventStatEntity extends BaseEpdcEntity {
*/ */
private Integer closedIncr; 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()); 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); baseDao.deleteData(statDate);
insertBatch(list); insertBatch(list);

38
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())) { if (finalClosedMap.containsKey(item.getDeptId())) {
item.setClosedCount(finalClosedMap.get(item.getDeptId()).getClosedCount()); 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())) { if (finalClosedIncrMap.containsKey(item.getDeptId())) {
item.setClosedIncr(finalClosedIncrMap.get(item.getDeptId()).getClosedCount()); 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); baseDao.deleteData(statDate);
@ -191,10 +197,10 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
//自定义区间 //自定义区间
list = baseDao.getEventStatByOther(formDTO); 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)) { if (CollectionUtils.isNotEmpty(list)) {
List<BarCategoryDTO> barList = list.stream().map(item -> { List<BarCategoryDTO> barList = list.stream().map(item -> {
BarCategoryDTO dto = new BarCategoryDTO(); BarCategoryDTO dto = new BarCategoryDTO();
@ -203,11 +209,35 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl<ScreenDeptEv
List<BarCategoryDetail> detail = new ArrayList<>(); List<BarCategoryDetail> detail = new ArrayList<>();
BarCategoryDetail eventDetail = new BarCategoryDetail(); BarCategoryDetail eventDetail = new BarCategoryDetail();
eventDetail.setLegendName("事件数"); eventDetail.setLegendName("事件数");
eventDetail.setCount(item.getEventCount()); 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); detail.add(eventDetail);
BarCategoryDetail closedDetail = new BarCategoryDetail(); BarCategoryDetail closedDetail = new BarCategoryDetail();
closedDetail.setLegendName("结案数"); closedDetail.setLegendName("结案数");
closedDetail.setCount(item.getClosedCount()); 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); detail.add(closedDetail);
dto.setDetail(detail); dto.setDetail(detail);
return dto; return dto;

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

@ -9,39 +9,102 @@
AND STAT_DATE = #{statDate} AND STAT_DATE = #{statDate}
</delete> </delete>
<select id="getEventEfficiencyDaily" resultType="com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventEfficiencyEntity"> <select id="getEventEfficiencyDaily" resultType="com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventEfficiencyEntity">
SELECT a.id AS deptId, SELECT a.id AS deptId,
a.`name` AS deptName, a.`name` AS deptName,
a.pid, a.pid,
a.pids, a.pids,
'1' AS statType, '1' AS statType,
a.type_key AS deptLevel, a.type_key AS deptLevel,
a.sort AS deptSort, a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount, IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount, IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount, IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount 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.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 FROM meta_sys_dept a
LEFT JOIN ( LEFT JOIN (
SELECT ALL_DEPT_IDS, SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount, 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 processCount > 1 THEN ID END) AS responseCount, COUNT(CASE WHEN PEOPLE_FLAG = '1' THEN ID END) AS developCount,
COUNT(CASE WHEN ITEM_STATE = '10' AND (EVALUATION_SCORE != 0 OR EVALUATION_SCORE > 0) THEN ID END) AS satisfiedCount 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 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 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
LEFT JOIN ( LEFT JOIN (
SELECT ITEM_ID, count(ID) AS 'processCount' SELECT b.ITEM_ID,
FROM epdc_item_handle_process b.CREATED_TIME
WHERE DEL_FLAG = '0' FROM (SELECT ID
GROUP BY ITEM_ID) b ON a.ID = b.ITEM_ID FROM epdc_item
WHERE DEL_FLAG = '0' WHERE DEL_FLAG = '0'
AND PEOPLE_FLAG is not null AND PEOPLE_FLAG IS NOT NULL
AND IS_PEOPLE = '1' AND IS_PEOPLE = '1'
AND EVENT_ID is null AND EVENT_ID is null
AND ISSUE_ID is null AND ISSUE_ID is null
<if test="statDate != null and statDate != ''"> AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate}) a
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{statDate} STRAIGHT_JOIN epdc_item_handle_process b
</if> ON b.ITEM_ID = a.ID AND b.DEL_FLAG = '0' AND b.STATE = '60'
GROUP BY ALL_DEPT_IDS ) 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
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, '%') ) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%')
WHERE a.del_flag = '0' WHERE a.del_flag = '0'
GROUP BY a.id GROUP BY a.id
@ -54,25 +117,67 @@
'2' AS statType, '2' AS statType,
a.type_key AS deptLevel, a.type_key AS deptLevel,
a.sort AS deptSort, a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount, IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount, IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount, IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount 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.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 FROM meta_sys_dept a
LEFT JOIN ( LEFT JOIN (
SELECT ALL_DEPT_IDS, SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount, 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 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 COUNT(CASE
WHEN DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} WHEN PEOPLE_FLAG = '1' AND ITEM_STATE = '10' AND
THEN ID END) AS closedCount, DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
COUNT(CASE WHEN DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS responseCount, THEN ID END) AS developClosedCount,
COUNT(CASE COUNT(CASE
WHEN ITEM_STATE = '10' AND WHEN PEOPLE_FLAG = '2' AND ITEM_STATE = '10' AND
DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate} AND DATE_FORMAT(c.CREATED_TIME, '%Y-%m') = #{statDate}
(EVALUATION_SCORE != 0 OR THEN ID END) AS lawClosedCount,
(DATE_FORMAT(EVALUATION_TIME, '%Y-%m') = #{statDate} AND COUNT(CASE WHEN DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS responseCount,
EVALUATION_SCORE > 0)) COUNT(CASE WHEN PEOPLE_FLAG = '0' AND DATE_FORMAT(b.CREATED_TIME, '%Y-%m') = #{statDate} THEN ID END) AS livelihoodResponseCount,
THEN ID END) AS satisfiedCount 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 PEOPLE_FLAG = '0' 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 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 FROM epdc_item a
LEFT JOIN ( LEFT JOIN (
SELECT a.ITEM_ID, SELECT a.ITEM_ID,
@ -132,25 +237,67 @@
'3' AS statType, '3' AS statType,
a.type_key AS deptLevel, a.type_key AS deptLevel,
a.sort AS deptSort, a.sort AS deptSort,
IFNULL(SUM(b.eventCount), 0) AS eventCount, IFNULL(SUM(b.eventCount), 0) AS eventCount,
IFNULL(SUM(b.closedCount), 0) AS closedCount, IFNULL(SUM(b.livelihoodCount), 0) AS livelihoodCount,
IFNULL(SUM(b.responseCount), 0) AS responseCount, IFNULL(SUM(b.developCount), 0) AS developCount,
IFNULL(SUM(b.satisfiedCount), 0) AS satisfiedCount 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.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 FROM meta_sys_dept a
LEFT JOIN ( LEFT JOIN (
SELECT ALL_DEPT_IDS, SELECT ALL_DEPT_IDS,
COUNT(ID) AS eventCount, COUNT(ID) AS eventCount,
COUNT(CASE COUNT( CASE WHEN PEOPLE_FLAG = '0' THEN ID END) AS livelihoodCount,
WHEN DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} COUNT(CASE WHEN PEOPLE_FLAG = '1' THEN ID END) AS developCount,
THEN ID END) AS closedCount, COUNT(CASE WHEN PEOPLE_FLAG = '2' THEN ID END) AS lawCount,
COUNT(CASE WHEN DATE_FORMAT(b.CREATED_TIME, '%Y') = #{statDate} THEN ID END) AS responseCount, COUNT(CASE
COUNT(CASE WHEN ITEM_STATE = '10' AND DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
WHEN ITEM_STATE = '10' AND THEN ID END) AS closedCount,
DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate} AND COUNT(CASE
(EVALUATION_SCORE != 0 OR WHEN PEOPLE_FLAG = '0' AND ITEM_STATE = '10' AND
(DATE_FORMAT(EVALUATION_TIME, '%Y') = #{statDate} AND DATE_FORMAT(c.CREATED_TIME, '%Y') = #{statDate}
EVALUATION_SCORE > 0)) THEN ID END) AS livelihoodClosedCount,
THEN ID END) AS satisfiedCount 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 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 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 FROM epdc_item a
LEFT JOIN ( LEFT JOIN (
SELECT a.ITEM_ID, SELECT a.ITEM_ID,
@ -205,28 +352,66 @@
<select id="getScreenData" resultType="com.elink.esua.epdc.dto.screen.result.EfficiencyEvaluationResultDTO"> <select id="getScreenData" resultType="com.elink.esua.epdc.dto.screen.result.EfficiencyEvaluationResultDTO">
SELECT DEPT_ID, SELECT DEPT_ID,
DEPT_NAME, DEPT_NAME,
EVENT_COUNT, <if test="peopleFlag != null and peopleFlag != ''">
CLOSED_COUNT, EVENT_COUNT,
RESPONSE_COUNT, CLOSED_COUNT,
SATISFIED_COUNT, RESPONSE_COUNT,
CASE RESPONSE_RATIO SATISFIED_COUNT,
WHEN 0 THEN CASE RESPONSE_RATIO WHEN 0 THEN '0%'
'0%' ELSE CONCAT(ROUND(RESPONSE_RATIO, 1), '%')
ELSE END RESPONSE_RATIO,
CONCAT(ROUND(RESPONSE_RATIO, 1), '%') CASE SATISFIED_RATIO WHEN 0 THEN '0%'
END RESPONSE_RATIO, ELSE CONCAT(ROUND(SATISFIED_RATIO, 1), '%')
CASE SATISFIED_RATIO END SATISFIED_RATIO,
WHEN 0 THEN CASE CLOSED_RATIO WHEN 0 THEN '0%'
'0%' ELSE CONCAT(ROUND(CLOSED_RATIO, 1), '%')
ELSE END CLOSED_RATIO
CONCAT(ROUND(SATISFIED_RATIO, 1), '%') </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 DEVELOP_SATISFIED_RATIO WHEN 0 THEN '0%'
ELSE CONCAT(ROUND(DEVELOP_SATISFIED_RATIO, 1), '%')
END SATISFIED_RATIO,
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, END SATISFIED_RATIO,
CASE CLOSED_RATIO CASE LAW_CLOSED_RATIO WHEN 0 THEN '0%'
WHEN 0 THEN ELSE CONCAT(ROUND(LAW_CLOSED_RATIO, 1), '%')
'0%' END CLOSED_RATIO
ELSE </if>
CONCAT(ROUND(CLOSED_RATIO, 1), '%')
END CLOSED_RATIO
FROM screen_dept_event_efficiency FROM screen_dept_event_efficiency
WHERE DEL_FLAG = '0' WHERE DEL_FLAG = '0'
AND PID = #{deptId} AND PID = #{deptId}
@ -289,6 +474,9 @@
AND IS_PEOPLE = '1' AND IS_PEOPLE = '1'
AND EVENT_ID is null AND EVENT_ID is null
AND ISSUE_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') &gt;= #{startDate}
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate} AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate}
) a ) a
@ -312,6 +500,9 @@
AND IS_PEOPLE = '1' AND IS_PEOPLE = '1'
AND EVENT_ID is null AND EVENT_ID is null
AND ISSUE_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') &gt;= #{startDate}
AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') &lt;= #{endDate}) a 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' 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 IS_PEOPLE = '1'
AND EVENT_ID is null AND EVENT_ID is null
AND ISSUE_ID is null AND ISSUE_ID is null
<if test="peopleFlag != null and peopleFlag != ''">
AND PEOPLE_FLAG = #{peopleFlag}
</if>
GROUP BY ALL_DEPT_IDS GROUP BY ALL_DEPT_IDS
) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%') ) b ON b.ALL_DEPT_IDS LIKE CONCAT('%', a.id, '%')
WHERE a.del_flag = '0' WHERE a.del_flag = '0'

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

@ -62,7 +62,10 @@
LIVELIHOOD_COUNT, LIVELIHOOD_COUNT,
DEVELOP_COUNT, DEVELOP_COUNT,
LAW_COUNT, LAW_COUNT,
CLOSED_COUNT CLOSED_COUNT,
LIVELIHOOD_CLOSED_COUNT,
DEVELOP_CLOSED_COUNT,
LAW_CLOSED_COUNT
FROM screen_dept_event_stat FROM screen_dept_event_stat
WHERE PID = #{deptId} WHERE PID = #{deptId}
AND STAT_DATE = #{statDate} AND STAT_DATE = #{statDate}
@ -79,7 +82,10 @@
SUM(LIVELIHOOD_INCR) LIVELIHOOD_COUNT, SUM(LIVELIHOOD_INCR) LIVELIHOOD_COUNT,
SUM(DEVELOP_INCR) DEVELOP_COUNT, SUM(DEVELOP_INCR) DEVELOP_COUNT,
SUM(LAW_INCR) LAW_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 FROM screen_dept_event_stat
WHERE PID = #{deptId} WHERE PID = #{deptId}
AND DEPT_LEVEL != 'street_dept' AND DEPT_LEVEL != 'street_dept'
@ -101,17 +107,23 @@
</select> </select>
<select id="getEventClosedStat" resultType="com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventStatEntity"> <select id="getEventClosedStat" resultType="com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventStatEntity">
SELECT a.id AS deptId, SELECT a.id AS deptId,
a.`name` AS deptName, a.`name` AS deptName,
a.pid, a.pid,
a.pids, a.pids,
a.type_key AS deptLevel, a.type_key AS deptLevel,
a.sort AS deptSort, 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 FROM meta_sys_dept a
LEFT JOIN ( LEFT JOIN (
SELECT a.ALL_DEPT_IDS, 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 FROM epdc_item a
INNER JOIN epdc_item_handle_process b INNER JOIN epdc_item_handle_process b
ON a.ID = b.ITEM_ID AND b.DEL_FLAG = '0' AND b.STATE = '60' ON a.ID = b.ITEM_ID AND b.DEL_FLAG = '0' AND b.STATE = '60'

Loading…
Cancel
Save