diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/KpiTimeRuleBindItemResoultDto.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/KpiTimeRuleBindItemResoultDto.java new file mode 100644 index 000000000..0e32c6abc --- /dev/null +++ b/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; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java index 725be224f..e7f51a4a6 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java +++ b/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 { */ List selectListItemCountData(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO); + + /*** + * 查询每个项目的时间规则 + * @param epdcEventsItemMataFromDTO + * @return java.util.List + * @author qushutong + * @date 2019/12/19 17:16 + */ + List selctListTimeRuleItem(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO); + + /*** + * 查询街道区直有效响应数 + * @param kpiTimeRuleBindItemResoultDtoList + * @return + * @author qushutong + * @date 2019/12/19 18:58 + */ + List selectRespondItemCount(@Param("timeRuleList") List kpiTimeRuleBindItemResoultDtoList,@Param("matafomDto")EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO); + + + /*** + * 上级部门关闭网格呼叫总数 + * @param kpiTimeRuleBindItemResoultDtoList + * @return + * @author qushutong + * @date 2019/12/19 18:58 + */ + List selectCloseItemCount(@Param("timeRuleList") List kpiTimeRuleBindItemResoultDtoList,@Param("matafomDto")EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO); + + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java index 3e45fceae..dc65b83fc 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java +++ b/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 implem @Autowired private ImgService imgService; + + @Autowired + private RedisUtils redisUtils; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -206,7 +210,7 @@ public class ItemServiceImpl extends BaseServiceImpl implem * 项目列表-移动app端用 * * @Params: [formDto] - * @Return: com.elink.esua.epdc.commons.tools.utils.Result> + * @Return: com.elink.esua.epdc.commons.tools.utils.Result> * @Author: lipengfei * @Date: 2019/10/19 16:47 */ @@ -818,24 +822,24 @@ public class ItemServiceImpl extends BaseServiceImpl implem kpiEventEvaluationFromDto.setEvaluationScore(NumConstant.ZERO_STR); List 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 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 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>().ok(kpiMetaDataDTOList); @@ -843,8 +847,31 @@ public class ItemServiceImpl extends BaseServiceImpl implem @Override public Result> ListItemCountData(EpdcEventsItemMataFromDTO epdcEventsItemMataFromDTO) { + List kpiMetaDataDTOList =new ArrayList<>(); //网格呼叫事件总数 - epdcEventsItemMataFromDTO.setItemCountType(NumConstant.ZERO_STR); - return new Result>().ok(baseDao.selectListItemCountData(epdcEventsItemMataFromDTO)); + List kpiAllMetaDataDTOList = baseDao.selectListItemCountData(epdcEventsItemMataFromDTO); + kpiMetaDataDTOList.addAll(kpiAllMetaDataDTOList); + + //查询各个街道的项目呼叫有效时间 有效结案时间 + List kpiTimeRuleBindItemResoultDtoList = baseDao.selctListTimeRuleItem(epdcEventsItemMataFromDTO); + for (KpiTimeRuleBindItemResoultDto itemResoultDto : kpiTimeRuleBindItemResoultDtoList) { + //判断此街道没有项目 + if(itemResoultDto.getItemId()!=null){ + Map map= (Map) 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 kpiMetaDataRespondDTOList = baseDao.selectRespondItemCount(kpiTimeRuleBindItemResoultDtoList,epdcEventsItemMataFromDTO); + kpiMetaDataDTOList.addAll(kpiMetaDataRespondDTOList); + + //查询街道区直有效办结数 + List kpiCloseMetaDataDTOList = baseDao.selectCloseItemCount(kpiTimeRuleBindItemResoultDtoList,epdcEventsItemMataFromDTO); + kpiMetaDataDTOList.addAll(kpiCloseMetaDataDTOList); + + + return new Result>().ok(kpiMetaDataDTOList); } } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml index c3833876f..fe915ee86 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml @@ -814,7 +814,8 @@ FROM SELECT #{gridId} AS deptId - dept + + 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 @@ + + + + + + + diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcEventsItemMataFromDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcEventsItemMataFromDTO.java index 7d1804ddf..9c4fc197c 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcEventsItemMataFromDTO.java +++ b/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 deptIdList; + } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiDataEnum.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiDataEnum.java new file mode 100644 index 000000000..0b91f7630 --- /dev/null +++ b/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; + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java index 9e17bcf4a..0b91f7630 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java +++ b/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; }