diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java index 7ddd901d11..7095169cb0 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/AllProjectFormDTO.java @@ -38,4 +38,8 @@ public class AllProjectFormDTO implements Serializable { private List gridIdList; private String agencyId; + + private List agencyIdList; + + private String customerId; } 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 071926bf1b..fb91510b88 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 @@ -2,13 +2,16 @@ 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.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.constant.DataSourceConstant; -import com.epmet.dataaggre.constant.ProjectConstant; import com.epmet.dataaggre.dao.govproject.ProjectDao; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; @@ -167,61 +170,21 @@ public class GovProjectServiceImpl implements GovProjectService { @Override public AllProjectResultDTO allProjectList(TokenDto tokenDto, AllProjectFormDTO formDTO) { AllProjectResultDTO resultDTO = new AllProjectResultDTO(); - String agencyId = govOrgService.getAgencyIdByUserId(tokenDto.getUserId()); - int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - - if (StringUtils.isEmpty(agencyId)) { - throw new RenException(String.format("获取工作人员组织信息失败,staffId->%s", tokenDto.getUserId())); + if (CollectionUtils.isEmpty(formDTO.getAgencyIdList()) && CollectionUtils.isEmpty(formDTO.getGridIdList())) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "获取工作人员信息失败"); + } + List agencyList = new ArrayList<>(); + agencyList.add(staffInfo.getAgencyId()); + formDTO.setAgencyIdList(agencyList); } - formDTO.setAgencyId(agencyId); + formDTO.setCustomerId(tokenDto.getCustomerId()); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); List projectList = projectDao.getAllProject(formDTO); + PageInfo pageInfo = new PageInfo<>(projectList); if (CollectionUtils.isNotEmpty(projectList)) { - resultDTO.setProjectCount(projectList.size()); - projectList.forEach(project -> { - //计算项目耗时 - Integer timeSpent; - if (ProjectConstant.PROJECT_STATUS_CLOSED.equals(project.getProjectStatus())) { - timeSpent = getTimeSpent(project.getProjectId(), project.getStartTime(), project.getEndTime()); - } else { - timeSpent = getTimeSpent(project.getProjectId(), project.getStartTime(), new Date()); - } - project.setTimeSpent(timeSpent); - //获取当前处理部门 - ProjectDTO projectDTO = new ProjectDTO(); - projectDTO.setId(project.getProjectId()); - List departmentList = projectDao.selectDepartmentNameList(projectDTO); - project.setCurrentDisposeDept(departmentList); - - }); - int pageSize = pageIndex + formDTO.getPageSize(); - if (pageSize > projectList.size()) { - pageSize = projectList.size(); - } - //排序(创建:create 更新:update 部门:department 耗时:date 次数:count) - switch (formDTO.getSortType()) { - case "create": - projectList = projectList.stream().sorted(Comparator.comparing(ProjectInfoDTO::getProjectTime).reversed()) - .collect(Collectors.toList()).subList(pageIndex, pageSize); - break; - case "update": - projectList = projectList.stream().sorted(Comparator.comparing(ProjectInfoDTO::getUpdateTime).reversed()) - .collect(Collectors.toList()).subList(pageIndex, pageSize); - break; - case "department": - projectList = projectList.stream().sorted(Comparator.comparing(ProjectInfoDTO::getDepartmentCount).reversed()) - .collect(Collectors.toList()).subList(pageIndex, pageSize); - break; - case "date": - projectList = projectList.stream().sorted(Comparator.comparing(ProjectInfoDTO::getTimeSpent).reversed()) - .collect(Collectors.toList()).subList(pageIndex, pageSize); - break; - case "count": - projectList = projectList.stream().sorted(Comparator.comparing(ProjectInfoDTO::getProcessCount).reversed()) - .collect(Collectors.toList()).subList(pageIndex, pageSize); - break; - default: - break; - } + resultDTO.setProjectCount((int) pageInfo.getTotal()); resultDTO.setProjectList(projectList); } else { resultDTO.setProjectCount(NumConstant.ZERO); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index d2cc49d64a..f7b74ccdb9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -4,38 +4,125 @@