From c105e98d55b51059e7c208dff48aa0e527e1b2eb Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 4 Feb 2021 22:00:27 +0800 Subject: [PATCH] /epmet/ext/staff/permissionv2 zancun --- .../tools/constant/ServiceConstant.java | 5 ++ .../epmet/commons/tools/utils/AgencyNode.java | 26 +++++++ .../commons/tools/utils/AgencyTreeUtils.java | 73 +++++++++++++++++++ .../dto/result/plugins/AgencyNodeDTO.java | 50 +++++++++++++ .../epmet/dto/result/plugins/DeptNodeDTO.java | 36 +++++++++ .../epmet/dto/result/plugins/GridNodeDTO.java | 36 +++++++++ .../feign/DataReportOpenFeignClient.java | 27 +++++++ .../DataReportOpenFeignClientFallBack.java | 21 ++++++ .../controller/screen/AgencyController.java | 16 ++++ .../screen/ScreenCustomerAgencyDao.java | 30 ++++++++ .../evaluationindex/screen/AgencyService.java | 8 ++ .../screen/impl/AgencyServiceImpl.java | 29 ++++++++ .../mapper/screen/ScreenCustomerAgencyDao.xml | 46 ++++++++++++ .../migration/V0.0.8__add_plugins_table.sql | 2 +- .../com/epmet/dto/result/AgencyNodeDTO.java | 7 ++ .../com/epmet/dto/result/DeptNodeDTO.java | 7 ++ .../com/epmet/dto/result/GridNodeDTO.java | 7 ++ .../epmet-ext/epmet-ext-server/pom.xml | 6 ++ .../epmet/service/impl/OpenUpServiceImpl.java | 15 +++- .../java/com/epmet/dao/CustomerAgencyDao.java | 8 ++ .../resources/mapper/CustomerAgencyDao.xml | 26 ++++--- 21 files changed, 466 insertions(+), 15 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/AgencyNodeDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/DeptNodeDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/GridNodeDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java index b66c3c33d2..e104c83e54 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java @@ -119,6 +119,11 @@ public interface ServiceConstant { */ String DATA_STATISTICAL_SERVER = "data-statistical-server"; + /** + * 数据统计结果查询 + */ + String DATA_REPORT_SERVER="data-report-server"; + /** * 微信第三方平台 */ diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java new file mode 100644 index 0000000000..e6346d7e50 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyNode.java @@ -0,0 +1,26 @@ +package com.epmet.commons.tools.utils; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/2/4 20:49 + */ +@Data +public class AgencyNode implements Serializable { + + private String areaCode; + + private String parentAreaCode; + + /** + * 子节点列表 + */ + private List subAgencyList = new ArrayList<>(); +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java new file mode 100644 index 0000000000..80ad231f47 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/AgencyTreeUtils.java @@ -0,0 +1,73 @@ +package com.epmet.commons.tools.utils; + + +import com.epmet.commons.tools.validator.AssertUtils; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/2/4 20:49 + */ +public class AgencyTreeUtils { + + /** + * 根据pid,构建树节点 + */ + public static List build(List agencyNodes, String parentAreaCode) { + //pid不能为空 + AssertUtils.isNull(parentAreaCode, "parentAreaCode"); + + List treeList = new ArrayList<>(); + for (T agencyNode : agencyNodes) { + if (parentAreaCode.equals(agencyNode.getParentAreaCode())) { + treeList.add(findChildren(agencyNodes, agencyNode)); + } + } + + return treeList; + } + + /** + * 查找子节点 + */ + private static T findChildren(List agencyNodes, T rootNode) { + for (T agencyNode : agencyNodes) { + if (rootNode.getAreaCode().equals(agencyNode.getParentAreaCode())) { + rootNode.getSubAgencyList().add(findChildren(agencyNodes, agencyNode)); + } + } + return rootNode; + } + + /** + * 构建树节点 + */ + public static List build(List agencyNodes) { + List result = new ArrayList<>(); + + //list转map + Map nodeMap = new LinkedHashMap<>(agencyNodes.size()); + for (T agencyNode : agencyNodes) { + nodeMap.put(agencyNode.getAreaCode(), agencyNode); + } + + for (T node : nodeMap.values()) { + T parent = nodeMap.get(node.getParentAreaCode()); + if (parent != null && !(node.getAreaCode().equals(parent.getAreaCode()))) { + parent.getSubAgencyList().add(node); + continue; + } + + result.add(node); + } + + return result; + } + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/AgencyNodeDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/AgencyNodeDTO.java new file mode 100644 index 0000000000..2890092b80 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/AgencyNodeDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dto.result.plugins; + +import com.epmet.commons.tools.utils.AgencyNode; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * 008、当前用户的数据权限(多客户版本) 返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2021/2/3 20:33 + */ +@Data +public class AgencyNodeDTO extends AgencyNode implements Serializable { + + private static final long serialVersionUID = -3745920378557792529L; + /** + * 直属机关Id + * */ + private String agencyId; + + /** + * 直属机关名称 + * */ + private String agencyName; + + /** + * 机关级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province) + * */ + private String level; + + /** + * 当前agencyId所属的客户id add02.03 + * */ + private String customerId; + + /** + * 直属机关直属网格列表 + * */ + private List gridList = new ArrayList<>(); + + /** + * 直属机关直属部门列表 + * */ + private List departmentList = new ArrayList<>(); + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/DeptNodeDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/DeptNodeDTO.java new file mode 100644 index 0000000000..ed105f71c9 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/DeptNodeDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.result.plugins; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 部门信息 + * @ClassName ExtDeptResultDTO + * @Auth wangc + * @Date 2020-08-17 17:16 + */ +@Data +public class DeptNodeDTO implements Serializable { + private static final long serialVersionUID = 1792371558965832432L; + + /** + * 部门Id + * */ + private String deptId; + + /** + * 部门名称 + * */ + private String deptName; + + /** + * 当前deptId所属的customerId add02.03 + * */ + private String customerId; + + /** + * 当前deptId对应的地区编码 add02.03 + * */ + private String areaCode; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/GridNodeDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/GridNodeDTO.java new file mode 100644 index 0000000000..9199f6fb91 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/plugins/GridNodeDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.result.plugins; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 008、当前用户的数据权限(多客户版本) 返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2021/2/3 20:33 + */ +@Data +public class GridNodeDTO implements Serializable { + private static final long serialVersionUID = -4531574240525562587L; + + /** + * 网格Id + * */ + private String gridId; + + /** + * 网格名称 + * */ + private String gridName; + + /** + * 当前gridId所属的客户id add02.03 + * */ + private String customerId; + + /** + * 当前gridId对应的地区编码 add02.03 + * */ + private String areaCode; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java new file mode 100644 index 0000000000..d3466126a4 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java @@ -0,0 +1,27 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.result.plugins.AgencyNodeDTO; +import com.epmet.feign.impl.DataReportOpenFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * 本服务对外开放的API,其他服务通过引用此client调用该服务 + * + * @author yinzuomei@elink-cn.com + * @date 2021/2/3 22:05 + */ +// @FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallback = DataReportOpenFeignClientFallBack.class,url = "localhost:8109") +@FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallback = DataReportOpenFeignClientFallBack.class) +public interface DataReportOpenFeignClient { + /** + * @param agencyId + * @description 查询当前组织及下级组织树 + * @Date 2021/2/3 22:05 + **/ + @GetMapping("/data/report/screen/agency/querystaffagencytree/{agencyId}") + Result queryStaffAgencyTree(@PathVariable("agencyId") String agencyId); +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java new file mode 100644 index 0000000000..64a9f66d0f --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java @@ -0,0 +1,21 @@ +package com.epmet.feign.impl; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.result.plugins.AgencyNodeDTO; +import com.epmet.feign.DataReportOpenFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class DataReportOpenFeignClientFallBack implements DataReportOpenFeignClient { + /** + * @param agencyId + * @description 查询当前组织及下级组织树 + * @Date 2021/2/3 22:05 + **/ + @Override + public Result queryStaffAgencyTree(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.DATA_REPORT_SERVER, "queryStaffAgencyTree",agencyId); + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java index 53646ee6dc..9f36b5c21b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/AgencyController.java @@ -5,11 +5,13 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.screen.AgencyService; import com.epmet.dto.form.AreaCodeDictFormDTO; import com.epmet.dto.result.AreaCodeDictResultDTO; +import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.evaluationindex.screen.dto.form.CompartmentByBizTypeFormDTO; import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO; import com.epmet.evaluationindex.screen.dto.form.TreeByTypeFormDTO; import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO; import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -81,4 +83,18 @@ public class AgencyController { return new Result>().ok(agencyService.areaCodeDictTree(formDTO)); } + /** + * @param agencyId + * @author yinzuomei + * @description 查询当前组织及下级组织树 + * @Date 2021/2/3 22:19 + **/ + @GetMapping("querystaffagencytree/{agencyId}") + public Result queryStaffAgencyTree(@PathVariable("agencyId") String agencyId) { + //todo 单独校验下此方法 + if (StringUtils.isNotBlank(agencyId)) { + return new Result().ok(agencyService.queryStaffAgencyTree(agencyId)); + } + return new Result<>(); + } } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index 60c3f1b3cd..af4b0b7af2 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -18,6 +18,9 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.ScreenCustomerAgencyDTO; +import com.epmet.dto.result.plugins.AgencyNodeDTO; +import com.epmet.dto.result.plugins.DeptNodeDTO; +import com.epmet.dto.result.plugins.GridNodeDTO; import com.epmet.evaluationindex.screen.dto.result.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -120,4 +123,31 @@ public interface ScreenCustomerAgencyDao { * @description 查询组织基本信息 **/ ScreenCustomerAgencyDTO selectByAgencyId(@Param("agencyId") String agencyId); + + /** + * @param areaCode + * @author yinzuomei + * @description 根据areaCode查询组织机构 + * @Date 2021/2/4 21:51 + **/ + List queryStaffAgencyTree(@Param("areaCode")String areaCode); + + /** + * @param areaCode + * @param agencyId + * @author yinzuomei + * @description 查找组织下的部门 + * @Date 2021/2/4 21:51 + **/ + List selectDeptList(@Param("areaCode") String areaCode,@Param("agencyId") String agencyId); + + /** + * @param areaCode + * @param agencyId + * @author yinzuomei + * @description 查找组织下的网格 + * @Date 2021/2/4 21:52 + **/ + List selectGridList(@Param("areaCode") String areaCode,@Param("agencyId") String agencyId); + } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java index 144e12fe1a..cd71a317f2 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/AgencyService.java @@ -2,6 +2,7 @@ package com.epmet.datareport.service.evaluationindex.screen; import com.epmet.dto.form.AreaCodeDictFormDTO; import com.epmet.dto.result.AreaCodeDictResultDTO; +import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.evaluationindex.screen.dto.form.CompartmentByBizTypeFormDTO; import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO; import com.epmet.evaluationindex.screen.dto.form.TreeByTypeFormDTO; @@ -47,4 +48,11 @@ public interface AgencyService { */ List areaCodeDictTree(AreaCodeDictFormDTO formDTO); + /** + * @param agencyId + * @author yinzuomei + * @description 查询当前组织及下级组织树 + * @Date 2021/2/3 22:19 + **/ + AgencyNodeDTO queryStaffAgencyTree(String agencyId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java index 5c720eee42..73090dd8c9 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/AgencyServiceImpl.java @@ -1,8 +1,10 @@ package com.epmet.datareport.service.evaluationindex.screen.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.AgencyTreeUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerAgencyDao; @@ -10,6 +12,8 @@ import com.epmet.datareport.dao.evaluationindex.screen.ScreenCustomerGridDao; import com.epmet.datareport.service.evaluationindex.screen.AgencyService; import com.epmet.dto.form.AreaCodeDictFormDTO; import com.epmet.dto.result.AreaCodeDictResultDTO; +import com.epmet.dto.result.ScreenCustomerAgencyDTO; +import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.evaluationindex.screen.constant.ScreenConstant; import com.epmet.evaluationindex.screen.dto.form.CompartmentByBizTypeFormDTO; import com.epmet.evaluationindex.screen.dto.form.CompartmentFormDTO; @@ -18,6 +22,8 @@ import com.epmet.evaluationindex.screen.dto.result.AgencyDistributionResultDTO; import com.epmet.evaluationindex.screen.dto.result.CompartmentResultDTO; import com.epmet.evaluationindex.screen.dto.result.TreeResultDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.exceptions.TooManyResultsException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,6 +38,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/8/18 10:18 */ +@Slf4j @Service @DataSource(DataSourceConstant.EVALUATION_INDEX) public class AgencyServiceImpl implements AgencyService { @@ -248,4 +255,26 @@ public class AgencyServiceImpl implements AgencyService { } return new ArrayList<>(); } + + /** + * @param agencyId + * @author yinzuomei + * @description 查询当前组织及下级组织树 + * @Date 2021/2/3 22:19 + **/ + @Override + public AgencyNodeDTO queryStaffAgencyTree(String agencyId) { + ScreenCustomerAgencyDTO agencyDTO = screenCustomerAgencyDao.selectByAgencyId(agencyId); + if (null == agencyDTO || StringUtils.isBlank(agencyDTO.getAreaCode())) { + throw new RenException(String.format("当前agencyId%s所属的area_code为空", agencyId)); + } + List list = screenCustomerAgencyDao.queryStaffAgencyTree(agencyDTO.getAreaCode()); + for (AgencyNodeDTO agencyNodeDTO : list) { + agencyNodeDTO.setGridList(screenCustomerAgencyDao.selectGridList(agencyNodeDTO.getAreaCode(), agencyNodeDTO.getAgencyId())); + agencyNodeDTO.setDepartmentList(screenCustomerAgencyDao.selectDeptList(agencyNodeDTO.getAreaCode(), agencyNodeDTO.getAgencyId())); + } + List treeList = AgencyTreeUtils.build(list); + log.info(JSON.toJSONString(treeList)); + return treeList.get(NumConstant.ZERO); + } } 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 678d8fc875..f1ac298f46 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 @@ -225,4 +225,50 @@ del_flag = 0 AND agency_id = #{agencyId} + + + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.8__add_plugins_table.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.8__add_plugins_table.sql index e8d9f98af2..87b3239315 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.8__add_plugins_table.sql +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.8__add_plugins_table.sql @@ -64,7 +64,7 @@ CREATE TABLE `screen_list_info` ( PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='146:一张清单列表'; --- 2、工作日志新增两张表 +-- 2、工作日志新增3张表 drop table if EXISTS screen_work_record_grid_monthly; CREATE TABLE `screen_work_record_grid_monthly` ( `ID` varchar(64) NOT NULL COMMENT 'ID 主键', diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/AgencyNodeDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/AgencyNodeDTO.java index b8dd4b6dce..54ad61602e 100644 --- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/AgencyNodeDTO.java +++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/AgencyNodeDTO.java @@ -50,4 +50,11 @@ public class AgencyNodeDTO implements Serializable { * 当前agencyId所属的客户id add02.03 * */ private String customerId; + + /** + * 当前agencyId对应的地区编码 add02.03 + * */ + private String areaCode; + + private String parentCode; } diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/DeptNodeDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/DeptNodeDTO.java index 4b882d3637..348a24a80f 100644 --- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/DeptNodeDTO.java +++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/DeptNodeDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -28,4 +29,10 @@ public class DeptNodeDTO implements Serializable { * 当前deptId所属的customerId add02.03 * */ private String customerId; + + /** + * 当前deptId对应的地区编码 add02.03 + * */ + @JsonIgnore + private String areaCode; } diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/GridNodeDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/GridNodeDTO.java index 7eddb509bf..adcc4628e0 100644 --- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/GridNodeDTO.java +++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/GridNodeDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -28,4 +29,10 @@ public class GridNodeDTO implements Serializable { * 当前gridId所属的客户id add02.03 * */ private String customerId; + + /** + * 当前gridId对应的地区编码 add02.03 + * */ + @JsonIgnore + private String areaCode; } diff --git a/epmet-module/epmet-ext/epmet-ext-server/pom.xml b/epmet-module/epmet-ext/epmet-ext-server/pom.xml index 685a0e6a33..f33a428e27 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/pom.xml +++ b/epmet-module/epmet-ext/epmet-ext-server/pom.xml @@ -150,6 +150,12 @@ 2.0.0 compile + + com.epmet + data-report-client + 2.0.0 + compile + diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenUpServiceImpl.java b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenUpServiceImpl.java index 29ace2808a..60b5654937 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenUpServiceImpl.java +++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenUpServiceImpl.java @@ -8,6 +8,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.constant.ModuleConstant; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.feign.DataReportOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OperCrmOpenFeignClient; @@ -37,7 +38,8 @@ public class OpenUpServiceImpl implements OpenUpService { private GovOrgOpenFeignClient govOrgOpenFeignClient; @Autowired private OperCrmOpenFeignClient operCrmOpenFeignClient; - + @Autowired + private DataReportOpenFeignClient dataReportOpenFeignClient; /** * @Description 网格工作人员 被禁用的、未激活的不显示 * @param formDTO @@ -186,12 +188,19 @@ public class OpenUpServiceImpl implements OpenUpService { } //如果有子客户,根据area_code构造权限树 if (!CollectionUtils.isEmpty(crmResult.getData())) { - //todo + Result dataStatResult=dataReportOpenFeignClient.queryStaffAgencyTree(formDTO.getAgencyId()); + if (!dataStatResult.success() && null == dataStatResult) { + throw new RenException("调用data-stats服务的XXX接口异常"+dataStatResult.getInternalMsg()); + } + StaffPermissionResultDTO resultDTO = new StaffPermissionResultDTO(); + resultDTO.setCustomerIds(Arrays.asList()); + resultDTO.setAgencyTree(ConvertUtils.sourceToTarget(dataStatResult.getData(), AgencyNodeDTO.class)); + return resultDTO; } //不包含子客户走原来的接口 Result permissionRes = govOrgOpenFeignClient.staffPermissionExt(formDTO.getStaffId()); if (!permissionRes.success() && null == permissionRes) { - throw new RenException("/epmet/ext/staff/permission接口调用失败"); + throw new RenException("调用/epmet/ext/staff/permission接口异常"+permissionRes.getInternalMsg()); } StaffPermissionResultDTO resultDTO = new StaffPermissionResultDTO(); resultDTO.setCustomerIds(Arrays.asList()); 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 c1478df01d..c304943b30 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 @@ -168,6 +168,14 @@ public interface CustomerAgencyDao extends BaseDao { **/ List selectDeptList(@Param("agencyId") String agencyId); + /** + * @param agencyId + * @author yinzuomei + * @description 根据组织查询网格列表 + * @Date 2021/2/4 21:54 + **/ + List selectGridList(@Param("agencyId") String agencyId); + /** * @param staffId * @return 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 5286846214..e7f2621649 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 @@ -209,7 +209,7 @@ - + @@ -243,14 +243,9 @@ agency.ID AS agencyId, agency.ORGANIZATION_NAME AS agencyName, agency.LEVEL AS level, - agency.CUSTOMER_ID as customerId, - grid.ID AS gridId, - grid.GRID_NAME AS gridName, - grid.CUSTOMER_ID as customerId + agency.CUSTOMER_ID as customerId FROM CUSTOMER_AGENCY agency - LEFT JOIN CUSTOMER_GRID grid ON agency.ID = grid.PID - AND grid.DEL_FLAG = '0' WHERE agency.DEL_FLAG = '0' AND agency.ID = #{agencyId} @@ -268,17 +263,26 @@ AND AGENCY_ID = #{agencyId} + +