Browse Source

部门问题办理满意率 统计

feature/dangjian
曲树通 6 years ago
parent
commit
eabf9736ba
  1. 2
      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. 43
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  9. 40
      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. 89
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -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;
@ -162,4 +164,17 @@ public class ItemController {
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);
}

43
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,8 +201,10 @@ 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>>
* @Author: lipengfei
@ -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,8 +383,10 @@ 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
@ -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);
@ -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);
}
}

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

@ -65,7 +65,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 (
@ -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 (
@ -347,7 +350,8 @@
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,
@ -517,7 +521,8 @@
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,
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
@ -533,7 +538,8 @@
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,
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
@ -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();
}

89
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,14 +122,13 @@ 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("获取网格列表失败");
}
@ -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