+ * 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