From 5f16fa4d168e551ecf75b88c311e1c27f20178d4 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Aug 2020 15:43:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84=E6=A0=91?= =?UTF-8?q?=EF=BC=8C=E7=BB=84=E7=BB=87=E5=8C=BA=E5=9F=9F=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/dto/form/CompartmentFormDTO.java | 24 +++++++++ .../result/AgencyDistributionResultDTO.java | 40 ++++++++++++++ .../dto/result/CompartmentResultDTO.java | 36 +++++++++++++ .../screen/dto/result/TreeResultDTO.java | 36 +++++++++++++ .../controller/screen/AgencyController.java | 40 ++++++++++++++ .../dao/screen/ScreenCustomerAgencyDao.java | 16 +++++- .../epmet/service/screen/AgencyService.java | 24 +++++++++ .../screen/impl/AgencyServiceImpl.java | 53 +++++++++++++++++++ .../mapper/screen/ScreenCustomerAgencyDao.xml | 25 +++++++++ 9 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/CompartmentFormDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/AgencyDistributionResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/CompartmentResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/TreeResultDTO.java diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/CompartmentFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/CompartmentFormDTO.java new file mode 100644 index 0000000000..3571ff7bb6 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/form/CompartmentFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.screen.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/8/18 2:14 下午 + */ +@Data +public class CompartmentFormDTO implements Serializable { + + private static final long serialVersionUID = -3354777434424878413L; + + public interface Compartment{} + + /** + * 机关ID + */ + @NotBlank(message = "机关ID不能为空",groups = {Compartment.class}) + private String agencyId; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/AgencyDistributionResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/AgencyDistributionResultDTO.java new file mode 100644 index 0000000000..da0a5a389e --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/AgencyDistributionResultDTO.java @@ -0,0 +1,40 @@ +package com.epmet.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/8/18 2:20 下午 + */ +@Data +public class AgencyDistributionResultDTO implements Serializable { + + private static final long serialVersionUID = -8404806508669824731L; + + /** + * 可能是gridId,可能是agencyId + */ + private String subId; + + /** + * 名称 + */ + private String subName; + + /** + * 坐标区域 + */ + private String subAreaMarks; + + /** + * 中心点位 + */ + private String subCenterMark; + + /** + * 组织:agency; 网格:grid ; 部门:dept + */ + private String type; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/CompartmentResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/CompartmentResultDTO.java new file mode 100644 index 0000000000..2e55aaae56 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/CompartmentResultDTO.java @@ -0,0 +1,36 @@ +package com.epmet.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/8/18 14:18 + */ +@Data +public class CompartmentResultDTO implements Serializable { + + private static final long serialVersionUID = 7963177476365327829L; + + /** + * 当前所选组织 + */ + private String agencyId; + + /** + * 当前所选组织名称 + */ + private String name; + + /** + * 当前所选组织的坐标区域 + */ + private String areaMarks; + + /** + * 子级用户分布 + */ + private List userDistribution; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/TreeResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/TreeResultDTO.java new file mode 100644 index 0000000000..72fd6a0dd9 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/TreeResultDTO.java @@ -0,0 +1,36 @@ +package com.epmet.screen.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/8/18 2:00 下午 + */ +@Data +public class TreeResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 显示名称 + */ + private String label; + + /** + * agencyId下拉框value + */ + private String value; + + @JsonIgnore + private String pids; + + /** + * 子目录 + */ + private List children; + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/screen/AgencyController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/screen/AgencyController.java index 73c93f89f5..410a8da660 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/screen/AgencyController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/controller/screen/AgencyController.java @@ -1,8 +1,21 @@ package com.epmet.controller.screen; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.screen.dto.form.CompartmentFormDTO; +import com.epmet.screen.dto.result.CompartmentResultDTO; +import com.epmet.screen.dto.result.TreeResultDTO; +import com.epmet.service.screen.AgencyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 组织相关api * @@ -12,4 +25,31 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/screen/agency") public class AgencyController { + + @Autowired + private AgencyService agencyService; + + /** + * @Description 1、组织机构树 + * @param tokenDto + * @author zxc + * @date 2020/8/18 2:04 下午 + */ + @PostMapping("tree") + public Result> tree(@LoginUser TokenDto tokenDto){ + return new Result>().ok(agencyService.tree(tokenDto)); + } + + /** + * @Description 2、组织区域查询 + * @param compartmentFormDTO + * @author zxc + * @date 2020/8/18 2:33 下午 + */ + @PostMapping("compartment") + public Result compartment(@RequestBody CompartmentFormDTO compartmentFormDTO){ + ValidatorUtils.validateEntity(compartmentFormDTO, CompartmentFormDTO.Compartment.class); + return new Result().ok(agencyService.compartment(compartmentFormDTO)); + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/screen/ScreenCustomerAgencyDao.java index 441e7e3ebc..be2e05d62b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/dao/screen/ScreenCustomerAgencyDao.java @@ -17,7 +17,11 @@ package com.epmet.dao.screen; +import com.epmet.screen.dto.result.TreeResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 组织机构信息 @@ -27,5 +31,15 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ScreenCustomerAgencyDao { - + + /** + * @Description 查询客户根组织ID + * @param customerId + * @author zxc + * @date 2020/8/18 2:44 下午 + */ + TreeResultDTO selectRootAgencyId(@Param("customerId")String customerId); + + List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids); + } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/AgencyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/AgencyService.java index 99f32bef09..58f429eca7 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/AgencyService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/AgencyService.java @@ -1,5 +1,12 @@ package com.epmet.service.screen; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.screen.dto.form.CompartmentFormDTO; +import com.epmet.screen.dto.result.CompartmentResultDTO; +import com.epmet.screen.dto.result.TreeResultDTO; + +import java.util.List; + /** * 组织相关api * @@ -7,4 +14,21 @@ package com.epmet.service.screen; * @date 2020/8/18 10:18 */ public interface AgencyService { + + /** + * @Description 1、组织机构树 + * @param tokenDto + * @author zxc + * @date 2020/8/18 2:04 下午 + */ + List tree(TokenDto tokenDto); + + /** + * @Description 2、组织区域查询 + * @param compartmentFormDTO + * @author zxc + * @date 2020/8/18 2:33 下午 + */ + CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO); + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/impl/AgencyServiceImpl.java index e6fb4de7cb..2e732bba83 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/impl/AgencyServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/service/screen/impl/AgencyServiceImpl.java @@ -1,6 +1,19 @@ package com.epmet.service.screen.impl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.screen.ScreenCustomerAgencyDao; +import com.epmet.dto.result.AgencySubResultDTO; +import com.epmet.dto.result.ProcessorListResultDTO; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.screen.dto.form.CompartmentFormDTO; +import com.epmet.screen.dto.result.CompartmentResultDTO; +import com.epmet.screen.dto.result.TreeResultDTO; import com.epmet.service.screen.AgencyService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; /** * 组织相关api @@ -9,4 +22,44 @@ import com.epmet.service.screen.AgencyService; * @date 2020/8/18 10:18 */ public class AgencyServiceImpl implements AgencyService { + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private ScreenCustomerAgencyDao screenCustomerAgencyDao; + + /** + * @Description 1、组织机构树 + * @param tokenDto + * @author zxc + * @date 2020/8/18 2:04 下午 + */ + @Override + public List tree(TokenDto tokenDto) { + // 1. 查询客户根组织ID + TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(tokenDto.getCustomerId()); + return this.getDepartmentList(("".equals(rootAgency.getPids()) ? "" : rootAgency.getPids() + ":") + rootAgency.getValue()); + } + + private List getDepartmentList(String subAgencyPids) { + List subAgencyList = screenCustomerAgencyDao.selectSubAgencyList(subAgencyPids); + if (subAgencyList.size() > NumConstant.ZERO) { + for (TreeResultDTO sub : subAgencyList) { + List subAgency = getDepartmentList(sub.getPids() + "," + sub.getValue()); + sub.setChildren(subAgency); + } + } + return subAgencyList; + } + + /** + * @Description 2、组织区域查询 + * @param compartmentFormDTO + * @author zxc + * @date 2020/8/18 2:33 下午 + */ + @Override + public CompartmentResultDTO compartment(CompartmentFormDTO compartmentFormDTO) { + return null; + } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml index 9fea45f98a..8b95789110 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml @@ -3,6 +3,31 @@ + + + \ No newline at end of file