From 588add80cc528f7bf7c804eeca64647fa1e51503 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 13 Apr 2021 10:29:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=8C=BA=E5=88=92=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E6=A1=86=E6=8E=A5=E5=8F=A3V1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/DataSourceConstant.java | 2 + .../dto/govorg/form/NextAreaCodeFormDTO.java | 31 ++++++++ .../govorg/result/NextAreaCodeResultDTO.java | 27 +++++++ .../data-aggregator-server/pom.xml | 28 +++++++ .../controller/GovOrgController.java | 17 +++++ .../dao/commonservice/AreaCodeDao.java | 39 ++++++++++ .../dao/govorg/CustomerAgencyDao.java | 2 + .../commonservice/AreaCodeService.java | 23 ++++++ .../impl/AreaCodeServiceImpl.java | 75 +++++++++++++++++++ .../service/govorg/GovOrgService.java | 3 + .../govorg/impl/GovOrgServiceImpl.java | 67 ++++++++++++++++- .../src/main/resources/bootstrap.yml | 6 +- .../mapper/commonservice/AreaCodeDao.xml | 57 ++++++++++++++ .../mapper/govorg/CustomerAgencyDao.xml | 9 +++ 14 files changed, 384 insertions(+), 2 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java index 70f42dc1e2..2dee5bb941 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java @@ -23,4 +23,6 @@ public interface DataSourceConstant { */ String EPMET_USER = "epmetuser"; + String EPMET_COMMON_SERVICE="commonservice"; + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java new file mode 100644 index 0000000000..ad3783df46 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:55 + */ +@Data +public class NextAreaCodeFormDTO implements Serializable { + private static final long serialVersionUID = -1974456701949979946L; + + @NotBlank(message = "areaCode不能为空") + private String areaCode; + + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + @NotBlank(message = "level不能为空") + private String level; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java new file mode 100644 index 0000000000..ef2db07581 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:56 + */ +@Data +public class NextAreaCodeResultDTO implements Serializable { + private static final long serialVersionUID = 9188265480821079966L; + + private String areaCode; + private String areaName; + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + private String level; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index c1e47d3b7e..a0fcbb3f6d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -143,6 +143,13 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + 0 192.168.1.130 @@ -210,6 +217,13 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + 0 192.168.1.130 @@ -277,6 +291,13 @@ epmet elink@833066 + + + + + epmet + elink@833066 + 0 r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com @@ -344,6 +365,13 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index aebb23a8b5..262aff38c3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -3,13 +3,19 @@ package com.epmet.dataaggre.controller; 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.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import com.epmet.dataaggre.service.govorg.GovOrgService; 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; + /** * @Author zxc * @DateTime 2020/12/25 上午9:45 @@ -34,4 +40,15 @@ public class GovOrgController { return new Result().ok(agencyGridList); } + /** + * @param formDTO + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:01 + **/ + @PostMapping("nextlevelareacodelist") + public Result> queryNextLevelAreaCodeList(@RequestBody NextAreaCodeFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(govOrgService.queryNextLevelAreaCodeList(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java new file mode 100644 index 0000000000..0de5235518 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java @@ -0,0 +1,39 @@ +/** + * 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.dataaggre.dao.commonservice; + +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-01-07 + */ +@Mapper +public interface AreaCodeDao { + + List selectCityList(String areaCode); + + List selectDistrictList(String areaCode); + + List selectStreetList(String areaCode); + + List selectCommunityList(String areaCode); +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index 445baf2477..fc33ce00bb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -47,4 +47,6 @@ public interface CustomerAgencyDao extends BaseDao { * @date 2020/12/25 下午4:55 */ String getAgencyIdByUserId(@Param("userId") String userId); + + List selectUsedAreaCodeList(@Param("parentAreaCode") String parentAreaCode); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java new file mode 100644 index 0000000000..c9ebb57d5e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java @@ -0,0 +1,23 @@ +package com.epmet.dataaggre.service.commonservice; + +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; + +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:45 + */ +public interface AreaCodeService { + /** + * @return java.util.List + * @param formDTO + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:02 + **/ + List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java new file mode 100644 index 0000000000..ed6ce54264 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java @@ -0,0 +1,75 @@ +package com.epmet.dataaggre.service.commonservice.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.commonservice.AreaCodeDao; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import com.epmet.dataaggre.service.commonservice.AreaCodeService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:46 + */ +@DataSource(DataSourceConstant.EPMET_COMMON_SERVICE) +@Slf4j +@Service +public class AreaCodeServiceImpl implements AreaCodeService { + + @Autowired + private AreaCodeDao areaCodeDao; + + /** + * @param formDTO + * @return java.util.List + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:02 + **/ + @Override + public List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) { + List list = new ArrayList<>(); + NextAreaCodeResultDTO other = new NextAreaCodeResultDTO(); + other.setAreaCode("other"); + other.setAreaName("其它"); + switch (formDTO.getLevel()) { + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + case "province": + list = areaCodeDao.selectCityList(formDTO.getAreaCode()); + other.setLevel("city"); + break; + case "city": + list = areaCodeDao.selectDistrictList(formDTO.getAreaCode()); + other.setLevel("district"); + break; + case "district": + list = areaCodeDao.selectStreetList(formDTO.getAreaCode()); + other.setLevel("street"); + break; + case "street": + list = areaCodeDao.selectCommunityList(formDTO.getAreaCode()); + other.setLevel("community"); + break; + default: + } + if (CollectionUtils.isNotEmpty(list)) { + list.add(other); + } + return list; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index c0b7fff4bd..7d9fc8f339 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,8 +1,10 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import java.util.List; @@ -42,4 +44,5 @@ public interface GovOrgService { */ String getAgencyIdByUserId(String userId); + List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 7b3314f5dc..a076f1b73d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg.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; @@ -8,17 +9,23 @@ import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerGridDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.service.commonservice.AreaCodeService; import com.epmet.dataaggre.service.govorg.GovOrgService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; /** @@ -37,7 +44,8 @@ public class GovOrgServiceImpl implements GovOrgService { private CustomerStaffAgencyDao customerStaffAgencyDao; @Autowired private CustomerGridDao customerGridDao; - + @Autowired + private AreaCodeService areaCodeService; /** * @param staffId @@ -120,5 +128,62 @@ public class GovOrgServiceImpl implements GovOrgService { return customerAgencyDao.getAgencyIdByUserId(userId); } + @Override + public List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) { + //全部下级 + List allList = areaCodeService.queryNextLevelAreaCodeList(formDTO); + if (CollectionUtils.isNotEmpty(allList)) { + //已经被使用过的areaCode + List usedAreaCodeList = customerAgencyDao.selectUsedAreaCodeList(formDTO.getAreaCode()); + //已经被使用的移除不显示 + Iterator iterator = allList.iterator(); + while (iterator.hasNext()) { + NextAreaCodeResultDTO next = iterator.next(); + for (String usedAreaCode : usedAreaCodeList) { + if (next.getAreaCode().equals(usedAreaCode)) { + iterator.remove(); + } + } + //todo 移除掉 子客户下使用的 + } + } + return allList; + } + + public static void main(String[] args) { + List allList = new ArrayList<>(); + NextAreaCodeResultDTO m1 = new NextAreaCodeResultDTO(); + m1.setAreaCode("1"); + m1.setAreaName("a"); + allList.add(m1); + + NextAreaCodeResultDTO m2 = new NextAreaCodeResultDTO(); + m2.setAreaCode("2"); + m2.setAreaName("b"); + allList.add(m2); + + + NextAreaCodeResultDTO m3 = new NextAreaCodeResultDTO(); + m3.setAreaCode("3"); + m3.setAreaName("c"); + allList.add(m3); + + List stringList = new ArrayList<>(); + stringList.add("1"); + stringList.add("2"); + + Iterator iterator = allList.iterator(); + while (iterator.hasNext()) { + NextAreaCodeResultDTO next = iterator.next(); + for (String usedAreaCode : stringList) { + if (next.getAreaCode().equals(usedAreaCode)) { + iterator.remove(); + } + } + + } + System.out.println(JSON.toJSONString(allList, true)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml index 50e01db7ee..86be3fc91c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml @@ -119,7 +119,11 @@ dynamic: url: @datasource.druid.epmetuser.url@ username: @datasource.druid.epmetuser.username@ password: @datasource.druid.epmetuser.password@ - + commonservice: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.commonservice.url@ + username: @datasource.druid.commonservice.username@ + password: @datasource.druid.commonservice.password@ feign: hystrix: enabled: true diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml new file mode 100644 index 0000000000..ae56a91b6a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index aece51edb3..f27f969e31 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -22,4 +22,13 @@ SELECT AGENCY_ID FROM customer_staff_agency WHERE DEL_FLAG = 0 AND USER_ID = #{userId} + \ No newline at end of file