From eabf9736ba91e12822e2c08e981290fd784b2473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B2=E6=A0=91=E9=80=9A?= <1976590620@qq.com> Date: Wed, 18 Dec 2019 14:46:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E9=97=AE=E9=A2=98=E5=8A=9E?= =?UTF-8?q?=E7=90=86=E6=BB=A1=E6=84=8F=E7=8E=87=20=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/service/impl/SysDeptServiceImpl.java | 4 +- .../dto/events/form/EventCountSqlFromDTO.java | 5 +- .../form/KpiEventEvaluationFromDTO.java | 42 ++ .../service/impl/EpdcEventsServiceImpl.java | 6 +- .../item/controller/ItemController.java | 15 + .../esua/epdc/modules/item/dao/ItemDao.java | 12 + .../modules/item/service/ItemService.java | 12 + .../item/service/impl/ItemServiceImpl.java | 77 ++- .../main/resources/mapper/item/ItemDao.xml | 478 +++++++++--------- .../elink/esua/epdc/feign/KpiFeignClient.java | 2 +- .../epdc/service/ScheduleJobKpiService.java | 2 +- .../impl/ScheduleJobKpiServiceImpl.java | 2 +- .../elink/esua/epdc/task/KpiMetaDataTask.java | 3 +- .../elink/esua/epdc/enums/kpiDataEnum.java | 19 +- .../controller/KpiMetaDataController.java | 3 + .../esua/epdc/feign/EventFeignClient.java | 12 + .../fallback/EventFeignClientFallback.java | 6 + .../esua/epdc/service/KpiMetaDataService.java | 11 +- .../service/impl/KpiMetaDataServiceImpl.java | 91 +++- 19 files changed, 539 insertions(+), 263 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/KpiEventEvaluationFromDTO.java diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 7708fecc0..c31a7dfcd 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -445,7 +445,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl + * @return java.util.Map * @author work@yujt.net.cn * @date 2019/11/29 10:27 */ @@ -517,7 +517,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl deptIdList = baseDao.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex); return new Result().ok(deptIdList); } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java index 284a14eba..8fc8c086b 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.dto.events.form; import lombok.Data; +import java.io.Serializable; import java.util.Date; @@ -11,8 +12,8 @@ import java.util.Date; * @Description: 查询参数 */ @Data -public class EventCountSqlFromDTO { - +public class EventCountSqlFromDTO implements Serializable { + private static final long serialVersionUID = 4648104037156856679L; /*** * 网格id */ diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/KpiEventEvaluationFromDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/KpiEventEvaluationFromDTO.java new file mode 100644 index 000000000..1da467047 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/KpiEventEvaluationFromDTO.java @@ -0,0 +1,42 @@ +package com.elink.esua.epdc.dto.events.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @author: qushutong + * @Date: 2019/12/18 9:44 + * @Description: 查询问题满意度总数 + */ +@Data +public class KpiEventEvaluationFromDTO implements Serializable { + private static final long serialVersionUID = -1869446375416414676L; + + /*** + * 开始时间 + */ + private Date startTime; + + /*** + * 结束时间 + */ + private Date endTime; + + /*** + * 所有网格 + */ + private List gridIdList; + + /*** + * 满意度评价得分(0-不满意,1-基本满意,2-非常满意) + */ + private String evaluationScore; + + /*** + * 月 季 年 + */ + private String type; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java index 7db1f2ea8..fd2a23a59 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java @@ -535,7 +535,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl> + * @author qushutong + * @date 2019/12/18 10:27 + */ + @PostMapping("queryEvaluationData") + public Result> queryEvaluationData(@RequestBody KpiEventEvaluationFromDTO kpiEventEvaluationFromDto){ + + return itemService.ListEvaluationData(kpiEventEvaluationFromDto); + } } 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 bfb29ce65..eab0cdd0e 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 @@ -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.KpiMetaDataDTO; +import com.elink.esua.epdc.dto.events.form.KpiEventEvaluationFromDTO; 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; @@ -184,4 +186,14 @@ public interface ItemDao extends BaseDao { */ ItemStatisticsResultDTO selectOneItemStatistics(ItemStatisticsFormDTO formDTO); + + /*** + * kpi查询问题满意度 + * @param kpiEventEvaluationFromDto + * @return java.util.List + * @author qushutong + * @date 2019/12/18 10:49 + */ + List selectListKpiEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto); + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java index 7c73c05d9..e6133ecce 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java @@ -20,7 +20,9 @@ package com.elink.esua.epdc.modules.item.service; 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.KpiMetaDataDTO; import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO; +import com.elink.esua.epdc.dto.events.form.KpiEventEvaluationFromDTO; import com.elink.esua.epdc.dto.item.ItemDTO; import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO; import com.elink.esua.epdc.dto.item.form.*; @@ -279,4 +281,14 @@ public interface ItemService extends BaseService { * @Date: 2019/11/18 13:32 */ List listOfItemHandleProgressByWork(String itemId); + + + /*** + * kpi查询问题满意度 + * @param kpiEventEvaluationFromDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author qushutong + * @date 2019/12/18 10:30 + */ + Result> ListEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto); } 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 da857a386..5adbd1f82 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 @@ -36,10 +36,12 @@ import com.elink.esua.epdc.constant.ImageConstant; import com.elink.esua.epdc.constant.ItemInformationConstant; import com.elink.esua.epdc.constants.MenuCodeConstant; import com.elink.esua.epdc.dto.CompleteDeptDTO; +import com.elink.esua.epdc.dto.KpiMetaDataDTO; 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.events.form.KpiEventEvaluationFromDTO; 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; @@ -48,6 +50,8 @@ 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.KpiCycleEnum; +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; @@ -197,10 +201,12 @@ public class ItemServiceImpl extends BaseServiceImpl implem List data = baseDao.selectListOfItems(formDto, states); return new Result>().ok(data); } + /** * 项目列表-移动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 */ @@ -216,6 +222,7 @@ public class ItemServiceImpl extends BaseServiceImpl implem List data = baseDao.selectListOfItemsByWork(formDto, SecurityUser.getUser().getDeptIdList()); return new Result>().ok(data); } + @Override public Result getItemDetailByWork(String id) { ItemDetailResultDTO resultDTO = baseDao.selectOneOfItemDetailForWork(id); @@ -376,14 +383,16 @@ public class ItemServiceImpl extends BaseServiceImpl implem return resultDTO; } + /** * 工作端-获取可吹哨部门 + * * @Return: com.elink.esua.epdc.commons.tools.utils.Result * @Author: lipengfei * @Date: 2019/11/19 16:34 */ @Override - public Result> whistlingDept(){ + public Result> whistlingDept() { UserDetail user = SecurityUser.getUser(); List deptResultDTOS = new ArrayList<>(); // 网格-可做操作和可流转部门 @@ -491,6 +500,7 @@ public class ItemServiceImpl extends BaseServiceImpl implem ItemEntity entity = this.selectById(itemId); return baseDao.selectListOfItemHandleProgress(entity.getIssueId(), itemId, outOrInside); } + @Override public List listOfItemHandleProgressByWork(String itemId) { return baseDao.selectListOfItemHandleProgressByWork(itemId); @@ -602,7 +612,7 @@ public class ItemServiceImpl extends BaseServiceImpl 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(网格) @@ -610,19 +620,19 @@ public class ItemServiceImpl extends BaseServiceImpl implem itemInformationService.insert(itemInfoDto); //修改通知部门Id(街道Id) ItemInformationEntity itemInfoStreetDto = new ItemInformationEntity(); - BeanUtils.copyProperties(itemInfoDto,itemInfoStreetDto); - Result result =adminFeignClient.getCompleteDept(entity.getGridId()); + BeanUtils.copyProperties(itemInfoDto, itemInfoStreetDto); + Result 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 deptList = dto.getDeptResultDTOS(); + // 吹哨处理 + } else if (ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue() == dto.getHandleCategory()) { + List deptList = dto.getDeptResultDTOS(); // 拼接被吹哨部门Id 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.getDeptId(); } else { @@ -634,11 +644,11 @@ public class ItemServiceImpl extends BaseServiceImpl implem for (ItemCirculationDeptResultDTO itemDto : deptList) { // 通知部门Id(被吹哨部门) ItemInformationEntity itemInfoEachDto = new ItemInformationEntity(); - BeanUtils.copyProperties(itemInfoDto,itemInfoEachDto); + BeanUtils.copyProperties(itemInfoDto, itemInfoEachDto); itemInfoEachDto.setDeptId(itemDto.getDeptId().toString()); itemInformationService.insert(itemInfoEachDto); } - // 关闭和结案处理 + // 关闭和结案处理 } else { // 查询已吹哨部门 List oldDeptIds = itemDeptService.listOfWhistlingDeptIds(dto.getId(), SecurityUser.getDeptId()); @@ -646,7 +656,7 @@ public class ItemServiceImpl extends BaseServiceImpl implem for (Long itemDeptId : oldDeptIds) { // 通知部门Id(被吹哨部门) ItemInformationEntity itemInfoEachDto = new ItemInformationEntity(); - BeanUtils.copyProperties(itemInfoDto,itemInfoEachDto); + BeanUtils.copyProperties(itemInfoDto, itemInfoEachDto); itemInfoEachDto.setDeptId(itemDeptId.toString()); itemInformationService.insert(itemInfoEachDto); } @@ -664,12 +674,12 @@ public class ItemServiceImpl extends BaseServiceImpl 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); } } catch (Exception e) { e.printStackTrace(); @@ -791,10 +801,43 @@ public class ItemServiceImpl extends BaseServiceImpl implem newsTask.eventMenuNotice(menuNoticeDTO, userId); } } + @Override public Result getItemStatistics(ItemStatisticsFormDTO formDto) { ItemStatisticsResultDTO resultDTO = baseDao.selectOneItemStatistics(formDto); return new Result().ok(resultDTO); } + + + @Override + public Result> ListEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto) { + List kpiMetaDataDTOList = new ArrayList<>(); + //满意度评价得分(0-不满意,1-基本满意,2-非常满意) + //0-不满意 + 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()); + } + 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()); + } + 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()); + } + kpiMetaDataDTOList.addAll(bestList); + 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 a3af458c4..eb85fe7e7 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 @@ -65,46 +65,47 @@ AND img.IMG_TYPE = 'events' LEFT JOIN epdc_item_handle_process hp ON item.ID = hp.ITEM_ID AND hp.DEL_FLAG = '0' - AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND a.ITEM_ID = hp.ITEM_ID ) + AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND + a.ITEM_ID = hp.ITEM_ID ) WHERE item.ID IN ( - SELECT temp.ID FROM ( - SELECT - t1.id - FROM - epdc_item t1 - LEFT JOIN epdc_events t2 - ON t1.EVENT_ID = t2.ID - AND t2.DEL_FLAG = '0' - WHERE t1.DEL_FLAG = '0' - AND t1.GRID_ID = #{formDto.deptId} - AND t1.ITEM_STATE IN - - #{state} - - - = ]]> #{formDto.someMonthsAgo} - - - #{formDto.timestamp} - - - AND t1.ITEM_CONTENT LIKE CONCAT('%',#{formDto.searchContent},'%') - - - AND t1.CATEGORY_CODE = #{formDto.categoryCode} - - - AND t1.USER_ID = #{formDto.userId} - - ORDER BY - - t1.LAST_HANDLE_TIME DESC - - t1.CREATED_TIME DESC - LIMIT #{formDto.pageIndex},#{formDto.pageSize} - ) temp + SELECT temp.ID FROM ( + SELECT + t1.id + FROM + epdc_item t1 + LEFT JOIN epdc_events t2 + ON t1.EVENT_ID = t2.ID + AND t2.DEL_FLAG = '0' + WHERE t1.DEL_FLAG = '0' + AND t1.GRID_ID = #{formDto.deptId} + AND t1.ITEM_STATE IN + + #{state} + + + = ]]> #{formDto.someMonthsAgo} + + + #{formDto.timestamp} + + + AND t1.ITEM_CONTENT LIKE CONCAT('%',#{formDto.searchContent},'%') + + + AND t1.CATEGORY_CODE = #{formDto.categoryCode} + + + AND t1.USER_ID = #{formDto.userId} + + ORDER BY + + t1.LAST_HANDLE_TIME DESC + + t1.CREATED_TIME DESC + LIMIT #{formDto.pageIndex},#{formDto.pageSize} + ) temp ) ORDER BY @@ -148,7 +149,8 @@ AND img.IMG_TYPE = 'events' LEFT JOIN epdc_item_handle_process hp ON item.ID = hp.ITEM_ID AND hp.DEL_FLAG = '0' - AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND a.ITEM_ID = hp.ITEM_ID ) + AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND + a.ITEM_ID = hp.ITEM_ID ) LEFT JOIN epdc_item_dept dept ON item.Id = dept.ITEM_ID AND dept.DEL_FLAG = '0' WHERE item.DEL_FLAG = '0' @@ -208,7 +210,8 @@ AND img.IMG_TYPE = 'events' LEFT JOIN epdc_item_handle_process hp ON item.ID = hp.ITEM_ID AND hp.DEL_FLAG = '0' - AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND a.ITEM_ID = hp.ITEM_ID ) + AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND + a.ITEM_ID = hp.ITEM_ID ) WHERE item.ID IN ( SELECT temp.ID FROM ( @@ -287,67 +290,68 @@ - SELECT COUNT( item.ID ) AS itemNum, SUM( eve.APPROVE_NUM + eve.OPPOSE_NUM + eve.BROWSE_NUM + eve.COMMENT_NUM ) AS attitudeNum, @@ -368,62 +372,62 @@ @@ -514,55 +518,57 @@ @@ -714,23 +720,23 @@ + + diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java index 7c4e421be..ac3abbbc6 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; * @Date: 2019/12/12 18:46 * @Description: kpi模块 */ -@FeignClient(name = ServiceConstant.EPDC_KPI_SERVER, fallback = KpiFeignClientFallBack.class) +@FeignClient(name = ServiceConstant.EPDC_KPI_SERVER, fallback = KpiFeignClientFallBack.class,url = "http://127.0.0.1:9066") public interface KpiFeignClient { /*** diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java index dbd37675f..f062b085e 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java @@ -14,7 +14,7 @@ public interface ScheduleJobKpiService { * @author qushutong * @date 2019/12/12 16:56 */ - void statKpiMetaData(); + void startKpiMetaData(); /** * 启动与规则编码匹配的相关任务 diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java index 22a4adcd6..704f95c60 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java @@ -15,7 +15,7 @@ public class ScheduleJobKpiServiceImpl implements ScheduleJobKpiService { private KpiFeignClient kpiFeignClient; @Override - public void statKpiMetaData() { + public void startKpiMetaData() { kpiFeignClient.runKpiMateData(); } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java index b986df1e6..1c0e165c5 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java @@ -26,6 +26,7 @@ public class KpiMetaDataTask implements ITask { */ @Override public void run(String params) { - scheduleJobKpiService.statKpiMetaData(); + //群众反应问题网格响应数 总数 + scheduleJobKpiService.startKpiMetaData(); } } 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 a0cdf605f..9e17bcf4a 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 @@ -13,9 +13,24 @@ public enum kpiDataEnum { PEOPLE_REPORT_AMOUNT("people_report_amount", "群众反映问题总数"), /*** - * 群众投票满意数 + * 群众反映问题响应数 */ - VOTE_HIGH_EVALUATION_AMOUNT("vote_high_evaluation_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","问题办理不满意数"); private String value; diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java index a626db8ec..2797b4d7f 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java @@ -100,7 +100,10 @@ public class KpiMetaDataController { */ @GetMapping("buildMetaData") public Result buildMetaData(){ + //网格事件上报总数 与响应数 kpiMetaDataService.createMataData(); + //问题办理满意度 + kpiMetaDataService.createEvaluationData(); return new Result(); } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/EventFeignClient.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/EventFeignClient.java index 02bcd5ce8..46b473e1c 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/EventFeignClient.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/EventFeignClient.java @@ -6,6 +6,7 @@ import com.elink.esua.epdc.dto.EventCountFromDTO; import com.elink.esua.epdc.dto.KpiMetaDataDTO; import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO; import com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO; +import com.elink.esua.epdc.dto.events.form.KpiEventEvaluationFromDTO; import com.elink.esua.epdc.feign.fallback.EventFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -42,4 +43,15 @@ public interface EventFeignClient { @PostMapping(value = "events/epdcevents/getAllCommitCount", consumes = MediaType.APPLICATION_JSON_VALUE) Result> getAllCommitCount(EventCountFromDTO eventCountFromDto); + + /*** + * 查询问题办理满意度 + * @param kpiEventEvaluationFromDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author qushutong + * @date 2019/12/18 10:22 + */ + @PostMapping(value = "events/item/queryEvaluationData", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> queryEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto); + } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/EventFeignClientFallback.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/EventFeignClientFallback.java index 11c2f2279..35092d182 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/EventFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/EventFeignClientFallback.java @@ -7,6 +7,7 @@ import com.elink.esua.epdc.dto.EventCountFromDTO; import com.elink.esua.epdc.dto.KpiMetaDataDTO; import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO; import com.elink.esua.epdc.dto.category.result.CategoryInfoResultDTO; +import com.elink.esua.epdc.dto.events.form.KpiEventEvaluationFromDTO; import com.elink.esua.epdc.feign.EventFeignClient; import org.springframework.stereotype.Component; @@ -29,4 +30,9 @@ public class EventFeignClientFallback implements EventFeignClient { public Result> getAllCommitCount( EventCountFromDTO eventCountFromDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "getAllCommitCount", eventCountFromDto); } + + @Override + public Result> queryEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "queryEvaluationData", kpiEventEvaluationFromDto); + } } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java index 466d9eb43..5f47a5908 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java @@ -94,11 +94,20 @@ public interface KpiMetaDataService extends BaseService { void delete(String[] ids); /*** - * 构建元素数据 + * 构建元素数据 网格事件上报总数 与响应数 * @param * @return void * @author qushutong * @date 2019/12/16 10:19 */ void createMataData(); + + /*** + * 构建元素数据 问题办理满意度 + * @param + * @return void + * @author qushutong + * @date 2019/12/18 9:34 + */ + void createEvaluationData(); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java index d8fc52ae9..500c5d6fe 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java @@ -25,11 +25,15 @@ 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.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.KpiMetaDataDao; import com.elink.esua.epdc.dto.EventCountFromDTO; import com.elink.esua.epdc.dto.KpiMetaDataDTO; +import com.elink.esua.epdc.dto.events.form.EventCountSqlFromDTO; +import com.elink.esua.epdc.dto.events.form.KpiEventEvaluationFromDTO; import com.elink.esua.epdc.entity.KpiMetaDataEntity; +import com.elink.esua.epdc.enums.KpiCycleEnum; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.EventFeignClient; import com.elink.esua.epdc.redis.KpiMetaDataRedis; @@ -39,12 +43,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.xml.crypto.Data; +import java.time.LocalDate; import java.time.Month; import java.time.Period; import java.time.YearMonth; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 绩效考核的元数据 @@ -118,20 +122,19 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl> listResult = adminFeignClient.listAllGridId(); //容量 int pageSize = 10; //页码 int pageIndex = 1; while (true) { - Result> listResult1 = adminFeignClient.pageDeptIdByTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex); + // 分页获取所有网格 + Result> listResult = adminFeignClient.pageDeptIdByTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex); if (listResult == null || listResult.getData() == null) { throw new RuntimeException("获取网格列表失败"); } if (listResult.getData().size() == 0) { //所有网格获取完成 跳出循环 - return; + return; } List gridList = listResult.getData(); EventCountFromDTO eventCountFromDto = new EventCountFromDTO(); @@ -157,4 +160,78 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl kpiMetaDataDTOList; + while (true) { + // 分页获取所有网格 + Result> listResult = adminFeignClient.pageDeptIdByTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex); + if (listResult == null || listResult.getData() == null) { + throw new RuntimeException("获取网格列表失败"); + } + if (listResult.getData().size() == 0) { + //所有网格获取完成 跳出循环 + return; + } + //月统计 + List gridList = listResult.getData(); + monthFromDto.setGridIdList(gridList); + monthFromDto.setType(KpiCycleEnum.KPI_CYCLE_MONTH.getValue()); + kpiMetaDataDTOList = eventFeignClient.queryEvaluationData(monthFromDto).getData(); + insertBatch(ConvertUtils.sourceToTarget(kpiMetaDataDTOList, KpiMetaDataEntity.class)); + // 1,4,7,10 月份的时候统计 季度 季度第一天统计上一季度 + if (nowMonth == NumConstant.ONE || nowMonth == NumConstant.FOUR || nowMonth == NumConstant.SEVEN || nowMonth == NumConstant.TEN) { + monthFromDto.setType(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue()); + kpiMetaDataDTOList = eventFeignClient.queryEvaluationData(quarterFromDto).getData(); + insertBatch(ConvertUtils.sourceToTarget(kpiMetaDataDTOList, KpiMetaDataEntity.class)); + } + + // 一月份统计去年的 + if (nowMonth == NumConstant.ONE) { + monthFromDto.setType(KpiCycleEnum.KPI_CYCLE_YEAR.getValue()); + kpiMetaDataDTOList = eventFeignClient.queryEvaluationData(yearFromDto).getData(); + insertBatch(ConvertUtils.sourceToTarget(kpiMetaDataDTOList, KpiMetaDataEntity.class)); + } + //页码 + pageIndex++; + } + + } } \ No newline at end of file