diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ProcessProgressConstant.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ProcessProgressConstant.java index 01623eec..dce3d923 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ProcessProgressConstant.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/ProcessProgressConstant.java @@ -33,5 +33,10 @@ public interface ProcessProgressConstant { */ String PROJECT = "project"; + /** + * 项目满意度评价 + */ + String PROJECT_EVALUATION = "project-evaluation"; + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/EditProgressResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/EditProgressResultDTO.java index f73aa941..ee003658 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/EditProgressResultDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/EditProgressResultDTO.java @@ -78,4 +78,9 @@ public class EditProgressResultDTO implements Serializable { * 事件内容 */ private String eventContent; + + /** + * 项目 满意度评价得分 + */ + private Integer evaluationScore; } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java index 80922b16..a44664e9 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java @@ -65,4 +65,13 @@ public class ItemPendingHandleDTO implements Serializable { */ private String topFlag; + /** + * 列表所属网格 + */ + private String grid; + + /** + * 项目状态(处理中、已关闭、已结案) + */ + private String itemState; } 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 a9d7affb..6b71ff3c 100644 --- 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 @@ -1608,17 +1608,23 @@ public class ItemServiceImpl extends BaseServiceImpl implem @Override public List getProcessProgress(String id) { - //获取项目基本信息 + // 获取项目基本信息 ItemEntity entity = this.selectById(id); // 获取项目处理进度 List result = baseDao.selectListOfEditItemHandleProgressByWork(id); - // 项目处理表中第一条数据,为 议题转项目 + // 项目处理表中第一条数据(创建时间,升序),为 议题转项目 this.firstDataHandleType(result, ProcessProgressConstant.ISSUE_PROJECT); + // 获取项目评价满意度 + if (null != entity.getEvaluationTime()) { + result.add(this.packageItemEvaluation(entity)); + result.sort(Comparator.comparing(EditProgressResultDTO::getCreatedTime).reversed()); + } + // 获取议题处理进度 List issueList = issueService.listEditIssueProgress(entity.getIssueId()); - // 议题处理表中第一条数据,为 事件审核通过,即转议题 + // 议题处理表中第一条数据(创建时间,升序),为 事件审核通过,即转议题 this.firstDataHandleType(issueList, ProcessProgressConstant.EVENT_ISSUE); result.addAll(issueList); @@ -1629,6 +1635,16 @@ public class ItemServiceImpl extends BaseServiceImpl implem return result; } + private EditProgressResultDTO packageItemEvaluation(ItemEntity entity) { + EditProgressResultDTO result = new EditProgressResultDTO(); + result.setHandleType(ProcessProgressConstant.PROJECT_EVALUATION); + result.setCreatedTime(entity.getEvaluationTime()); + result.setAdvice(entity.getEvaluationContent()); + result.setEvaluationScore(entity.getEvaluationScore()); + result.setState(entity.getItemState()); + return result; + } + private void firstDataHandleType(List list, String typeName) { for (int i = NumConstant.ZERO; i < list.size(); i++) { if (i == list.size() - NumConstant.ONE ) { @@ -1688,14 +1704,18 @@ public class ItemServiceImpl extends BaseServiceImpl implem EpdcEventsEntity eventEntity = new EpdcEventsEntity(); // 图片批量处理 List batchHandleImages = new ArrayList<>(); + List itemDeptEntities = new ArrayList<>(); Date issueToProjectTime = null; Date eventToIssueTime = null; Date distributeTime = null; String eventId = ""; + EditProgressResultDTO projectEvaluation = null; for (EditProgressResultDTO dto : formDto) { - // 1、组装 项目处理进展表 信息 - if (ProcessProgressConstant.PROJECT.equals(dto.getHandleType()) || ProcessProgressConstant.ISSUE_PROJECT.equals(dto.getHandleType())) { + if (ProcessProgressConstant.PROJECT.equals(dto.getHandleType()) + || ProcessProgressConstant.ISSUE_PROJECT.equals(dto.getHandleType()) + || ProcessProgressConstant.PROJECT_EVALUATION.equals(dto.getHandleType())) { + // 1、组装 项目处理进展表 信息 ItemHandleProcessEntity entity = new ItemHandleProcessEntity(); entity.setCreatedTime(dto.getCreatedTime()); entity.setHandleAdvice(dto.getAdvice()); @@ -1707,7 +1727,18 @@ public class ItemServiceImpl extends BaseServiceImpl implem } // 组装 项目图片 信息 batchHandleImages.add(this.packageImagesInfo(dto.getId(), ImageConstant.TYPE_IMAGE_ITEM_HANDLE, dto.getImages())); - batchHandleImages.add(this.packageImagesInfo(dto.getId(), ImageConstant.TYPE_IMAGE_ITEM_OUT_HANDLE, dto.getOutImages())) ; + batchHandleImages.add(this.packageImagesInfo(dto.getId(), ImageConstant.TYPE_IMAGE_ITEM_OUT_HANDLE, dto.getOutImages())); + // 如果是吹哨,还要处理 项目部门关系表 + if (NumConstant.ZERO == dto.getState() && null != dto.getItemDeptDTOS() && dto.getItemDeptDTOS().size() > NumConstant.ZERO) { + ItemDeptEntity itemDeptEntity = new ItemDeptEntity(); + itemDeptEntity.setId(dto.getItemDeptDTOS().get(NumConstant.ZERO).getId()); + itemDeptEntity.setCreatedTime(dto.getCreatedTime()); + itemDeptEntities.add((itemDeptEntity)); + } + // 如果是 项目满意度评价,还需要修改 epdc_item 表中相关字段 + if (ProcessProgressConstant.PROJECT_EVALUATION.equals(dto.getHandleType())) { + projectEvaluation = dto; + } } // 2、组装 议题处理进展 信息 @@ -1744,12 +1775,23 @@ public class ItemServiceImpl extends BaseServiceImpl implem if (NumConstant.ZERO < itemHandleProcessEntities.size()) { itemHandleProcessService.updateBatchById(itemHandleProcessEntities); + itemDeptService.updateBatchById(itemDeptEntities); // 5、处理项目表 ItemEntity itemEntity = new ItemEntity(); itemEntity.setCreatedTime(issueToProjectTime); itemEntity.setLastHandleTime(formDto.get(NumConstant.ZERO).getCreatedTime()); itemEntity.setDistributeTime(distributeTime); itemEntity.setId(relationshipId.getItemId()); + if (null != projectEvaluation) { + if (NumConstant.FIVE == formDto.get(NumConstant.ZERO).getState()) { + // 最后一条记录为 结案 且 有满意度评价,最后一次处理时间为 满意度评价时间 + itemEntity.setLastHandleTime(projectEvaluation.getCreatedTime()); + } + itemEntity.setEvaluationScore(projectEvaluation.getEvaluationScore()); + itemEntity.setEvaluationContent(projectEvaluation.getAdvice()); + itemEntity.setEvaluationTime(projectEvaluation.getCreatedTime()); + } + baseDao.updateById(itemEntity); } 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 040355b9..af0361fe 100644 --- 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 @@ -443,6 +443,8 @@ item.ITEM_CODE, item.CREATED_TIME, item.NICK_NAME, + item.GRID, + item.ITEM_STATE, CASE item.EVALUATION_SCORE WHEN 0 THEN '不满意' WHEN 1 THEN '基本满意' @@ -465,6 +467,9 @@ AND item.ITEM_STATE = #{itemState} + + AND item.ITEM_CONTENT = trim(#{itemContent}) + AND item.ITEM_STATE in (0,10) @@ -1063,6 +1068,7 @@ + @@ -1083,6 +1089,7 @@ hp.HANDLER_DEPT, hp.STATE, itemDept.DEPT_NAME, + itemDept.ID AS ITEM_DEPT_ID, img.IMG_URL, img.ID as imageId, outImg.IMG_URL AS OUT_IMG_URL,