Browse Source

办结网格呼叫总数 响应网格呼叫总数 网格呼叫总数

feature/dangjian
曲树通 6 years ago
parent
commit
ac57bd5b5f
  1. 50
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/KpiTimeRuleBindItemResoultDto.java
  2. 31
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  3. 55
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  4. 87
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml
  5. 5
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcEventsItemMataFromDTO.java
  6. 76
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiDataEnum.java
  7. 23
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java

50
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/KpiTimeRuleBindItemResoultDto.java

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

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

@ -21,6 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.KpiMetaDataDTO;
import com.elink.esua.epdc.dto.form.EpdcEventsItemMataFromDTO;
import com.elink.esua.epdc.dto.form.KpiEventEvaluationFromDTO;
import com.elink.esua.epdc.dto.events.result.KpiTimeRuleBindItemResoultDto;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemCategoryStatisticsFormDTO;
@ -207,4 +208,34 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
List<KpiMetaDataDTO> selectListItemCountData(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO);
/***
* 查询每个项目的时间规则
* @param epdcEventsItemMataFromDTO
* @return java.util.List<com.elink.esua.epdc.dto.events.result.KpiTimeRuleBindItemResoultDto>
* @author qushutong
* @date 2019/12/19 17:16
*/
List<KpiTimeRuleBindItemResoultDto> selctListTimeRuleItem(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO);
/***
* 查询街道区直有效响应数
* @param kpiTimeRuleBindItemResoultDtoList
* @return
* @author qushutong
* @date 2019/12/19 18:58
*/
List<KpiMetaDataDTO> selectRespondItemCount(@Param("timeRuleList") List<KpiTimeRuleBindItemResoultDto> kpiTimeRuleBindItemResoultDtoList,@Param("matafomDto")EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO);
/***
* 上级部门关闭网格呼叫总数
* @param kpiTimeRuleBindItemResoultDtoList
* @return
* @author qushutong
* @date 2019/12/19 18:58
*/
List<KpiMetaDataDTO> selectCloseItemCount(@Param("timeRuleList") List<KpiTimeRuleBindItemResoultDto> kpiTimeRuleBindItemResoultDtoList,@Param("matafomDto")EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO);
}

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

@ -25,15 +25,14 @@ 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.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.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.constant.ImageConstant;
import com.elink.esua.epdc.constant.ItemInformationConstant;
import com.elink.esua.epdc.constant.*;
import com.elink.esua.epdc.constants.MenuCodeConstant;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.KpiMetaDataDTO;
@ -43,6 +42,7 @@ import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.form.EpdcEventsItemMataFromDTO;
import com.elink.esua.epdc.dto.form.KpiEventEvaluationFromDTO;
import com.elink.esua.epdc.dto.events.result.KpiTimeRuleBindItemResoultDto;
import com.elink.esua.epdc.dto.issue.result.IssueProgressResultDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemDeptDTO;
@ -51,7 +51,7 @@ 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.enums.ItemHandleCategoryEnum;
import com.elink.esua.epdc.enums.kpiDataEnum;
import com.elink.esua.epdc.enums.KpiDataEnum;
import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.events.service.ImgService;
@ -106,6 +106,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
@Autowired
private ImgService imgService;
@Autowired
private RedisUtils redisUtils;
@Override
public PageData<ItemDTO> page(Map<String, Object> params) {
IPage<ItemEntity> page = baseDao.selectPage(
@ -206,7 +210,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
* 项目列表-移动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
*/
@ -818,24 +822,24 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
kpiEventEvaluationFromDto.setEvaluationScore(NumConstant.ZERO_STR);
List<KpiMetaDataDTO> yawpList = baseDao.selectListKpiEvaluationData(kpiEventEvaluationFromDto);
for (KpiMetaDataDTO item : yawpList) {
item.setDataCode(kpiDataEnum.PEOPLE_LOW_EVALUATION_AMOUNT.getValue());
item.setDataName(kpiDataEnum.PEOPLE_LOW_EVALUATION_AMOUNT.getName());
item.setDataCode(KpiDataEnum.PEOPLE_LOW_EVALUATION_AMOUNT.getValue());
item.setDataName(KpiDataEnum.PEOPLE_LOW_EVALUATION_AMOUNT.getName());
}
kpiMetaDataDTOList.addAll(yawpList);
//1-基本满意
kpiEventEvaluationFromDto.setEvaluationScore(NumConstant.ONE_STR);
List<KpiMetaDataDTO> betterList = baseDao.selectListKpiEvaluationData(kpiEventEvaluationFromDto);
for (KpiMetaDataDTO item : betterList) {
item.setDataCode(kpiDataEnum.PEOPLE_MEDIUM_EVALUATION_AMOUNT.getValue());
item.setDataName(kpiDataEnum.PEOPLE_MEDIUM_EVALUATION_AMOUNT.getName());
item.setDataCode(KpiDataEnum.PEOPLE_MEDIUM_EVALUATION_AMOUNT.getValue());
item.setDataName(KpiDataEnum.PEOPLE_MEDIUM_EVALUATION_AMOUNT.getName());
}
kpiMetaDataDTOList.addAll(betterList);
//2-非常满意
kpiEventEvaluationFromDto.setEvaluationScore(NumConstant.TWO_STR);
List<KpiMetaDataDTO> bestList = baseDao.selectListKpiEvaluationData(kpiEventEvaluationFromDto);
for (KpiMetaDataDTO item : bestList) {
item.setDataCode(kpiDataEnum.PEOPLE_HIGH_EVALUATION_AMOUNT.getValue());
item.setDataName(kpiDataEnum.PEOPLE_HIGH_EVALUATION_AMOUNT.getName());
item.setDataCode(KpiDataEnum.PEOPLE_HIGH_EVALUATION_AMOUNT.getValue());
item.setDataName(KpiDataEnum.PEOPLE_HIGH_EVALUATION_AMOUNT.getName());
}
kpiMetaDataDTOList.addAll(bestList);
return new Result<List<KpiMetaDataDTO>>().ok(kpiMetaDataDTOList);
@ -843,8 +847,31 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
@Override
public Result<List<KpiMetaDataDTO>> ListItemCountData(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO) {
List<KpiMetaDataDTO> kpiMetaDataDTOList =new ArrayList<>();
//网格呼叫事件总数
epdcEventsItemMataFromDTO.setItemCountType(NumConstant.ZERO_STR);
return new Result<List<KpiMetaDataDTO>>().ok(baseDao.selectListItemCountData(epdcEventsItemMataFromDTO));
List<KpiMetaDataDTO> kpiAllMetaDataDTOList = baseDao.selectListItemCountData(epdcEventsItemMataFromDTO);
kpiMetaDataDTOList.addAll(kpiAllMetaDataDTOList);
//查询各个街道的项目呼叫有效时间 有效结案时间
List<KpiTimeRuleBindItemResoultDto> kpiTimeRuleBindItemResoultDtoList = baseDao.selctListTimeRuleItem(epdcEventsItemMataFromDTO);
for (KpiTimeRuleBindItemResoultDto itemResoultDto : kpiTimeRuleBindItemResoultDtoList) {
//判断此街道没有项目
if(itemResoultDto.getItemId()!=null){
Map<String, Integer> map= (Map<String, Integer>) redisUtils.get(RedisKeys.getKpiItemTimeLimitKey(String.valueOf(itemResoultDto.getCatecoryId())));
itemResoultDto.setValidCloseTime(map.get(KpiItemConstant.CLOSE_ITEM_TIME_LIMIT));
itemResoultDto.setValidRespondTime(map.get(KpiItemConstant.RESPOND_ITEM_TIME_LIMIT));
}
}
//查询街道区直有效响应数
List<KpiMetaDataDTO> kpiMetaDataRespondDTOList = baseDao.selectRespondItemCount(kpiTimeRuleBindItemResoultDtoList,epdcEventsItemMataFromDTO);
kpiMetaDataDTOList.addAll(kpiMetaDataRespondDTOList);
//查询街道区直有效办结数
List<KpiMetaDataDTO> kpiCloseMetaDataDTOList = baseDao.selectCloseItemCount(kpiTimeRuleBindItemResoultDtoList,epdcEventsItemMataFromDTO);
kpiMetaDataDTOList.addAll(kpiCloseMetaDataDTOList);
return new Result<List<KpiMetaDataDTO>>().ok(kpiMetaDataDTOList);
}
}

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

@ -814,7 +814,8 @@
FROM
<foreach item="gridId" collection="gridIdList" open="(" separator="UNION ALL" close=")">
SELECT #{gridId} AS deptId
</foreach> dept
</foreach>
dept
LEFT JOIN epdc_item ei ON ei.GRID_ID = dept.deptId
and
DATE_FORMAT( ei.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
@ -826,14 +827,14 @@
</select>
<select id="selectListItemCountData" resultType="com.elink.esua.epdc.dto.KpiMetaDataDTO">
SELECT
COUNT(ed.ID) AS dataValue,
dept.deptId AS deptId,
'网格呼叫总数' as data_name,
'wghjzs' as data_code,
DATE(DATE_SUB(#{startTime}, INTERVAL 1 DAY)) as startDate,
DATE(DATE_SUB(#{endTime}, INTERVAL 1 DAY)) as endDate,
#{timeType} as kpiCycle
SELECT
COUNT(ed.ID) AS dataValue,
dept.deptId AS deptId,
'网格呼叫总数' as data_name,
'grid_call_superior_resp_amount' as data_code,
DATE(DATE_SUB(#{startTime}, INTERVAL 1 DAY)) as startDate,
DATE(DATE_SUB(#{endTime}, INTERVAL 1 DAY)) as endDate,
#{timeType} as kpiCycle
FROM
<foreach item="deptId" collection="deptIdList" open="( " separator="UNION ALL" close=") dept">
SELECT #{deptId} AS deptId
@ -845,4 +846,72 @@
GROUP BY
dept.deptId
</select>
<select id="selctListTimeRuleItem" resultType="com.elink.esua.epdc.dto.events.result.KpiTimeRuleBindItemResoultDto">
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 #{startTime} AND #{endTime}
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="selectRespondItemCount" resultType="com.elink.esua.epdc.dto.KpiMetaDataDTO">
select
COUNT(process.ID) AS dataValue,
tl.deptId AS deptId,
'响应网格呼叫数' as data_name,
'grid_call_superior_resp_amount' as data_code,
DATE(DATE_SUB(#{matafomDto.startTime}, INTERVAL 1 DAY)) as startDate,
DATE(DATE_SUB(#{matafomDto.endTime}, INTERVAL 1 DAY)) as endDate,
#{matafomDto.timeType} as kpiCycle
from
<foreach item="timeRuleItem" collection="timeRuleList" open="( " separator="UNION ALL" close=") tl">
SELECT #{timeRuleItem.deptId} AS deptId ,
#{timeRuleItem.itemId} AS itemId ,
#{timeRuleItem.createdTime} AS createdTime ,
#{timeRuleItem.validRespondTime} AS validRespondTime ,
#{timeRuleItem.validCloseTime} AS validCloseTime
</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="selectCloseItemCount" resultType="com.elink.esua.epdc.dto.KpiMetaDataDTO">
select
COUNT(process.ID) AS dataValue,
tl.deptId AS deptId,
'办结呼叫事项数' as data_name,
'grid_call_superior_close_amount' as data_code,
DATE(DATE_SUB(#{matafomDto.startTime}, INTERVAL 1 DAY)) as startDate,
DATE(DATE_SUB(#{matafomDto.endTime}, INTERVAL 1 DAY)) as endDate,
#{matafomDto.timeType} as kpiCycle
from
<foreach item="timeRuleItem" collection="timeRuleList" open="( " separator="UNION ALL" close=") tl">
SELECT #{timeRuleItem.deptId} AS deptId ,
#{timeRuleItem.itemId} AS itemId ,
#{timeRuleItem.createdTime} AS createdTime ,
#{timeRuleItem.validRespondTime} AS validRespondTime ,
#{timeRuleItem.validCloseTime} AS validCloseTime
</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.validCloseTime HOUR)
GROUP BY
tl.deptId
</select>
</mapper>

5
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcEventsItemMataFromDTO.java

@ -31,10 +31,6 @@ public class EpdcEventsItemMataFromDTO implements Serializable {
*/
private String timeType;
/***
* 网格呼叫总数 0 网格响应呼叫总数 1
*/
private String itemCountType;
/***
* 区直街道列表
@ -42,4 +38,5 @@ public class EpdcEventsItemMataFromDTO implements Serializable {
private List<Long> deptIdList;
}

76
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiDataEnum.java

@ -0,0 +1,76 @@
package com.elink.esua.epdc.enums;
/**
* @author: qushutong
* @Date: 2019/12/17 19:53
* @Description: 数据项名称
*/
public enum KpiDataEnum {
/***
* 群众反映问题总数
*/
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_CALL_SUPERIOR_RESP_AMOUNT("grid_call_superior_resp_amount","响应网格呼叫数"),
/***
* 网格呼叫上级部门总数
*/
GRID_CALL_SUPERIOR_AMOUNT("grid_call_superior_amount","网格呼叫总数"),
/***
* 上级部门关闭网格呼叫总数
*/
GRID_CALL_SUPERIOR_CLOSE_AMOUNT("grid_call_superior_close_amount","办结呼叫事项数");
private String value;
private String name;
KpiDataEnum(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;
}
}

23
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java

@ -5,7 +5,7 @@ package com.elink.esua.epdc.enums;
* @Date: 2019/12/17 19:53
* @Description: 数据项名称
*/
public enum kpiDataEnum {
public enum KpiDataEnum {
/***
* 群众反映问题总数
@ -30,13 +30,30 @@ public enum kpiDataEnum {
/***
* 居民对项目处理评为不满意的评价数量
*/
PEOPLE_LOW_EVALUATION_AMOUNT("people_low_evaluation_amount","问题办理不满意数");
PEOPLE_LOW_EVALUATION_AMOUNT("people_low_evaluation_amount","问题办理不满意数"),
/***
* 上级部门响应网格呼叫总数
*/
GRID_CALL_SUPERIOR_RESP_AMOUNT("grid_call_superior_resp_amount","响应网格呼叫数"),
/***
* 网格呼叫上级部门总数
*/
GRID_CALL_SUPERIOR_AMOUNT("grid_call_superior_amount","网格呼叫总数"),
/***
* 上级部门关闭网格呼叫总数
*/
GRID_CALL_SUPERIOR_CLOSE_AMOUNT("grid_call_superior_close_amount","办结呼叫事项数");
private String value;
private String name;
kpiDataEnum(String value, String name) {
KpiDataEnum(String value, String name) {
this.value = value;
this.name = name;
}

Loading…
Cancel
Save