From 9b42a90264bdba59c7464deeed8905484bfdcda8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 14 May 2020 15:08:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E7=AE=A1=E7=90=86=E3=80=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B7=9F=E8=B8=AA-=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/ProcessorListFormDTO.java | 20 ++++++ .../main/java/com/epmet/controller/.gitkeep | 0 .../controller/IssueManageController.java | 18 ++++-- .../com/epmet/feign/GovOrgFeignClient.java | 10 +++ .../fallback/GovOrgFeignClientFallBack.java | 6 ++ .../src/main/java/com/epmet/service/.gitkeep | 0 .../java/com/epmet/service/IssueService.java | 18 +++--- .../main/java/com/epmet/service/impl/.gitkeep | 0 .../epmet/service/impl/IssueServiceImpl.java | 18 ++++++ .../com/epmet/dto/result/AgencyResultDTO.java | 43 +++++++++++++ .../epmet/dto/result/AgencySubResultDTO.java | 52 ++++++++++++++++ .../dto/result/ProcessorListResultDTO.java | 48 ++++++++++++++ .../controller/CustomerAgencyController.java | 18 ++++-- .../java/com/epmet/dao/CustomerAgencyDao.java | 13 ++-- .../epmet/service/CustomerAgencyService.java | 13 ++-- .../impl/CustomerAgencyServiceImpl.java | 62 +++++++++++++++++++ .../resources/mapper/CustomerAgencyDao.xml | 17 +++++ .../epmet/dto/form/ProcessorListFormDTO.java | 20 ++++++ .../com/epmet/constant/ProjectConstant.java | 2 +- .../controller/ProjectTraceController.java | 13 ++++ .../com/epmet/feign/GovOrgFeignClient.java | 10 +++ .../fallback/GovOrgFeignClientFallBack.java | 6 ++ .../epmet/service/ProjectTraceService.java | 8 +++ .../impl/ProjectProcessServiceImpl.java | 2 +- .../service/impl/ProjectTraceServiceImpl.java | 19 ++++++ 25 files changed, 410 insertions(+), 26 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java delete mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/.gitkeep delete mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/.gitkeep delete mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/.gitkeep create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ProcessorListResultDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java new file mode 100644 index 0000000000..aa19fd2872 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 议题人员选择(查询当前组织的上两级组织、当前组织和所有下级组织)--接口入参 + * @Author sun + */ +@Data +public class ProcessorListFormDTO implements Serializable { + private static final long serialVersionUID = 4859779755214502427L; + + @NotBlank(message = "议题Id不能为空") + private String issueId; + +} + diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/.gitkeep b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java index dd6731d5d2..5acbc0b595 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java @@ -10,10 +10,7 @@ import com.epmet.dto.form.CloseIssueFormDTO; import com.epmet.dto.form.DepartmentStaffListFormDTO; import com.epmet.dto.form.ShiftProjectListFromDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.DepartmentStaffListResultDTO; -import com.epmet.dto.result.ShiftProjectListResultDTO; -import com.epmet.dto.result.EvaluationListResultDTO; -import com.epmet.dto.result.VotingTrendResultDTO; +import com.epmet.dto.result.*; import com.epmet.service.IssueService; import com.epmet.service.IssueVoteStatisticalService; import org.springframework.beans.factory.annotation.Autowired; @@ -99,5 +96,18 @@ public class IssueManageController { public Result> evaluationList(@RequestBody EvaluationListFormDTO formDTO){ return new Result>().ok(issueVoteStatisticalService.evaluationList(formDTO)); } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 议题管理-议题人员选择 + **/ + @PostMapping("processorlist") + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT) + public Result processorList(@LoginUser TokenDto tokenDTO, @RequestBody ProcessorListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(issueService.processorList(formDTO)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java index 448afc2e58..8520e454b5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.form.CustomerGridFormDTO; import com.epmet.dto.result.AgencyGridResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.ProcessorListResultDTO; import com.epmet.feign.fallback.GovOrgFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; @@ -35,4 +36,13 @@ public interface GovOrgFeignClient { **/ @PostMapping(value = "/gov/org/customeragency/departmentstafflist/{agencyId}") Result departmentStaffList(@PathVariable("agencyId") String agencyId); + + /** + * @param agencyId + * @return + * @Author sun + * @Description 根据当前组织ID查询上两级组织、当前组织和所有下级(迭代)组织 + **/ + @PostMapping(value = "/gov/org/customeragency/getprocessorlist/{agencyId}") + Result getProcessorList(@PathVariable("agencyId") String agencyId); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java index 336832326b..8b9d94fd3e 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.AgencyGridResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.ProcessorListResultDTO; import com.epmet.feign.GovOrgFeignClient; import org.springframework.stereotype.Component; @@ -24,4 +25,9 @@ public class GovOrgFeignClientFallBack implements GovOrgFeignClient { public Result departmentStaffList(String agencyId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "departmentStaffList", agencyId); } + + @Override + public Result getProcessorList(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getProcessorList", agencyId); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/.gitkeep b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index 866c89c7ef..38de2c99aa 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -1,14 +1,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.dto.form.CloseIssueFormDTO; -import com.epmet.dto.form.DepartmentStaffListFormDTO; -import com.epmet.dto.form.IssueDetailFormDTO; -import com.epmet.dto.form.ShiftProjectListFromDTO; -import com.epmet.dto.result.DepartmentStaffListResultDTO; -import com.epmet.dto.result.GridVotingIssueCountResultDTO; -import com.epmet.dto.result.IssueResultDTO; -import com.epmet.dto.result.ShiftProjectListResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.entity.IssueEntity; import java.util.List; @@ -59,4 +53,12 @@ public interface IssueService extends BaseService { * @Date 2020/5/13 22:53 **/ List queryVotingIssueCount(List gridIdList); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 议题管理-议题人员选择 + **/ + ProcessorListResultDTO processorList(ProcessorListFormDTO formDTO); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/.gitkeep b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index a15e4bf74f..0b06cd26bb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -196,4 +196,22 @@ public class IssueServiceImpl extends BaseServiceImpl imp })).collect(Collectors.toList()); return resultList; } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 议题管理-议题人员选择 + **/ + @Override + public ProcessorListResultDTO processorList(ProcessorListFormDTO formDTO) { + //1:查询当前议题工作人员所属组织Id + IssueEntity entity = baseDao.selectById(formDTO.getIssueId()); + if (null == entity) { + throw new RenException(IssueConstant.SELECT_EXCEPTION); + } + //2:调用gov-org服务,查询组织树 + Result resultDTOResult = govOrgFeignClient.getProcessorList(entity.getOrgId()); + return resultDTOResult.getData(); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java new file mode 100644 index 0000000000..a02fdb01ee --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyResultDTO.java @@ -0,0 +1,43 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 组织信息 + * + * @author sun + */ +@Data +public class AgencyResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 机关组织Id + */ + private String agencyId = ""; + /** + * 机关组织名称 + */ + private String agencyName = ""; +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java new file mode 100644 index 0000000000..117976dee8 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencySubResultDTO.java @@ -0,0 +1,52 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 下级组织信息(迭代对象) + * + * @author sun + */ +@Data +public class AgencySubResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 机关组织Id + */ + private String agencyId = ""; + /** + * 机关组织名称 + */ + private String agencyName = ""; + /** + * 下级组织信息 + */ + private List subAgencyList; + /** + * 当前组织的所有上级组织Id + */ + private String pids = ""; +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ProcessorListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ProcessorListResultDTO.java new file mode 100644 index 0000000000..cede6e5170 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ProcessorListResultDTO.java @@ -0,0 +1,48 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 项目人员选择(查询当前组织的上两级组织和所有下级组织)--接口返参 + * + * @author sun + */ +@Data +public class ProcessorListResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 当前组织的上两级组织信息 + */ + private List parentAgencyList; + /** + * 当前组织信息 + */ + private AgencyResultDTO agencyList; + /** + * 下级组织信息(迭代) + */ + private List subAgencyList; +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java index 6434a318b6..73728f19de 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -28,10 +30,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.form.AgencyDeptGridFormDTO; import com.epmet.dto.form.StaffOrgFormDTO; -import com.epmet.dto.result.AgencyDeptGridResultDTO; -import com.epmet.dto.result.AgencyGridResultDTO; -import com.epmet.dto.result.DepartmentStaffListResultDTO; -import com.epmet.dto.result.StaffOrgsResultDTO; +import com.epmet.dto.result.*; import com.epmet.excel.CustomerAgencyExcel; import com.epmet.service.CustomerAgencyService; import org.springframework.beans.factory.annotation.Autowired; @@ -142,4 +141,15 @@ public class CustomerAgencyController { return new Result().ok(customerAgencyService.getAgencyDeptGridList(formDTO)); } + /** + * @param agencyId + * @return + * @Author sun + * @Description 根据当前组织ID查询上两级组织、本级组织和所有下级(迭代)组织 + **/ + @PostMapping("getprocessorlist/{agencyId}") + public Result getProcessorList(@PathVariable("agencyId") String agencyId) { + return new Result().ok(customerAgencyService.getProcessorList(agencyId)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index a83d872672..a9846b3a76 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -19,10 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.result.AgencyListResultDTO; -import com.epmet.dto.result.ParentListResultDTO; -import com.epmet.dto.result.StaffOrgsResultDTO; -import com.epmet.dto.result.SubListResultDTO; +import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -95,4 +92,12 @@ public interface CustomerAgencyDao extends BaseDao { * @Description 批量查询组织信息 **/ List selectAgencyListByIds(@Param("agencyIdList") List agencyIdList); + + /** + * @param subAgencyPids + * @return + * @Author sun + * @Description 查询当前组织的下一级组织列表 + **/ + List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index b79c1c6cfb..96132b35da 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -23,10 +23,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.form.AgencyDeptGridFormDTO; import com.epmet.dto.form.StaffOrgFormDTO; -import com.epmet.dto.result.AgencyDeptGridResultDTO; -import com.epmet.dto.result.AgencyGridResultDTO; -import com.epmet.dto.result.DepartmentStaffListResultDTO; -import com.epmet.dto.result.StaffOrgsResultDTO; +import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; import java.util.List; @@ -132,4 +129,12 @@ public interface CustomerAgencyService extends BaseService * @Description 根据组织Id集合、部门Id集合、网格Id集合查询各自对应详细信息 **/ AgencyDeptGridResultDTO getAgencyDeptGridList(AgencyDeptGridFormDTO formDTO); + + /** + * @param agencyId + * @return + * @Author sun + * @Description 根据当前组织ID查询上两级组织、本级组织和所有下级(迭代)组织 + **/ + ProcessorListResultDTO getProcessorList(String agencyId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index 2218c26341..2981b5919b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; @@ -320,4 +321,65 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl parentAgencyList = new ArrayList<>(); + //1:查询当前组织信息 + CustomerAgencyEntity entity = baseDao.selectById(agencyId); + AgencyResultDTO agencyList = new AgencyResultDTO(); + agencyList.setAgencyId(entity.getId()); + agencyList.setAgencyName(entity.getOrganizationName()); + processorList.setAgencyList(agencyList); + //2:查询当前组织的上两级组织,按层级排序 + String pids = entity.getPids(); + String[] args = pids.split(":"); + List agencyIdList = new ArrayList<>(); + if (args.length < NumConstant.ONE) { + processorList.setParentAgencyList(parentAgencyList); + } else { + if (args.length > NumConstant.ONE) { + agencyIdList.add(args[args.length - NumConstant.TWO]); + } + if (args.length > NumConstant.ZERO) { + agencyIdList.add(args[args.length - NumConstant.ONE]); + } + List parentList = baseDao.selectAgencyListByIds(agencyIdList); + parentList.forEach(parent->{ + AgencyResultDTO agency = new AgencyResultDTO(); + agency.setAgencyId(parent.getId()); + agency.setAgencyName(parent.getOrganizationName()); + parentAgencyList.add(agency); + }); + processorList.setParentAgencyList(parentAgencyList); + } + //3:迭代查询当前组织的所有下级组织列表 + List subAgencyList = getDepartmentList(entity.getPids() + ":" + entity.getId()); + processorList.setSubAgencyList(subAgencyList); + + return processorList; + } + + /** + * @param subAgencyPids 当前组织的下一级组织的pids字段值(当前组织的pids+":"+当前组织Id) + * @return + * @Author 迭代查询当前组织的所有下级组织树结构数据 + */ + private List getDepartmentList(String subAgencyPids) { + List subAgencyList = baseDao.selectSubAgencyList(subAgencyPids); + if (subAgencyList.size() > NumConstant.ZERO) { + for (AgencySubResultDTO sub : subAgencyList) { + List subAgency = getDepartmentList(sub.getPids() + ":" + sub.getAgencyId()); + sub.setSubAgencyList(subAgency); + } + } + return subAgencyList; + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index 41cce6fb8e..1b5fdf92a5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -118,5 +118,22 @@ ca.id = #{agencyId} + ORDER BY field( + ca.id, + + #{agencyId} + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java new file mode 100644 index 0000000000..764412d461 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessorListFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 项目人员选择(查询当前组织的上两级组织、当前组织和所有下级组织)--接口入参 + * @Author sun + */ +@Data +public class ProcessorListFormDTO implements Serializable { + private static final long serialVersionUID = 4859779755214502427L; + + @NotBlank(message = "项目人员关联Id不能为空") + private String projectStaffId; + +} + diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index 78d79402c1..d341afd494 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -84,5 +84,5 @@ public interface ProjectConstant { /** * 更新项目人员关联表数据失败 */ - String DATe_EXCEPTION = "未勾选流转人员"; + String DATE_EXCEPTION = "未勾选流转人员"; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index 427d37956f..28c14a862e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -219,5 +219,18 @@ public class ProjectTraceController { public Result> myDepartmentList(@LoginUser TokenDto tokenDto, @RequestBody ProjectDetailFromDTO fromDTO) { return new Result>().ok(projectTraceService.myDepartmentList(tokenDto, fromDTO)); } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 项目跟踪-项目人员选择 + **/ + @PostMapping("processorlist") + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_PROJECT_TRACE_TRANSFER) + public Result processorList(@LoginUser TokenDto tokenDTO, @RequestBody ProcessorListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(projectTraceService.processorList(formDTO)); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java index 5038fa4206..a086079472 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java @@ -8,6 +8,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.AgencyDeptGridFormDTO; import com.epmet.dto.result.AgencyDeptGridResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.ProcessorListResultDTO; import com.epmet.feign.fallback.GovOrgFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; @@ -46,4 +47,13 @@ public interface GovOrgFeignClient { @PostMapping(value = "/gov/org/customeragency/getagencydeptgridlist") Result getAgencyDeptGridList(AgencyDeptGridFormDTO formDTO); + /** + * @param agencyId + * @return + * @Author sun + * @Description 根据当前组织ID查询上两级组织、当前组织和所有下级(迭代)组织 + **/ + @PostMapping(value = "/gov/org/customeragency/getprocessorlist/{agencyId}") + Result getProcessorList(@PathVariable("agencyId") String agencyId); + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java index 3588d47287..1fad4e06c6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java @@ -10,6 +10,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.AgencyDeptGridFormDTO; import com.epmet.dto.result.AgencyDeptGridResultDTO; import com.epmet.dto.result.DepartmentStaffListResultDTO; +import com.epmet.dto.result.ProcessorListResultDTO; import com.epmet.feign.GovOrgFeignClient; import org.springframework.stereotype.Component; @@ -33,4 +34,9 @@ public class GovOrgFeignClientFallBack implements GovOrgFeignClient { public Result getAgencyDeptGridList(AgencyDeptGridFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getAgencyDeptGridList", formDTO); } + + @Override + public Result getProcessorList(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getProcessorList", agencyId); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index 1bb8227038..a3ebf9d74c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -99,4 +99,12 @@ public interface ProjectTraceService { * @date 2020/5/14 14:24 */ List myDepartmentList(TokenDto tokenDto, ProjectDetailFromDTO fromDTO); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 项目跟踪-项目人员选择 + **/ + ProcessorListResultDTO processorList(ProcessorListFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 38a3f8c9dc..0939efc749 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -196,7 +196,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl staffList = formDTO.getStaffList(); if (null == staffList || staffList.size() < NumConstant.ONE) { - throw new RenException(ProjectConstant.DATe_EXCEPTION); + throw new RenException(ProjectConstant.DATE_EXCEPTION); } //3.1:调用gov-org服务,获取所有勾选人员对应的组织信息、部门信息、网格信息用于对处理部门和ORG_ID_PATH字段的赋值 List agencyIdList = staffList.stream().map(TickStaffFormDTO::getAgencyId).collect(Collectors.toList()); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 9c5148df5a..3166c2497c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -1,9 +1,14 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.ProjectConstant; import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.entity.ProjectStaffEntity; +import com.epmet.feign.GovOrgFeignClient; import com.epmet.service.ProjectProcessService; import com.epmet.service.ProjectService; import com.epmet.service.ProjectStaffService; @@ -26,6 +31,8 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { private ProjectProcessService projectProcessService; @Autowired private ProjectStaffService projectStaffService; + @Autowired + private GovOrgFeignClient govOrgFeignClient; @Override public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { @@ -76,4 +83,16 @@ public class ProjectTraceServiceImpl implements ProjectTraceService { projectStaffDTO.setStaffId(fromDTO.getUserId()); return projectStaffService.getDepartmentNameList(projectStaffDTO); } + + @Override + public ProcessorListResultDTO processorList(ProcessorListFormDTO formDTO) { + //1:查询当前工作人员所属组织Id + ProjectStaffEntity staffEntity = projectStaffService.selectById(formDTO.getProjectStaffId()); + if (null == staffEntity) { + throw new RenException(ProjectConstant.SELECT_PROJECTSTAFF_EXCEPTION); + } + //2:调用gov-org服务,查询组织树 + Result resultDTOResult = govOrgFeignClient.getProcessorList(staffEntity.getOrgId()); + return resultDTOResult.getData(); + } }