Browse Source

部门问题办理满意率 统计

feature/dangjian
曲树通 6 years ago
parent
commit
eabf9736ba
  1. 4
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  2. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EventCountSqlFromDTO.java
  3. 42
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/KpiEventEvaluationFromDTO.java
  4. 6
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
  5. 15
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java
  6. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  7. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  8. 77
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  9. 478
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml
  10. 2
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java
  11. 2
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java
  12. 2
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java
  13. 3
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiMetaDataTask.java
  14. 19
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/kpiDataEnum.java
  15. 3
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java
  16. 12
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/EventFeignClient.java
  17. 6
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/feign/fallback/EventFeignClientFallback.java
  18. 11
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java
  19. 91
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java

4
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<SysDeptDao, SysDeptEntit
* @param allParentNode 所有的上级机构节点
* @param dataScopeDeptList 拥有数据权限的部门
* @param parentDeptIdList 上级部门id
* @return java.util.Map<java.lang.String, java.lang.Object>
* @return java.util.Map<java.lang.String , java.lang.Object>
* @author work@yujt.net.cn
* @date 2019/11/29 10:27
*/
@ -517,7 +517,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
if (null == pageSize || null == pageIndex || pageSize < NumConstant.ONE || pageIndex < NumConstant.ONE) {
return new Result().error("参数错误");
}
pageIndex = pageIndex - NumConstant.ONE;
pageIndex = (pageIndex - NumConstant.ONE) * pageSize;
List<Long> deptIdList = baseDao.pageDeptIdByTypeKey(typeKey, pageSize, pageIndex);
return new Result().ok(deptIdList);
}

5
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
*/

42
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<Long> gridIdList;
/***
* 满意度评价得分(0-不满意1-基本满意2-非常满意)
*/
private String evaluationScore;
/***
*
*/
private String type;
}

6
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<EpdcEventsDao, EpdcEv
eventCountDtoFromDTO.setType(NumConstant.ZERO_STR);
eventCountDtoFromDTO.setResponseType(eventCountFromDto.getResponseType());
kpiMetaDataDto = baseDao.seliceListEventCount(eventCountDtoFromDTO);
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.VOTE_HIGH_EVALUATION_AMOUNT.getValue());
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.PEOPLE_REPORT_RESP_AMOUNT.getValue());
kpiMetaDataDto.setKpiCycle(KpiCycleEnum.KPI_CYCLE_MONTH.getValue());
kpiMetaDataDto.setStartDate(LocalDateUtils.localDateToDate(startTime));
kpiMetaDataDto.setEndDate(LocalDateUtils.localDateToDate(endTime));
@ -553,7 +553,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
eventCountDtoFromDTO.setType(NumConstant.ONE_STR);
eventCountDtoFromDTO.setResponseType(eventCountFromDto.getResponseType());
kpiMetaDataDto = baseDao.seliceListEventCount(eventCountDtoFromDTO);
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.VOTE_HIGH_EVALUATION_AMOUNT.getValue());
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.PEOPLE_REPORT_RESP_AMOUNT.getValue());
kpiMetaDataDto.setKpiCycle(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue());
kpiMetaDataDto.setStartDate(LocalDateUtils.localDateToDate(lastQuarter));
kpiMetaDataDto.setEndDate(LocalDateUtils.localDateToDate(endTime));
@ -571,7 +571,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
eventCountDtoFromDTO.setType(NumConstant.TWO_STR);
eventCountDtoFromDTO.setResponseType(eventCountFromDto.getResponseType());
kpiMetaDataDto = baseDao.seliceListEventCount(eventCountDtoFromDTO);
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.VOTE_HIGH_EVALUATION_AMOUNT.getValue());
kpiMetaDataDto.setDataCode(eventCountFromDto.getResponseType().equals(NumConstant.ZERO_STR)? kpiDataEnum.PEOPLE_REPORT_AMOUNT.getValue():kpiDataEnum.PEOPLE_REPORT_RESP_AMOUNT.getValue());
kpiMetaDataDto.setKpiCycle(KpiCycleEnum.KPI_CYCLE_YEAR.getValue());
kpiMetaDataDto.setStartDate(LocalDateUtils.localDateToDate(lastYear));
kpiMetaDataDto.setEndDate(LocalDateUtils.localDateToDate(endTime));

15
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java

@ -25,8 +25,10 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.KpiMetaDataDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.events.form.EventDeleteCommentsFormDTO;
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.ItemHandleSubmitFormDTO;
@ -161,5 +163,18 @@ public class ItemController {
public Result deleteComment(@RequestBody EventDeleteCommentsFormDTO eventDeleteCommentsFormDTO) {
return itemService.modifyCommentById(eventDeleteCommentsFormDTO.getCommentIds());
}
/***
* kpi查询问题满意度
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.Long>>
* @author qushutong
* @date 2019/12/18 10:27
*/
@PostMapping("queryEvaluationData")
public Result<List<KpiMetaDataDTO>> queryEvaluationData(@RequestBody KpiEventEvaluationFromDTO kpiEventEvaluationFromDto){
return itemService.ListEvaluationData(kpiEventEvaluationFromDto);
}
}

12
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<ItemEntity> {
*/
ItemStatisticsResultDTO selectOneItemStatistics(ItemStatisticsFormDTO formDTO);
/***
* kpi查询问题满意度
* @param kpiEventEvaluationFromDto
* @return java.util.List<com.elink.esua.epdc.dto.KpiMetaDataDTO>
* @author qushutong
* @date 2019/12/18 10:49
*/
List<KpiMetaDataDTO> selectListKpiEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto);
}

12
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<ItemEntity> {
* @Date: 2019/11/18 13:32
*/
List<ItemHandleProgressResultDTO> listOfItemHandleProgressByWork(String itemId);
/***
* kpi查询问题满意度
* @param kpiEventEvaluationFromDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/18 10:30
*/
Result<List<KpiMetaDataDTO>> ListEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto);
}

77
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<ItemDao, ItemEntity> implem
List<ItemResultDTO> data = baseDao.selectListOfItems(formDto, states);
return new Result<List<ItemResultDTO>>().ok(data);
}
/**
* 项目列表-移动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
*/
@ -216,6 +222,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
List<ItemResultDTO> data = baseDao.selectListOfItemsByWork(formDto, SecurityUser.getUser().getDeptIdList());
return new Result<List<ItemResultDTO>>().ok(data);
}
@Override
public Result<ItemDetailResultDTO> getItemDetailByWork(String id) {
ItemDetailResultDTO resultDTO = baseDao.selectOneOfItemDetailForWork(id);
@ -376,14 +383,16 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return resultDTO;
}
/**
* 工作端-获取可吹哨部门
*
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: lipengfei
* @Date: 2019/11/19 16:34
*/
@Override
public Result<List<ItemCirculationDeptResultDTO>> whistlingDept(){
public Result<List<ItemCirculationDeptResultDTO>> whistlingDept() {
UserDetail user = SecurityUser.getUser();
List<ItemCirculationDeptResultDTO> deptResultDTOS = new ArrayList<>();
// 网格-可做操作和可流转部门
@ -491,6 +500,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
ItemEntity entity = this.selectById(itemId);
return baseDao.selectListOfItemHandleProgress(entity.getIssueId(), itemId, outOrInside);
}
@Override
public List<ItemHandleProgressResultDTO> listOfItemHandleProgressByWork(String itemId) {
return baseDao.selectListOfItemHandleProgressByWork(itemId);
@ -602,7 +612,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> 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<ItemDao, ItemEntity> implem
itemInformationService.insert(itemInfoDto);
//修改通知部门Id(街道Id)
ItemInformationEntity itemInfoStreetDto = new ItemInformationEntity();
BeanUtils.copyProperties(itemInfoDto,itemInfoStreetDto);
Result<CompleteDeptDTO> result =adminFeignClient.getCompleteDept(entity.getGridId());
BeanUtils.copyProperties(itemInfoDto, itemInfoStreetDto);
Result<CompleteDeptDTO> 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<ItemCirculationDeptResultDTO> deptList = dto.getDeptResultDTOS();
// 吹哨处理
} else if (ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue() == dto.getHandleCategory()) {
List<ItemCirculationDeptResultDTO> 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<ItemDao, ItemEntity> 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<Long> oldDeptIds = itemDeptService.listOfWhistlingDeptIds(dto.getId(), SecurityUser.getDeptId());
@ -646,7 +656,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> 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<ItemDao, ItemEntity> 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<ItemDao, ItemEntity> implem
newsTask.eventMenuNotice(menuNoticeDTO, userId);
}
}
@Override
public Result<ItemStatisticsResultDTO> getItemStatistics(ItemStatisticsFormDTO formDto) {
ItemStatisticsResultDTO resultDTO = baseDao.selectOneItemStatistics(formDto);
return new Result<ItemStatisticsResultDTO>().ok(resultDTO);
}
@Override
public Result<List<KpiMetaDataDTO>> ListEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto) {
List<KpiMetaDataDTO> kpiMetaDataDTOList = new ArrayList<>();
//满意度评价得分(0-不满意,1-基本满意,2-非常满意)
//0-不满意
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());
}
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());
}
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());
}
kpiMetaDataDTOList.addAll(bestList);
return new Result<List<KpiMetaDataDTO>>().ok(kpiMetaDataDTOList);
}
}

478
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
<foreach collection="states" item="state" index="no" open="("
separator="," close=")">
#{state}
</foreach>
<if test="formDto.someMonthsAgo != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') >= ]]> #{formDto.someMonthsAgo}
</if>
<if test="formDto.timestamp != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{formDto.timestamp}
</if>
<if test='formDto.searchContent != null and formDto.searchContent != ""'>
AND t1.ITEM_CONTENT LIKE CONCAT('%',#{formDto.searchContent},'%')
</if>
<if test='formDto.categoryCode != null and formDto.categoryCode != ""'>
AND t1.CATEGORY_CODE = #{formDto.categoryCode}
</if>
<if test='formDto.userId != null and formDto.userId != ""'>
AND t1.USER_ID = #{formDto.userId}
</if>
ORDER BY
<if test='formDto.orderType != null and formDto.orderType != "" and formDto.orderType == "1"'>
t1.LAST_HANDLE_TIME DESC
</if>
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
<foreach collection="states" item="state" index="no" open="("
separator="," close=")">
#{state}
</foreach>
<if test="formDto.someMonthsAgo != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') >= ]]> #{formDto.someMonthsAgo}
</if>
<if test="formDto.timestamp != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{formDto.timestamp}
</if>
<if test='formDto.searchContent != null and formDto.searchContent != ""'>
AND t1.ITEM_CONTENT LIKE CONCAT('%',#{formDto.searchContent},'%')
</if>
<if test='formDto.categoryCode != null and formDto.categoryCode != ""'>
AND t1.CATEGORY_CODE = #{formDto.categoryCode}
</if>
<if test='formDto.userId != null and formDto.userId != ""'>
AND t1.USER_ID = #{formDto.userId}
</if>
ORDER BY
<if test='formDto.orderType != null and formDto.orderType != "" and formDto.orderType == "1"'>
t1.LAST_HANDLE_TIME DESC
</if>
t1.CREATED_TIME DESC
LIMIT #{formDto.pageIndex},#{formDto.pageSize}
) temp
)
ORDER BY
<if test='formDto.orderType != null and formDto.orderType != "" and formDto.orderType == "1"'>
@ -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 @@
</resultMap>
<select id="selectOneItemDetail" resultMap="itemDetailMap">
SELECT
<if test='userId != "" and userId != null'>
(ua.attitude_flag = 0) userLike,
(ua.attitude_flag = 1) userDislike,
</if>
item.ID,
item.EVENT_ID,
item.ITEM_CONTENT,
item.ITEM_STATE,
item.CREATED_TIME,
item.IS_PARTY_MEMBER,
item.NICK_NAME,
item.USER_FACE,
item.ISSUE_ADDRESS,
item.CATEGORY_CODE,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.BROWSE_NUM,
CASE
item.ITEM_STATE
WHEN 0 THEN
true ELSE false
END AS isOperational,
CASE
item.ITEM_STATE
WHEN 10 THEN
true ELSE false
END AS isSatisfactionEvaluation,
CASE
WHEN item.USER_ID = #{userId} AND item.EVALUATION_SCORE IS NULL THEN
true ELSE false
END AS isShowSatisfactionEvaluation,
img.IMG_URL
<if test='userId != "" and userId != null'>
(ua.attitude_flag = 0) userLike,
(ua.attitude_flag = 1) userDislike,
</if>
item.ID,
item.EVENT_ID,
item.ITEM_CONTENT,
item.ITEM_STATE,
item.CREATED_TIME,
item.IS_PARTY_MEMBER,
item.NICK_NAME,
item.USER_FACE,
item.ISSUE_ADDRESS,
item.CATEGORY_CODE,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.BROWSE_NUM,
CASE
item.ITEM_STATE
WHEN 0 THEN
true ELSE false
END AS isOperational,
CASE
item.ITEM_STATE
WHEN 10 THEN
true ELSE false
END AS isSatisfactionEvaluation,
CASE
WHEN item.USER_ID = #{userId} AND item.EVALUATION_SCORE IS NULL THEN
true ELSE false
END AS isShowSatisfactionEvaluation,
img.IMG_URL
FROM
epdc_item item
LEFT JOIN epdc_img img ON item.EVENT_ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
AND img.IMG_TYPE = 'events'
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
AND eve.DEL_FLAG = '0'
epdc_item item
LEFT JOIN epdc_img img ON item.EVENT_ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
AND img.IMG_TYPE = 'events'
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
AND eve.DEL_FLAG = '0'
<if test='userId != "" and userId != null'>
LEFT JOIN epdc_event_user_attitude ua ON item.EVENT_ID = ua.EVENT_ID
AND ua.DEL_FLAG = '0'
AND ua.USER_ID = #{userId}
AND ua.UPDATED_TIME = (
SELECT
MAX( a.updated_time )
MAX( a.updated_time )
FROM
epdc_event_user_attitude a
epdc_event_user_attitude a
WHERE
a.EVENT_ID = ua.EVENT_ID
AND a.user_id = ua.user_id
a.EVENT_ID = ua.EVENT_ID
AND a.user_id = ua.user_id
)
</if>
WHERE
item.DEL_FLAG = '0'
AND item.ID = #{itemId}
item.DEL_FLAG = '0'
AND item.ID = #{itemId}
ORDER BY
img.CREATED_TIME
img.CREATED_TIME
</select>
<select id="selectOneItemCategoryStatistics" resultType="com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO">
<select id="selectOneItemCategoryStatistics"
resultType="com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO">
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 @@
<select id="selectListOfPendingHandleItems" resultType="com.elink.esua.epdc.dto.item.ItemPendingHandleDTO">
SELECT
item.ID,
item.ITEM_CONTENT,
item.ITEM_CODE,
item.CREATED_TIME,
item.NICK_NAME,
CASE item.EVALUATION_SCORE
WHEN 0 THEN '不满意'
WHEN 1 THEN '基本满意'
WHEN 2 THEN '非常满意'
ELSE ''
END AS evaluationScore,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.COMMENT_NUM,
eve.BROWSE_NUM,
( eve.APPROVE_NUM + eve.OPPOSE_NUM + eve.COMMENT_NUM + eve.BROWSE_NUM ) AS participantsNum
item.ID,
item.ITEM_CONTENT,
item.ITEM_CODE,
item.CREATED_TIME,
item.NICK_NAME,
CASE item.EVALUATION_SCORE
WHEN 0 THEN '不满意'
WHEN 1 THEN '基本满意'
WHEN 2 THEN '非常满意'
ELSE ''
END AS evaluationScore,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.COMMENT_NUM,
eve.BROWSE_NUM,
( eve.APPROVE_NUM + eve.OPPOSE_NUM + eve.COMMENT_NUM + eve.BROWSE_NUM ) AS participantsNum
FROM
epdc_item item
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
AND eve.DEL_FLAG = '0'
epdc_item item
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
AND eve.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = #{itemState}
AND item.ID IN (
SELECT
temp.ITEM_ID
FROM
( SELECT dept.ITEM_ID FROM epdc_item_dept dept WHERE dept.DEL_FLAG = '0'
<if test="deptIdList != null">
AND dept.DEPT_ID IN
<foreach item="deptId" collection="deptIdList" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
) temp
)
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="gridId != null and gridId != ''">
AND (item.GRID_ID = #{gridId}
OR find_in_set(#{gridId},item.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},item.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},item.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},item.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},item.ALL_DEPT_IDS))
</if>
<if test="itemCode != null and itemCode != ''">
AND item.ITEM_CODE like concat('%', #{itemCode}, '%')
</if>
item.DEL_FLAG = '0'
AND item.ITEM_STATE = #{itemState}
AND item.ID IN (
SELECT
temp.ITEM_ID
FROM
( SELECT dept.ITEM_ID FROM epdc_item_dept dept WHERE dept.DEL_FLAG = '0'
<if test="deptIdList != null">
AND dept.DEPT_ID IN
<foreach item="deptId" collection="deptIdList" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
) temp
)
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="gridId != null and gridId != ''">
AND (item.GRID_ID = #{gridId}
OR find_in_set(#{gridId},item.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},item.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},item.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},item.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},item.ALL_DEPT_IDS))
</if>
<if test="itemCode != null and itemCode != ''">
AND item.ITEM_CODE like concat('%', #{itemCode}, '%')
</if>
ORDER BY
item.CREATED_TIME DESC
item.CREATED_TIME DESC
</select>
<resultMap id="itemDetailPCEndMap" type="com.elink.esua.epdc.dto.item.result.ItemDetailForPCEndResultDTO">
@ -514,55 +518,57 @@
</resultMap>
<select id="selectListOfItemHandleProgress" resultMap="itemHandleMap">
SELECT
CREATED_TIME AS createdTime,
advice,
HANDLER_DEPT AS handlerDept,
CASE STATE WHEN 0 THEN '【审核通过】' WHEN 1 THEN '【反馈】' WHEN 2 THEN '【已关闭】' WHEN 3 THEN '【转议题】' ELSE '' END AS progressName,
null AS DEPT_NAME
CREATED_TIME AS createdTime,
advice,
HANDLER_DEPT AS handlerDept,
CASE STATE WHEN 0 THEN '【审核通过】' WHEN 1 THEN '【反馈】' WHEN 2 THEN '【已关闭】' WHEN 3 THEN '【转议题】' ELSE '' END AS
progressName,
null AS DEPT_NAME
FROM
epdc_issue_handle
epdc_issue_handle
WHERE
DEL_FLAG = '0'
AND ISSUE_ID = #{issueId} UNION ALL
DEL_FLAG = '0'
AND ISSUE_ID = #{issueId} UNION ALL
SELECT
hp.CREATED_TIME AS createdTime,
<if test="outOrInside == 0">
hp.HANDLE_ADVICE AS advice,
</if>
<if test="outOrInside == 1">
hp.OUT_HANDLE_ADVICE AS advice,
</if>
hp.HANDLER_DEPT AS handlerDept,
CASE WHEN hp.STATE = 0 THEN '【处理中】' WHEN hp.STATE = 5 THEN '【已关闭】' WHEN hp.STATE = 10 THEN '【已结案】' ELSE '' END AS progressName,
itemDept.DEPT_NAME
hp.CREATED_TIME AS createdTime,
<if test="outOrInside == 0">
hp.HANDLE_ADVICE AS advice,
</if>
<if test="outOrInside == 1">
hp.OUT_HANDLE_ADVICE AS advice,
</if>
hp.HANDLER_DEPT AS handlerDept,
CASE WHEN hp.STATE = 0 THEN '【处理中】' WHEN hp.STATE = 5 THEN '【已关闭】' WHEN hp.STATE = 10 THEN '【已结案】' ELSE '' END
AS progressName,
itemDept.DEPT_NAME
FROM
epdc_item_handle_process hp
LEFT JOIN epdc_item_dept itemDept ON hp.ID = itemDept.ITEM_HANDLE_ID
epdc_item_handle_process hp
LEFT JOIN epdc_item_dept itemDept ON hp.ID = itemDept.ITEM_HANDLE_ID
WHERE
hp.DEL_FLAG = '0'
AND hp.ITEM_ID = #{itemId} UNION ALL
hp.DEL_FLAG = '0'
AND hp.ITEM_ID = #{itemId} UNION ALL
SELECT
EVALUATION_TIME AS createdTime,
EVALUATION_CONTENT AS advice,
NICK_NAME AS handlerDept,
CASE
EVALUATION_SCORE
WHEN 0 THEN
'【满意度评价】不满意'
WHEN 1 THEN
'【满意度评价】基本满意'
WHEN 2 THEN
'【满意度评价】非常满意' ELSE ''
END AS progressName,
null AS DEPT_NAME
EVALUATION_TIME AS createdTime,
EVALUATION_CONTENT AS advice,
NICK_NAME AS handlerDept,
CASE
EVALUATION_SCORE
WHEN 0 THEN
'【满意度评价】不满意'
WHEN 1 THEN
'【满意度评价】基本满意'
WHEN 2 THEN
'【满意度评价】非常满意' ELSE ''
END AS progressName,
null AS DEPT_NAME
FROM
epdc_item
epdc_item
WHERE
DEL_FLAG = '0'
AND ID = #{itemId}
AND EVALUATION_SCORE IS NOT NULL
DEL_FLAG = '0'
AND ID = #{itemId}
AND EVALUATION_SCORE IS NOT NULL
ORDER BY
createdTime DESC
createdTime DESC
</select>
<resultMap id="itemHandleMapByWork" type="com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO">
<result property="id" column="ID"/>
@ -714,23 +720,23 @@
</select>
<select id="selectOneItemStatistics" resultType="com.elink.esua.epdc.dto.item.result.ItemStatisticsResultDTO">
SELECT
pendingTable.pendingHandleNum,
closingTable.closingCaseNum,
closedTable.closedNum,
noticeTable.noticeNum
pendingTable.pendingHandleNum,
closingTable.closingCaseNum,
closedTable.closedNum,
noticeTable.noticeNum
FROM
(
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS pendingHandleNum
FROM
(
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS pendingHandleNum
FROM
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '0'
AND dept.DEPT_ID IN
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '0'
AND dept.DEPT_ID IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}
</foreach>
@ -738,46 +744,46 @@
AND dept.DEPT_ID = #{deptId}
</if>
) pendingTable
INNER JOIN (
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS closingCaseNum
FROM
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '10'
AND dept.DEPT_ID IN
) pendingTable
INNER JOIN (
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS closingCaseNum
FROM
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '10'
AND dept.DEPT_ID IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}
</foreach>
<if test='deptId != null and deptId != ""'>
AND dept.DEPT_ID = #{deptId}
</if>
) closingTable ON pendingTable.keystr = closingTable.keystr
INNER JOIN (
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS closedNum
FROM
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '5'
) closingTable ON pendingTable.keystr = closingTable.keystr
INNER JOIN (
SELECT
'ITEM_COUNT' AS keystr,
COUNT( * ) AS closedNum
FROM
epdc_item item
LEFT JOIN epdc_item_dept dept ON item.id = dept.ITEM_ID
AND dept.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
AND item.ITEM_STATE = '5'
AND dept.DEPT_ID IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}
</foreach>
AND dept.DEPT_ID IN
<foreach item="deptIdItem" collection="deptIdList" open="(" separator="," close=")">
#{deptIdItem}
</foreach>
<if test='deptId != null and deptId != ""'>
AND dept.DEPT_ID = #{deptId}
</if>
) closedTable ON pendingTable.keystr = closedTable.keystr
) closedTable ON pendingTable.keystr = closedTable.keystr
INNER JOIN (
SELECT
'ITEM_COUNT' AS keystr,
@ -797,4 +803,26 @@
</if>
) noticeTable ON pendingTable.keystr = noticeTable.keystr
</select>
<select id="selectListKpiEvaluationData" resultType="com.elink.esua.epdc.dto.KpiMetaDataDTO">
SELECT
COUNT(ei.ISSUE_ID) AS dataValue,
ei.GRID_ID as deptId,
#{startTime} as startDate,
#{endTime} as endDate,
#{type} as kpiCycle
FROM
epdc_item ei
WHERE
DATE_FORMAT( issue.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
and
ei.EVALUATION_SCORE = #{evaluationScore}
and ei.DEL_FLAG = '0'
and ei.GRID_ID IN
<foreach item="gridId" collection="gridIdList" open="(" separator="," close=")">
#{gridId}
</foreach>
GROUP BY
ei.GRID_ID
</select>
</mapper>

2
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 {
/***

2
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();
/**
* 启动与规则编码匹配的相关任务

2
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();
}

3
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();
}
}

19
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;

3
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();
}

12
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<List<KpiMetaDataDTO>> getAllCommitCount(EventCountFromDTO eventCountFromDto);
/***
* 查询问题办理满意度
* @param kpiEventEvaluationFromDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.KpiMetaDataDTO>>
* @author qushutong
* @date 2019/12/18 10:22
*/
@PostMapping(value = "events/item/queryEvaluationData", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<KpiMetaDataDTO>> queryEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto);
}

6
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<List<KpiMetaDataDTO>> getAllCommitCount( EventCountFromDTO eventCountFromDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "getAllCommitCount", eventCountFromDto);
}
@Override
public Result<List<KpiMetaDataDTO>> queryEvaluationData(KpiEventEvaluationFromDTO kpiEventEvaluationFromDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "queryEvaluationData", kpiEventEvaluationFromDto);
}
}

11
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<KpiMetaDataEntity> {
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();
}

91
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<KpiMetaDataDao, KpiM
@Override
public void createMataData() {
// 获取所有网格
Result<List<Long>> listResult = adminFeignClient.listAllGridId();
//容量
int pageSize = 10;
//页码
int pageIndex = 1;
while (true) {
Result<List<Long>> listResult1 = adminFeignClient.pageDeptIdByTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex);
// 分页获取所有网格
Result<List<Long>> 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<Long> gridList = listResult.getData();
EventCountFromDTO eventCountFromDto = new EventCountFromDTO();
@ -157,4 +160,78 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
}
@Override
public void createEvaluationData() {
//查询sql入参
//月
KpiEventEvaluationFromDTO monthFromDto;
//季度
KpiEventEvaluationFromDTO quarterFromDto;
// 年
KpiEventEvaluationFromDTO yearFromDto;
//统计月
//取本月第一天
YearMonth now = YearMonth.now();
LocalDate startTime = now.minusMonths(1).atDay(1);
LocalDate endTime = now.atDay(1);
Date endTimeDate = LocalDateUtils.localDateToDate(startTime);
//按月统计
monthFromDto = new KpiEventEvaluationFromDTO();
monthFromDto.setEndTime(LocalDateUtils.localDateToDate(endTime));
monthFromDto.setStartTime(endTimeDate);
//按照季度
int nowMonth = now.getMonthValue();
//上个季度第一天
LocalDate lastQuarter = now.minusMonths(3).atDay(1);
Date startQuarterDate = LocalDateUtils.localDateToDate(lastQuarter);
quarterFromDto = new KpiEventEvaluationFromDTO();
quarterFromDto.setStartTime(startQuarterDate);
quarterFromDto.setEndTime(endTimeDate);
//年统计
//上个季度第一天
LocalDate lastYear = now.minusYears(1).atDay(1);
yearFromDto = new KpiEventEvaluationFromDTO();
yearFromDto.setStartTime(LocalDateUtils.localDateToDate(lastYear));
yearFromDto.setEndTime(endTimeDate);
//容量
int pageSize = 10;
//页码
int pageIndex = 1;
List<KpiMetaDataDTO> kpiMetaDataDTOList;
while (true) {
// 分页获取所有网格
Result<List<Long>> 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<Long> 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++;
}
}
}
Loading…
Cancel
Save