diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java index 12b0cdb413..e0c9506d37 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/IssueConstant.java @@ -15,6 +15,8 @@ public interface IssueConstant { String ISSUE_STATUS_AUDITING = "auditing"; String ISSUE_STATUS_REJECTED = "rejected"; + String NOT_EXISTS_ISSUE_TYPE = "议题类型不能为空......"; + String GET_AGENCY_FAILURE = "根据userId查询组织ID失败......"; String GET_GRID_LIST_FAILURE = "获取网格ID列表失败......"; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java index 5f748ba6bb..50b6145d7a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/IssueListResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.dto.govissue.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -100,6 +101,9 @@ public class IssueListResultDTO implements Serializable { */ private List currentDepartment; + @JsonIgnore + private Long operationTime; + public IssueListResultDTO() { this.issueId = ""; this.issueTitle = ""; @@ -117,5 +121,7 @@ public class IssueListResultDTO implements Serializable { this.auditingTime = 0L; this.shiftProjectTime = 0L; this.currentDepartment = new ArrayList<>(); + this.projectId = ""; + this.issueClosedTime = 0L; } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java index fefadb9b91..a73985788e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java @@ -102,11 +102,21 @@ public class GovIssueServiceImpl implements GovIssueService { * @date 2020/12/25 下午2:30 */ public List issueStatusClosedOrVoting(AllIssueFormDTO formDTO){ + if (StringUtils.isBlank(formDTO.getIssueType())){ + throw new RenException(IssueConstant.NOT_EXISTS_ISSUE_TYPE); + } if (CollectionUtils.isEmpty(formDTO.getGridIdList())){ return new ArrayList<>(); } PageInfo result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> issueDao.issueStatusClosedOrVoting(formDTO.getGridIdList(), formDTO.getIssueType())); - return result.getList(); + List list = result.getList(); + List resultList = new ArrayList<>(); + if (formDTO.getIssueType().equals(IssueConstant.ISSUE_STATUS_CLOSED)){ + resultList = list.stream().sorted(Comparator.comparing(IssueListResultDTO::getIssueClosedTime).reversed()).collect(Collectors.toList()); + }else { + resultList = list.stream().sorted(Comparator.comparing(IssueListResultDTO::getCreateTime).reversed()).collect(Collectors.toList()); + } + return resultList; } /** @@ -145,7 +155,7 @@ public class GovIssueServiceImpl implements GovIssueService { return new ArrayList<>(); } PageInfo result = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> issueApplicationDao.issueStatusAuditing(formDTO.getGridIdList())); - return result.getList(); + return result.getList().stream().sorted(Comparator.comparing(IssueListResultDTO::getAuditingTime).reversed()).collect(Collectors.toList()); } /** @@ -177,7 +187,8 @@ public class GovIssueServiceImpl implements GovIssueService { } }); }); - return list; + List collect = list.stream().sorted(Comparator.comparing(IssueListResultDTO::getShiftProjectTime).reversed()).collect(Collectors.toList()); + return collect; } /** diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index 8a3d244624..c133e50dce 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.dataaggre.service.govproject.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govproject.ProjectDao; @@ -13,7 +14,10 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author zxc @@ -48,6 +52,12 @@ public class GovProjectServiceImpl implements GovProjectService { return closedResult; } closedResult.addAll(pendingResult); + List result = new ArrayList<>(); + Map> groupByIssue = closedResult.stream().collect(Collectors.groupingBy(IssueListResultDTO::getIssueId)); + groupByIssue.forEach((k,v) ->{ + List sortByTime = v.stream().sorted(Comparator.comparing(IssueListResultDTO::getOperationTime).reversed()).collect(Collectors.toList()); + result.add(sortByTime.get(NumConstant.ZERO)); + }); return closedResult; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueApplicationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueApplicationDao.xml index 60caa8ece5..79ce6ca12e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueApplicationDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueApplicationDao.xml @@ -9,7 +9,8 @@ UNIX_TIMESTAMP(iah.CREATED_TIME) AS rejectedTime, ia.ISSUE_TITLE, ia.TOPIC_ID, - iah.REASON AS rejectedReason + iah.REASON AS rejectedReason, + ia.grid_id FROM issue_application_history iah LEFT JOIN issue_application ia ON iah.ISSUE_APPLICATION_ID = ia.ID WHERE ia.DEL_FLAG = 0 @@ -19,6 +20,7 @@ ia.GRID_ID = #{gridId} + order by iah.created_time desc @@ -26,7 +28,8 @@ SELECT ISSUE_TITLE, UNIX_TIMESTAMP(CREATED_TIME) AS auditingTime, - TOPIC_ID + TOPIC_ID, + grid_id FROM issue_application WHERE DEL_FLAG = 0 AND APPLY_STATUS = 'under_auditing' @@ -34,5 +37,6 @@ GRID_ID = #{gridId} + order by created_time desc \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml index aa52422676..1cfae4f58a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml @@ -11,14 +11,16 @@ UNIX_TIMESTAMP(CLOSED_TIME) AS issueClosedTime, ISSUE_TITLE AS issueTitle , UNIX_TIMESTAMP(CREATED_TIME) AS createTime, - SUGGESTION + SUGGESTION, + grid_id FROM issue WHERE DEL_FLAG = '0' AND ISSUE_STATUS = #{issueStatus} - AND + AND( - GRID_ID = #{gridId} - + GRID_ID = #{gridId} + ) + order by created_time desc @@ -26,14 +28,16 @@ SELECT ID AS issueId, SUGGESTION , - UNIX_TIMESTAMP(SHIFTED_TIME) AS shiftProjectTime + UNIX_TIMESTAMP(SHIFTED_TIME) AS shiftProjectTime, + grid_id FROM issue WHERE DEL_FLAG = '0' AND ISSUE_STATUS = 'shift_project' - AND + AND ( GRID_ID = #{gridId} - + ) + order by created_time desc