From f2b2c083345ce17a683d44be26cb3780b9ea4b44 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 12 Jan 2022 11:15:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E9=A1=B9=E7=9B=AE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=80=97=E6=97=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../govproject/form/AllProjectFormDTO.java | 4 + .../impl/GovProjectServiceImpl.java | 69 +++------- .../mapper/govproject/ProjectDao.xml | 123 +++++++++++++++--- .../epmet/controller/ProjectController.java | 13 ++ .../java/com/epmet/entity/ProjectEntity.java | 8 +- .../com/epmet/service/ProjectService.java | 9 ++ .../service/impl/ProjectServiceImpl.java | 62 ++++++++- .../V0.0.17__project_work_minutes.sql | 2 + .../service/impl/IcResiUserServiceImpl.java | 4 +- 9 files changed, 217 insertions(+), 77 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.17__project_work_minutes.sql 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 @@