diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java
index 920d48f56b..6726f0547a 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/AreaCodeDTO.java
@@ -37,7 +37,7 @@ public class AreaCodeDTO implements Serializable {
/**
* 主键
*/
- private Integer id;
+ private String id;
/**
* 省份code
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java
new file mode 100644
index 0000000000..f4ca97d775
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDetailFormDTO.java
@@ -0,0 +1,13 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+@Data
+public class AreaCodeDetailFormDTO {
+
+ private String areaCode;
+ /**
+ * 省级:province; 市级: city; 区县级: district ;乡(镇、街道)级:street ;社区级:community
+ */
+ private String level;
+}
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java
new file mode 100644
index 0000000000..80bf551608
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/CustomerTreeDTO.java
@@ -0,0 +1,76 @@
+/**
+ * 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;
+
+
+/**
+ * 客户关系表(01.14 add)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-02-03
+ */
+@Data
+public class CustomerTreeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+
+ /**
+ * 当前客户级别(社区级:community,
+乡(镇、街道)级:street,
+区县级: district,
+市级: city
+省级:province)
+ */
+ private String level;
+
+ /**
+ * 当前客户的地区编码,实际就是根组织的area_code
+ */
+ private String areaCode;
+
+ /**
+ * 当前客户的地区名称
+ */
+ private String areaName;
+
+ /**
+ * 当前客户的父节点地区名称
+ */
+ private String parentCode;
+
+ /**
+ * 客户名称
+ */
+ private String customerName;
+
+ /**
+ * 下一级
+ */
+ private List children;
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java
index 4214e77cf8..43766990ba 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java
@@ -98,6 +98,28 @@ public interface EpmetCommonServiceOpenFeignClient {
@PostMapping("commonservice/workday/workminutes")
Result> workMinutes(@RequestBody WorkMinuteFormDTO param);
+ /**
+ * 行政地区编码查询
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/6 15:07
+ */
+ @PostMapping("commonservice/areacode/areacodedetail")
+ Result areaCodeDetail(@RequestBody AreaCodeDetailFormDTO formDTO);
+
+ /**
+ * 行政地区编码树查询
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/6 15:07
+ */
+ @PostMapping("commonservice/areacode/areacodetree")
+ Result> areaCodeTree(@RequestBody CustomerTreeDTO formDTO);
+
/**
* @Description 行政地区编码查询
* @Param formDTO
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java
index 21f7fe531a..05b73bba65 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java
@@ -79,6 +79,16 @@ public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonSer
return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "workMinutes", param);
}
+ @Override
+ public Result areaCodeDetail(AreaCodeDetailFormDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeDetail", formDTO);
+ }
+
+ @Override
+ public Result> areaCodeTree(CustomerTreeDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeTree", formDTO);
+ }
+
@Override
public Result> areaCodeDictTree(AreaCodeDictFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "areaCodeDictTree", formDTO);
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java
index 7bf4e537f8..ca212e908f 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/AreaCodeController.java
@@ -25,12 +25,10 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.AreaCodeDTO;
-import com.epmet.dto.form.AddAreaCodeDictFormDTO;
-import com.epmet.dto.form.AddAreaCodeFormDTO;
-import com.epmet.dto.form.AreaCodeDictFormDTO;
-import com.epmet.dto.form.AreaCodeFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.dto.result.AreaCodeResultDTO;
+import com.epmet.dto.result.CustomerTreeDTO;
import com.epmet.service.AreaCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -133,4 +131,26 @@ public class AreaCodeController {
public Result> nextArea(@RequestBody AreaCodeFormDTO formDTO){
return new Result>().ok(areaCodeService.nextArea(formDTO));
}
+
+ /**
+ * @Description 行政地区编码查询
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/1/7 下午1:41
+ */
+ @PostMapping("areacodedetail")
+ public Result areaCodeDetail(@RequestBody AreaCodeDetailFormDTO formDTO){
+ return new Result().ok(areaCodeService.getAreaCodeDetail(formDTO));
+ }
+
+ /**
+ * @Description 行政地区编码查询
+ * @Param formDTO
+ * @author zxc
+ * @date 2021/1/7 下午1:41
+ */
+ @PostMapping("areacodetree")
+ public Result> areaCodeTree(@RequestBody CustomerTreeDTO formDTO){
+ return new Result>().ok(areaCodeService.getAreaCodeTree(formDTO));
+ }
}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java
index bfe5c8139e..ab101aba89 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeDao.java
@@ -37,19 +37,25 @@ public interface AreaCodeDao extends BaseDao {
List selectAllArea();
- AreaCodeDTO selectByCountyCode(String countyCode);
+ AreaCodeDTO selectByCountyCode(@Param("countyCode") String countyCode);
- AreaCodeDTO selectByCityCode(String cityCode);
+ AreaCodeDTO selectByCityCode(@Param("cityCode") String cityCode);
+
+ AreaCodeDTO selectByProvinceCode(@Param("provinceCode") String provinceCode);
+
+ AreaCodeResultDTO selectByStreetCode(@Param("streetCode") String streetCode);
+
+ AreaCodeResultDTO selectByCommunityCode(@Param("communityCode") String communityCode);
AreaCodeDTO selectMaxCounty(String cityCode);
List selectProvince();
- List selectCity(@Param("pCode")String pCode);
+ List selectCity(@Param("pCode") String pCode);
- List selectDistrict(@Param("pCode")String pCode);
+ List selectDistrict(@Param("pCode") String pCode);
- List selectStreet(@Param("pCode")String pCode);
+ List selectStreet(@Param("pCode") String pCode);
- List selectCommunity(@Param("pCode")String pCode);
+ List selectCommunity(@Param("pCode") String pCode);
}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java
index e452332fea..6467bb82f0 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/AreaCodeService.java
@@ -20,12 +20,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.AreaCodeDTO;
-import com.epmet.dto.form.AddAreaCodeDictFormDTO;
-import com.epmet.dto.form.AddAreaCodeFormDTO;
-import com.epmet.dto.form.AreaCodeDictFormDTO;
-import com.epmet.dto.form.AreaCodeFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.dto.result.AreaCodeResultDTO;
+import com.epmet.dto.result.CustomerTreeDTO;
import com.epmet.entity.AreaCodeEntity;
import java.util.List;
@@ -127,4 +125,8 @@ public interface AreaCodeService extends BaseService {
String addAreaCode(AddAreaCodeFormDTO formDTO);
List nextArea(AreaCodeFormDTO formDTO);
+
+ AreaCodeResultDTO getAreaCodeDetail(AreaCodeDetailFormDTO formDTO);
+
+ List getAreaCodeTree(CustomerTreeDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java
index 4d873b333e..b0f519a3ac 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java
@@ -36,12 +36,10 @@ import com.epmet.dao.AreaCodeChildDao;
import com.epmet.dao.AreaCodeDao;
import com.epmet.dto.AreaCodeChildDTO;
import com.epmet.dto.AreaCodeDTO;
-import com.epmet.dto.form.AddAreaCodeDictFormDTO;
-import com.epmet.dto.form.AddAreaCodeFormDTO;
-import com.epmet.dto.form.AreaCodeDictFormDTO;
-import com.epmet.dto.form.AreaCodeFormDTO;
+import com.epmet.dto.form.*;
import com.epmet.dto.result.AreaCodeDictResultDTO;
import com.epmet.dto.result.AreaCodeResultDTO;
+import com.epmet.dto.result.CustomerTreeDTO;
import com.epmet.entity.AreaCodeEntity;
import com.epmet.redis.AreaCodeRedis;
import com.epmet.service.AreaCodeChildService;
@@ -72,6 +70,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl page(Map params) {
IPage page = baseDao.selectPage(
@@ -88,8 +87,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl getWrapper(Map params){
- String id = (String)params.get(FieldConstant.ID_HUMP);
+ private QueryWrapper getWrapper(Map params) {
+ String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
@@ -125,7 +124,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaCodeDictTree(AreaCodeDictFormDTO formDTO) {
List tree = new ArrayList<>();
String s = areaCodeRedis.get(AreaCodeConstant.SCREEN_TREE);
- if (StringUtils.isNotBlank(s)){
- tree = JSON.parseArray(s,AreaCodeDictResultDTO.class);
- }else {
+ if (StringUtils.isNotBlank(s)) {
+ tree = JSON.parseArray(s, AreaCodeDictResultDTO.class);
+ } else {
List areaCodeDictResultDTOS = disposeTree(formDTO);
- areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE,areaCodeDictResultDTOS);
+ areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE, areaCodeDictResultDTOS);
tree = areaCodeDictResultDTOS;
}
- if (StringUtils.isBlank(formDTO.getRootAreaCode())){
+ if (StringUtils.isBlank(formDTO.getRootAreaCode())) {
return tree;
}
List treeByRootAreaCode = getTreeByRootAreaCode(tree, formDTO.getRootAreaCode());
@@ -149,12 +148,12 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeTree(AreaCodeDictFormDTO formDTO){
+ public List disposeTree(AreaCodeDictFormDTO formDTO) {
// 查询所有省市区
List areaCodeDTOS = baseDao.selectAllArea();
// 查询所有街道、社区
@@ -173,8 +172,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl {
- if (dto.getCode().equals(pCode)){
+ groupByPCode.forEach((pCode, v) -> {
+ if (dto.getCode().equals(pCode)) {
List fiveResult = new ArrayList<>();
v.forEach(five -> {
AreaCodeDictResultDTO fiveDto = new AreaCodeDictResultDTO();
@@ -189,7 +188,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl fourSort = new ArrayList<>();
- if (!CollectionUtils.isEmpty(fourResult)){
+ if (!CollectionUtils.isEmpty(fourResult)) {
fourSort = fourResult.stream().sorted(Comparator.comparing(AreaCodeDictResultDTO::getCode)).collect(Collectors.toList());
}
@@ -209,7 +208,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl fourOnceResult = new ArrayList<>();
finalFourSort.forEach(four -> {
- if (dto.getCode().equals(four.getParentCode())){
+ if (dto.getCode().equals(four.getParentCode())) {
fourOnceResult.add(four);
}
});
@@ -220,13 +219,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl {
+ groupByProvince.forEach((p, v) -> {
AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO();
dto.setCode(p);
dto.setName(v.get(NumConstant.ZERO).getProvinceName());
List cityOnceResult = new ArrayList<>();
cityResult.forEach(c -> {
- if (dto.getCode().equals(c.getParentCode())){
+ if (dto.getCode().equals(c.getParentCode())) {
cityOnceResult.add(c);
}
});
@@ -239,54 +238,51 @@ public class AreaCodeServiceImpl extends BaseServiceImpl
+ *
* 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样
- * ==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==
- * 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样
- *
- *
- *
+ * ==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==
+ * 暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样==暂时这样
* @Param tree
* @Param rootAreaCode
* @author zxc
* @date 2021/1/8 上午10:02
*/
- public List getTreeByRootAreaCode(List tree , String rootAreaCode){
+ public List getTreeByRootAreaCode(List tree, String rootAreaCode) {
List result = new ArrayList<>();
- if (!CollectionUtils.isEmpty(tree)){
+ if (!CollectionUtils.isEmpty(tree)) {
// 省级获取
for (AreaCodeDictResultDTO dto : tree) {
- if (rootAreaCode.equals(dto.getCode())){
+ if (rootAreaCode.equals(dto.getCode())) {
result.add(dto);
return result;
}
// 市级获取
- if (!CollectionUtils.isEmpty(dto.getChildren())){
+ if (!CollectionUtils.isEmpty(dto.getChildren())) {
for (AreaCodeDictResultDTO child : dto.getChildren()) {
- if (rootAreaCode.equals(child.getCode())){
+ if (rootAreaCode.equals(child.getCode())) {
result.add(child);
return result;
}
// 区级获取
- if (!CollectionUtils.isEmpty(child.getChildren())){
+ if (!CollectionUtils.isEmpty(child.getChildren())) {
for (AreaCodeDictResultDTO threeChild : child.getChildren()) {
- if (rootAreaCode.equals(threeChild.getCode())){
+ if (rootAreaCode.equals(threeChild.getCode())) {
result.add(threeChild);
return result;
}
// 街道获取
- if (!CollectionUtils.isEmpty(threeChild.getChildren())){
+ if (!CollectionUtils.isEmpty(threeChild.getChildren())) {
for (AreaCodeDictResultDTO fourChild : threeChild.getChildren()) {
- if (rootAreaCode.equals(fourChild.getCode())){
+ if (rootAreaCode.equals(fourChild.getCode())) {
result.add(fourChild);
return result;
}
// 社区获取
- if (!CollectionUtils.isEmpty(fourChild.getChildren())){
+ if (!CollectionUtils.isEmpty(fourChild.getChildren())) {
for (AreaCodeDictResultDTO fiveChild : fourChild.getChildren()) {
- if (rootAreaCode.equals(fiveChild.getCode())){
+ if (rootAreaCode.equals(fiveChild.getCode())) {
result.add(fiveChild);
return result;
}
@@ -304,40 +300,40 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaCodeDictTreePlus(AreaCodeDictFormDTO formDTO){
+ public List areaCodeDictTreePlus(AreaCodeDictFormDTO formDTO) {
List tree = new ArrayList<>();
String s = areaCodeRedis.get(AreaCodeConstant.THREE_SCREEN_TREE);
- if (StringUtils.isNotBlank(s)){
- tree = JSON.parseArray(s,AreaCodeDictResultDTO.class);
- }else {
+ if (StringUtils.isNotBlank(s)) {
+ tree = JSON.parseArray(s, AreaCodeDictResultDTO.class);
+ } else {
List threeTree = beforeThreeTree();
- areaCodeRedis.set(AreaCodeConstant.THREE_SCREEN_TREE,threeTree);
+ areaCodeRedis.set(AreaCodeConstant.THREE_SCREEN_TREE, threeTree);
tree = threeTree;
}
- if (StringUtils.isBlank(formDTO.getRootAreaCode())){
+ if (StringUtils.isBlank(formDTO.getRootAreaCode())) {
return tree;
}
- if (StringUtils.isBlank(formDTO.getRootAreaLevel())){
+ if (StringUtils.isBlank(formDTO.getRootAreaLevel())) {
throw new RenException(AreaCodeConstant.ROOT_AGENCY_LEVEL_IS_LEVEL);
}
// 传参为街道-社区级
- if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.STREET) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.COMMUNITY)){
+ if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.STREET) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.COMMUNITY)) {
tree = disposeAfterTwoLevel(formDTO);
- }else if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.CITY) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)){
- tree = disposeBeforeThreeLevelFinal(formDTO,tree);
- }else {
- throw new RenException(String.format(AreaCodeConstant.LEVEL_ERROR,formDTO.getRootAreaLevel()));
+ } else if (formDTO.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.CITY) || formDTO.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)) {
+ tree = disposeBeforeThreeLevelFinal(formDTO, tree);
+ } else {
+ throw new RenException(String.format(AreaCodeConstant.LEVEL_ERROR, formDTO.getRootAreaLevel()));
}
return tree;
}
/**
- * @Description 省市区三级联动查询
+ * @Description 省市区三级联动查询
* @Param
* @author zxc
* @date 2021/1/11 上午9:35
*/
- public List beforeThreeTree(){
+ public List beforeThreeTree() {
// 查询所有省市区
List areaCodeDTOS = baseDao.selectAllArea();
Map> groupByCity = areaCodeDTOS.stream().collect(Collectors.groupingBy(AreaCodeDTO::getCityCode));
@@ -362,13 +358,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl {
+ groupByProvince.forEach((p, v) -> {
AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO();
dto.setCode(p);
dto.setName(v.get(NumConstant.ZERO).getProvinceName());
List cityOnceResult = new ArrayList<>();
cityResult.forEach(c -> {
- if (dto.getCode().equals(c.getParentCode())){
+ if (dto.getCode().equals(c.getParentCode())) {
cityOnceResult.add(c);
}
});
@@ -383,12 +379,12 @@ public class AreaCodeServiceImpl extends BaseServiceImpl afterTwoTree(AreaCodeDictFormDTO form){
+ public List afterTwoTree(AreaCodeDictFormDTO form) {
// 查询所有街道、社区
List areaCodeChildDTOS = childDao.selectAllChild(form.getRootAreaCode());
List fourResult = new ArrayList<>();
@@ -399,7 +395,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl levelFive = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FIVE)) ? groupByLevel.get(NumConstant.FIVE) : new ArrayList<>();
Map> groupByPCode = CollectionUtils.isEmpty(levelFive) ? new HashMap<>() : levelFive.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode));
//街道
- List levelFour = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FOUR)) ?groupByLevel.get(NumConstant.FOUR):new ArrayList<>();
+ List levelFour = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FOUR)) ? groupByLevel.get(NumConstant.FOUR) : new ArrayList<>();
// 6级
List levelSix = groupByLevel.get(NumConstant.SIX);
Map> groupBySixPCode = CollectionUtils.isEmpty(levelSix) ? new HashMap<>() : levelSix.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode));
@@ -409,8 +405,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl {
- if (dto.getCode().equals(k)){
+ groupBySixPCode.forEach((k, v) -> {
+ if (dto.getCode().equals(k)) {
List six = new ArrayList<>();
v.forEach(s -> {
AreaCodeDictResultDTO sixDto = new AreaCodeDictResultDTO();
@@ -431,8 +427,8 @@ public class AreaCodeServiceImpl extends BaseServiceImpl {
- if (dto.getCode().equals(pCode)){
+ groupByFivePCode.forEach((pCode, v) -> {
+ if (dto.getCode().equals(pCode)) {
dto.setChildren(v);
}
});
@@ -443,28 +439,28 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeAfterTwoLevel(AreaCodeDictFormDTO form){
+ public List disposeAfterTwoLevel(AreaCodeDictFormDTO form) {
List result = new ArrayList<>();
List areaCodeDictResultDTOS = afterTwoTree(form);
- if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)){
+ if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)) {
return new ArrayList<>();
}
- if (form.getRootAreaLevel().equals(AreaCodeConstant.STREET)){
+ if (form.getRootAreaLevel().equals(AreaCodeConstant.STREET)) {
for (AreaCodeDictResultDTO dto : areaCodeDictResultDTOS) {
- if (dto.getCode().equals(form.getRootAreaCode())){
+ if (dto.getCode().equals(form.getRootAreaCode())) {
result.add(dto);
}
}
- }else {
+ } else {
for (AreaCodeDictResultDTO dto : areaCodeDictResultDTOS) {
- if (!CollectionUtils.isEmpty(dto.getChildren())){
+ if (!CollectionUtils.isEmpty(dto.getChildren())) {
for (AreaCodeDictResultDTO child : dto.getChildren()) {
- if (child.getCode().equals(form.getRootAreaCode())){
+ if (child.getCode().equals(form.getRootAreaCode())) {
result.add(child);
}
}
@@ -475,42 +471,42 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeBeforeThreeLevel(AreaCodeDictFormDTO form,List tree){
+ public List disposeBeforeThreeLevel(AreaCodeDictFormDTO form, List tree) {
List result = new ArrayList<>();
- if (CollectionUtils.isEmpty(tree)){
+ if (CollectionUtils.isEmpty(tree)) {
return new ArrayList<>();
}
- if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)){
+ if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)) {
for (AreaCodeDictResultDTO dto : tree) {
- if (dto.getCode().equals(form.getRootAreaCode())){
+ if (dto.getCode().equals(form.getRootAreaCode())) {
result.add(dto);
return result;
}
}
- }else if (form.getRootAreaLevel().equals(AreaCodeConstant.CITY)){
+ } else if (form.getRootAreaLevel().equals(AreaCodeConstant.CITY)) {
for (AreaCodeDictResultDTO dto : tree) {
- if (!CollectionUtils.isEmpty(dto.getChildren())){
+ if (!CollectionUtils.isEmpty(dto.getChildren())) {
for (AreaCodeDictResultDTO city : dto.getChildren()) {
- if (city.getCode().equals(form.getRootAreaCode())){
+ if (city.getCode().equals(form.getRootAreaCode())) {
result.add(city);
return result;
}
}
}
}
- }else if (form.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)){
+ } else if (form.getRootAreaLevel().equals(AreaCodeConstant.DISTRICT)) {
for (AreaCodeDictResultDTO dto : tree) {
- if (!CollectionUtils.isEmpty(dto.getChildren())){
+ if (!CollectionUtils.isEmpty(dto.getChildren())) {
for (AreaCodeDictResultDTO city : dto.getChildren()) {
- if (!CollectionUtils.isEmpty(city.getChildren())){
+ if (!CollectionUtils.isEmpty(city.getChildren())) {
for (AreaCodeDictResultDTO child : city.getChildren()) {
- if (child.getCode().equals(form.getRootAreaCode())){
+ if (child.getCode().equals(form.getRootAreaCode())) {
result.add(child);
return result;
}
@@ -524,29 +520,29 @@ public class AreaCodeServiceImpl extends BaseServiceImpl disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form,List tree){
+ public List disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form, List tree) {
List threeDto = disposeBeforeThreeLevel(form, tree);
List twoDto = afterTwoTree(form);
- if (CollectionUtils.isEmpty(threeDto)){
+ if (CollectionUtils.isEmpty(threeDto)) {
return new ArrayList<>();
}
- if (!CollectionUtils.isEmpty(twoDto)){
- if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)){
+ if (!CollectionUtils.isEmpty(twoDto)) {
+ if (form.getRootAreaLevel().equals(AreaCodeConstant.PROVINCE)) {
for (AreaCodeDictResultDTO dto : tree) {
- if (dto.getCode().equals(form.getRootAreaCode())){
- if (!CollectionUtils.isEmpty(dto.getChildren())){
+ if (dto.getCode().equals(form.getRootAreaCode())) {
+ if (!CollectionUtils.isEmpty(dto.getChildren())) {
for (AreaCodeDictResultDTO city : dto.getChildren()) {
- if (!CollectionUtils.isEmpty(city.getChildren())){
+ if (!CollectionUtils.isEmpty(city.getChildren())) {
for (AreaCodeDictResultDTO child : city.getChildren()) {
List areaList = new ArrayList<>();
for (AreaCodeDictResultDTO area : twoDto) {
- if (child.getCode().equals(area.getParentCode())){
+ if (child.getCode().equals(area.getParentCode())) {
areaList.add(area);
}
}
@@ -557,13 +553,13 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaList = new ArrayList<>();
for (AreaCodeDictResultDTO area : twoDto) {
- if (child.getCode().equals(area.getParentCode())){
+ if (child.getCode().equals(area.getParentCode())) {
areaList.add(area);
}
}
@@ -571,11 +567,11 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaList = new ArrayList<>();
for (AreaCodeDictResultDTO area : twoDto) {
- if (dto.getCode().equals(area.getParentCode())){
+ if (dto.getCode().equals(area.getParentCode())) {
areaList.add(area);
}
}
@@ -677,35 +673,35 @@ public class AreaCodeServiceImpl extends BaseServiceImpl nextArea(AreaCodeFormDTO formDTO) {
- if(StringUtils.isBlank(formDTO.getParentAreaCode())&&StringUtils.isBlank(formDTO.getParentLevel())){
- String pKey=RedisKeys.getNextAreaCodeKey(NumConstant.ZERO_STR);
- List list=areaCodeRedis.getNextAreaCodeKey(pKey);
- if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
+ if (StringUtils.isBlank(formDTO.getParentAreaCode()) && StringUtils.isBlank(formDTO.getParentLevel())) {
+ String pKey = RedisKeys.getNextAreaCodeKey(NumConstant.ZERO_STR);
+ List list = areaCodeRedis.getNextAreaCodeKey(pKey);
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) {
return list;
}
- List pList=baseDao.selectProvince();
- areaCodeRedis.setNextAreaCodeKey(pKey,pList);
+ List pList = baseDao.selectProvince();
+ areaCodeRedis.setNextAreaCodeKey(pKey, pList);
return pList;
}
- String key=RedisKeys.getNextAreaCodeKey(formDTO.getParentAreaCode());
- List list=areaCodeRedis.getNextAreaCodeKey(key);
- if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
+ String key = RedisKeys.getNextAreaCodeKey(formDTO.getParentAreaCode());
+ List list = areaCodeRedis.getNextAreaCodeKey(key);
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) {
return list;
}
switch (formDTO.getParentLevel()) {
@@ -723,17 +719,116 @@ public class AreaCodeServiceImpl extends BaseServiceImpl getAreaCodeTree(CustomerTreeDTO formDTO) {
+ List tree = new ArrayList<>();
+ areaCodeHandle(formDTO.getLevel(), formDTO.getAreaCode(), tree);
+ return ConvertUtils.sourceToTarget(tree, CustomerTreeDTO.class);
+ }
+
+ private void areaCodeHandle(String level, String areaCode, List tree) {
+ AreaCodeResultDTO result = new AreaCodeResultDTO();
+ switch (level) {
+ case AreaCodeConstant.PROVINCE:
+ AreaCodeDTO province = baseDao.selectByProvinceCode(areaCode);
+ if (province != null) {
+ result.setAreaName(province.getProvinceName());
+ result.setAreaCode(province.getProvinceCode());
+ result.setParentCode(NumConstant.ZERO_STR);
+ result.setLevel(AreaCodeConstant.PROVINCE);
+ tree.add(result);
+ }
+ break;
+ case AreaCodeConstant.CITY:
+ AreaCodeDTO city = baseDao.selectByCityCode(areaCode);
+ if (city != null) {
+ result.setAreaName(city.getCityName());
+ result.setAreaCode(city.getCityCode());
+ result.setParentCode(city.getProvinceCode());
+ result.setLevel(AreaCodeConstant.CITY);
+ tree.add(result);
+ areaCodeHandle(AreaCodeConstant.PROVINCE, city.getProvinceCode(), tree);
+ }
+ break;
+ case AreaCodeConstant.DISTRICT:
+ AreaCodeDTO county = baseDao.selectByCountyCode(areaCode);
+ if (county != null) {
+ result.setAreaName(county.getCountyName());
+ result.setAreaCode(county.getCountyCode());
+ result.setParentCode(county.getCityCode());
+ result.setLevel(AreaCodeConstant.DISTRICT);
+ tree.add(result);
+ areaCodeHandle(AreaCodeConstant.CITY, county.getCityCode(), tree);
+ }
+ break;
+ case AreaCodeConstant.STREET:
+ result = baseDao.selectByStreetCode(areaCode);
+ tree.add(result);
+ areaCodeHandle(AreaCodeConstant.DISTRICT, result.getParentCode(), tree);
+ break;
+ case AreaCodeConstant.COMMUNITY:
+ result = baseDao.selectByCommunityCode(areaCode);
+ tree.add(result);
+ areaCodeHandle(AreaCodeConstant.STREET, result.getParentCode(), tree);
+ break;
+ default:
+ log.warn("Level错误:" + level);
+ }
+ }
private String addDistrictAreaCode(String cityCode, String countyName) {
AreaCodeDTO city = baseDao.selectByCityCode(cityCode);
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml
index 34877f6c08..052b4369f7 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml
@@ -20,6 +20,16 @@
and m.`CODE`=#{code}
+
+ SELECT
+ *
+ FROM
+ area_code_child m
+ WHERE
+ m.DEL_FLAG = '0'
+ and m.`CODE`= #{code}
+
+
SELECT
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml
index 324edf5f0f..629b1edb04 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeDao.xml
@@ -19,6 +19,13 @@
and ac.CITY_CODE=#{cityCode}
+
+ select distinct ac.PROVINCE_CODE,ac.PROVINCE_NAME
+ from area_code ac
+ where ac.DEL_FLAG='0'
+ and ac.PROVINCE_CODE=#{provinceCode}
+
+
select *
from area_code ac
@@ -106,4 +113,28 @@
ORDER BY
ac.`code` ASC
+
+ SELECT
+ ac.`code` AS areaCode,
+ ac.`name` AS areaName,
+ ac.p_code AS parentCode,
+ 'street' AS LEVEL
+ FROM
+ area_code_child ac
+ WHERE
+ ac.DEL_FLAG = '0'
+ AND ac.`code` = #{streetCode}
+
+
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java
index e1dd0ea53d..0d220b193d 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseInfoFormDTO.java
@@ -16,4 +16,5 @@ public class HouseInfoFormDTO implements Serializable {
@NotNull(message = "房屋编码不可为空")
private String houseCode;
+ private String userId;
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java
index adde362546..3df20aa3b2 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseInfoFormDTO.java
@@ -22,5 +22,5 @@ public class IcHouseInfoFormDTO extends PageFormDTO {
private String houseCode;
private String customerId;
-
+ private String userId;
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyAreaResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyAreaResultDTO.java
new file mode 100644
index 0000000000..3eaaf991df
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyAreaResultDTO.java
@@ -0,0 +1,128 @@
+/**
+ * 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 AgencyAreaResultDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 客户名称
+ */
+ private String customerName;
+
+ /**
+ * 上级组织机构ID
+ */
+ private String pid;
+
+ /**
+ * 所有上级组织机构ID(以英文:隔开)
+ */
+ private String pids;
+
+ /**
+ * 所有上级名称,以-连接
+ */
+ private String allParentName;
+
+ /**
+ * 组织名称
+ */
+ private String organizationName;
+
+ /**
+ * 机关级别(社区级:community,
+ 乡(镇、街道)级:street,
+ 区县级: district,
+ 市级: city
+ 省级:province) 机关级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province)
+ */
+ private String level;
+
+ /**
+ * 地区编码
+ */
+ private String areaCode;
+
+ /**
+ * 总人数
+ */
+ private Integer totalUser;
+
+ /**
+ * 省
+ */
+ private String province;
+
+ /**
+ * 【城市】名称
+ */
+ private String city;
+
+ /**
+ * 【区县】名称
+ */
+ private String district;
+
+ /**
+ * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701
+ */
+ private String parentAreaCode;
+
+ /**
+ * 街道
+ */
+ private String street;
+
+ /**
+ * 【社区】名称0409
+ */
+ private String community;
+
+ /**
+ * 组织编码
+ */
+ private String code;
+
+ /**
+ * 负责人姓名
+ */
+ private String contacts;
+
+ /**
+ * 联系电话
+ */
+ private String mobile;
+
+}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java
index ddb4af560e..e827b468ef 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoResultDTO.java
@@ -108,4 +108,8 @@ public class HouseInfoResultDTO implements Serializable {
* 房屋可编辑编码
*/
private String coding;
+ /**
+ * 是否是房主
+ */
+ private String isOwner = "0";
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java
index d958f1494b..c3c77e446f 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseInfoResultDTO.java
@@ -59,7 +59,16 @@ public class IcHouseInfoResultDTO implements Serializable {
* 客户id
*/
private String customerId;
+ private String isOwner = "0";
+ private String ownerIdCard;
+ /**
+ * 房屋编码
+ */
+ private String houseCode;
+ /**
+ * 二维码地址
+ */
+ private String qrCodeUrl;
-
-
+ private String coding;
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
index b7c17a255d..7e2bcae37e 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
@@ -695,4 +695,14 @@ public interface GovOrgOpenFeignClient {
*/
@PostMapping("/gov/org/coverage/dictinit/{customerId}")
Result dictInit(@PathVariable(value = "customerId") String customerId);
+
+ /**
+ * 获取房主名下的房屋
+ * @Param formDTO
+ * @Return {@link Result< List>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 9:52
+ */
+ @PostMapping("/gov/org/ichouse/getOwnerHouseList")
+ Result> getOwnerHouseList(@RequestBody IcHouseDTO formDTO);
}
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
index 0a8e690f38..f9046d5979 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
@@ -445,4 +445,18 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "dictInit", customerId);
}
+ /**
+ * 获取房主名下的房屋
+ *
+ * @param formDTO
+ * @Param formDTO
+ * @Return {@link Result< List>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 9:52
+ */
+ @Override
+ public Result> getOwnerHouseList(IcHouseDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getOwnerHouseList", formDTO);
+ }
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
index 1ff1bc303c..ae07816fa2 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
@@ -505,4 +505,33 @@ public class AgencyController {
List dto = agencyService.getAddressTree(name, customerId);
return new Result>().ok(dto);
}
+
+ /**
+ * 获取区域编码下级的所有客户信息
+ *
+ * @param areaCode
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/7 10:12
+ */
+ @GetMapping("/areasubagency/{areaCode}")
+ public Result> getAreaSubAgency(@LoginUser TokenDto tokenDto, @PathVariable String areaCode) {
+ List dto = agencyService.getAreaSubAgency(tokenDto, areaCode);
+ return new Result>().ok(dto);
+ }
+
+ /**
+ * 客户树
+ *
+ * @param
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/6 13:24
+ */
+ @RequestMapping("customertree")
+ public Result> customerTree(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(agencyService.getCustomerTree(tokenDto));
+ }
+
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
index bd04087da4..62dfafccdf 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
@@ -516,6 +516,7 @@ public class HouseController implements ResultDataResolver {
//效验数据
ValidatorUtils.validateEntity(formDTO);
formDTO.setCustomerId(loginUser.getCustomerId());
+ formDTO.setUserId(loginUser.getUserId());
return houseService.getHouseInfoByCode(formDTO);
}
@@ -569,7 +570,8 @@ public class HouseController implements ResultDataResolver {
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("getHomeInfoByHouseCode")
- public Result getHomeInfoByHouseCode(@RequestBody HouseInfoFormDTO dto) {
+ public Result getHomeInfoByHouseCode(@LoginUser TokenDto tokenDto, @RequestBody HouseInfoFormDTO dto) {
+ dto.setUserId(tokenDto.getUserId());
//效验数据
ValidatorUtils.validateEntity(dto);
return houseService.getHomeInfoByHouseCode(dto);
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
index 63668ceba1..49e3f15f92 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
@@ -24,6 +24,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.result.HouseAgencyInfoResultDTO;
+import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.HouseListResultDTO;
import com.epmet.dto.result.HousesNameResultDTO;
import com.epmet.service.IcHouseService;
@@ -121,4 +122,18 @@ public class IcHouseController {
public Result updateIcHouseResiNumber(@RequestBody List> paramList){
return new Result().ok(icHouseService.updateIcHouseResiNumber(paramList));
}
+
+
+ /**
+ * 获取房主名下的房屋
+ *
+ * @Param idCards
+ * @Return {@link Result< List< HouseInfoDTO>>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 17:39
+ */
+ @PostMapping("getOwnerHouseList")
+ public Result> getOwnerHouseList(@RequestBody IcHouseDTO formDTO){
+ return new Result>().ok(icHouseService.getOwnerHouseList(formDTO));
+ }
}
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 1c4aa9394c..3059b5a1cf 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
@@ -353,5 +353,28 @@ public interface CustomerAgencyDao extends BaseDao {
CommunityInfoResultDTO getCommunityInfo(OrgInfoPointFormDTO formDTO);
CommunityInfoResultDTO getCommunityInfoByUserId(@Param("userId") String userId);
+
+ /**
+ * 获取区域编码下级的所有客户信息
+ *
+ * @param areaCode
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/7 10:12
+ */
+ List getAreaSubAgency(@Param("areaCode") String areaCode);
+
+ /**
+ * 客户树根节点
+ *
+ * @param
+ * @return java.util.List
+ * @author zhy
+ * @date 2022/7/6 13:32
+ */
+ List selectRootCustomer(@Param("areaCode") String areaCode, @Param("level") String level);
+
+ CustomerAgencyEntity getAreaRootAgency(@Param("customerId") String customerId);
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java
index 4ae4672647..04c73a7756 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java
@@ -178,4 +178,25 @@ public interface AgencyService {
* @date 2022/5/16 10:43
*/
List getAddressTree(String name, String customerId);
+
+ /**
+ * 获取区域编码下级的所有客户信息
+ *
+ * @param areaCode
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/7 10:12
+ */
+ List getAreaSubAgency(TokenDto tokenDto, String areaCode);
+
+ /**
+ * 客户树
+ *
+ * @param tokenDto
+ * @return java.util.List
+ * @author zhy
+ * @date 2022/7/6 13:32
+ */
+ List getCustomerTree(TokenDto tokenDto);
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
index 9aa68a4047..522acba117 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
@@ -7,6 +7,7 @@ import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.result.HouseAgencyInfoResultDTO;
+import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.HouseListResultDTO;
import com.epmet.dto.result.HousesNameResultDTO;
import com.epmet.entity.IcHouseEntity;
@@ -119,4 +120,14 @@ public interface IcHouseService extends BaseService {
* @return
*/
Integer updateIcHouseResiNumber(List> paramList);
+
+ /**
+ * 获取房主名下的房屋
+ *
+ * @Param formDTO
+ * @Return {@link List< HouseInfoDTO>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 17:41
+ */
+ List getOwnerHouseList(IcHouseDTO formDTO);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
index cf2016de58..1505018fa9 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
@@ -43,6 +43,7 @@ import com.epmet.dao.CustomerDepartmentDao;
import com.epmet.dao.CustomerGridDao;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dto.CustomerAgencyDTO;
+import com.epmet.dto.CustomerDTO;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@@ -50,12 +51,14 @@ import com.epmet.entity.CustomerAgencyEntity;
import com.epmet.entity.CustomerDepartmentEntity;
import com.epmet.entity.CustomerGridEntity;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
-import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.feign.OperCrmFeignClient;
import com.epmet.redis.CustomerAgencyRedis;
import com.epmet.service.AgencyService;
import com.epmet.service.CustomerAgencyService;
import com.epmet.service.CustomerOrgParameterService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Joiner;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -66,10 +69,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
/**
* 机关单位信息
@@ -99,7 +101,7 @@ public class AgencyServiceImpl implements AgencyService {
@Autowired
private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient;
@Autowired
- private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
+ private OperCrmFeignClient operCrmFeignClient;
@Autowired
private IcBuildingDao icBuildingDao;
@Autowired
@@ -902,6 +904,46 @@ public class AgencyServiceImpl implements AgencyService {
return NodeTreeUtils.build(list);
}
+ @Override
+ public List getAreaSubAgency(TokenDto tokenDto, String areaCode) {
+ if (NumConstant.ZERO_STR.equals(areaCode)) {
+ CustomerAgencyEntity root = customerAgencyDao.getAreaRootAgency(tokenDto.getCustomerId());
+ areaCode = root.getAreaCode();
+ }
+
+ List list = customerAgencyDao.getAreaSubAgency(areaCode);
+ list.forEach(item -> {
+ CustomerDTO customerDTO = new CustomerDTO();
+ customerDTO.setId(item.getCustomerId());
+ Result customerResult = operCrmFeignClient.getCustomerInfo(customerDTO);
+ if (customerResult.success() && null != customerResult.getData()) {
+ item.setCustomerName(item.getOrganizationName().concat(StrConstant.HYPHEN).concat(customerResult.getData().getCustomerName()));
+ }
+ });
+
+ return list;
+ }
+
+ @Override
+ public List getCustomerTree(TokenDto tokenDto) {
+ List resultList = new ArrayList<>();
+ List rootList = customerAgencyDao.selectRootCustomer(null, null);
+ List treeList = new ArrayList<>();
+ Map treeMap = new HashMap<>();
+ if (!rootList.isEmpty()) {
+ // 获取已有客户的所有组织架构,并转换成map,保证唯一
+ rootList.forEach(item -> {
+ customerHandle(item, treeList);
+ });
+// treeMap = treeList.stream().collect(Collectors.toMap(CustomerTreeDTO::getAreaCode, Function.identity(), (val1, val2) -> val2));
+ // 组合成组织树
+ resultList = getCustomerTree(treeList);
+
+ }
+
+ return resultList;
+ }
+
private CustomerAgencyEntity constructInsertEntity(AddAgencyV2FormDTO formDTO, CustomerAgencyDTO parent) {
CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class);
insertEntity.setOrganizationName(formDTO.getAgencyName());
@@ -951,4 +993,109 @@ public class AgencyServiceImpl implements AgencyService {
return insertEntity;
}
+ /**
+ * 处理子客户
+ *
+ * @param customer
+ * @return com.epmet.dto.result.CustomerTreeDTO
+ * @author zhy
+ * @date 2022/7/6 13:54
+ */
+ private void customerHandle(CustomerTreeDTO customer, List treeList) {
+ Result> area = epmetCommonServiceOpenFeignClient.areaCodeTree(customer);
+ if (area.success()) {
+ if (area.getData() != null) {
+ treeList.addAll(area.getData());
+ }
+ }
+ }
+
+ /**
+ * 生成客户树
+ *
+ * @param
+ * @return com.epmet.dto.result.CustomerTreeDTO
+ * @author wgf
+ * @date 2022/7/6 13:54
+ */
+ private List getCustomerTree(List treeList) {
+ treeList = treeList.stream().distinct().collect(Collectors.toList());
+
+ // 回显客户名称
+ treeList.forEach(item -> {
+ List customerNames = new ArrayList<>();
+ List subList = customerAgencyDao.selectRootCustomer(item.getAreaCode(), item.getLevel());
+ subList.forEach(customer -> {
+ CustomerDTO customerDTO = new CustomerDTO();
+ customerDTO.setId(customer.getCustomerId());
+ Result customerResult = operCrmFeignClient.getCustomerInfo(customerDTO);
+ if (customerResult.success() && null != customerResult.getData()) {
+ customerNames.add(customerResult.getData().getCustomerName());
+ }
+ });
+ item.setCustomerName(Joiner.on(",").join(customerNames));
+ });
+
+ // 省
+ List province = new ArrayList();
+ // 市
+ List city = new ArrayList();
+ // 区
+ List district = new ArrayList();
+ // 街道
+ List street = new ArrayList();
+ // 社区
+ List community = new ArrayList();
+ for (int i = 0; i < treeList.size(); i++) {
+ if ("province".equals(treeList.get(i).getLevel())) {
+ province.add(treeList.get(i));
+ } else if ("city".equals(treeList.get(i).getLevel())) {
+ city.add(treeList.get(i));
+ } else if ("district".equals(treeList.get(i).getLevel())) {
+ district.add(treeList.get(i));
+ } else if ("street".equals(treeList.get(i).getLevel())) {
+ street.add(treeList.get(i));
+ } else if ("community".equals(treeList.get(i).getLevel())) {
+ community.add(treeList.get(i));
+ }
+ }
+
+ // 组装街道树
+ for (CustomerTreeDTO streetDto : street) {
+ this.addChild(streetDto, community);
+ }
+ // 组装区树
+ for (CustomerTreeDTO districtDto : district) {
+ this.addChild(districtDto, street);
+ }
+ // 组装市树
+ for (CustomerTreeDTO cityDto : city) {
+ this.addChild(cityDto, district);
+ }
+ // 组装省树
+ for (CustomerTreeDTO provinceDto : province) {
+ this.addChild(provinceDto, city);
+ }
+
+ return province;
+ }
+
+
+ /**
+ * 组装子项
+ *
+ * @param parentDto
+ * @param childList
+ */
+ private void addChild(CustomerTreeDTO parentDto, List childList) {
+ List children = new ArrayList();
+ for (CustomerTreeDTO childDto : childList) {
+ if (parentDto.getAreaCode().equals(childDto.getParentCode())) {
+ children.add(childDto);
+ }
+ }
+ parentDto.setChildren(children);
+
+ }
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
index c89d9eb8c4..652d1af545 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
@@ -20,10 +20,12 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.CustomerResiUserRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
+import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.CustomerGridConstant;
@@ -1058,9 +1060,23 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查询到相关房屋","未查询到相关房屋");
}
HouseInfoCache cache = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), house.getId());
- IcHouseInfoResultDTO resut = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class);
- resut.setHouseId(cache.getHomeId());
- return new Result().ok(resut);
+ if (null == cache) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查询到相关房屋","未查询到相关房屋");
+ }
+ IcHouseInfoResultDTO result = ConvertUtils.sourceToTarget(cache, IcHouseInfoResultDTO.class);
+ result.setHouseId(cache.getHomeId());
+ result.setOwnerIdCard(house.getOwnerIdCard());
+ result.setCoding(house.getCoding());
+ result.setHouseName(cache.getAllName());
+ result.setQrCodeUrl(house.getHouseQrcodeUrl());
+ ResiUserInfoCache userInfo = CustomerResiUserRedis.getUserBaseInfo(formDTO.getUserId());
+ if (null != userInfo) {
+ if (StringUtils.equals(house.getOwnerIdCard(), userInfo.getIdNum())) {
+ result.setIsOwner(NumConstant.ONE_STR);
+
+ }
+ }
+ return new Result().ok(result);
}
@@ -1137,6 +1153,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
house.setHouseTypeName(HouseTypeEnums.getTypeValue(house.getHouseType()));
house.setRentName(HouseRentFlagEnums.getTypeValue(house.getRentFlag()));
house.setPurposeName(HousePurposeEnums.getTypeValue(house.getPurpose()));
+ ResiUserInfoCache userInfo = CustomerResiUserRedis.getUserBaseInfo(dto.getUserId());
+ if (null != userInfo) {
+ if (StringUtils.equals(house.getOwnerIdCard(), userInfo.getIdNum())) {
+ house.setIsOwner(NumConstant.ONE_STR);
+ }
+ }
return new Result().ok(house);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
index 98e340221c..d93d589134 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
@@ -22,6 +22,7 @@ import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.result.HouseAgencyInfoResultDTO;
+import com.epmet.dto.result.HomeInfoResultDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.HouseListResultDTO;
import com.epmet.dto.result.HousesNameResultDTO;
@@ -310,4 +311,26 @@ public class IcHouseServiceImpl extends BaseServiceImpl}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 17:41
+ */
+ @Override
+ public List getOwnerHouseList(IcHouseDTO formDTO) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(IcHouseEntity::getCustomerId, formDTO.getCustomerId());
+ wrapper.eq(IcHouseEntity::getOwnerIdCard, formDTO.getOwnerIdCard());
+ wrapper.ne(IcHouseEntity::getHouseCode, formDTO.getHouseCode());
+ List list = baseDao.selectList(wrapper);
+ if (CollectionUtils.isEmpty(list)) {
+ return Collections.emptyList();
+ }
+ return list.stream().map(item -> icHouseRedis.getHouseInfo(item.getId(), item.getCustomerId())).collect(Collectors.toList());
+ }
}
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 136341dc18..d0e2d2e34c 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
@@ -930,4 +930,55 @@
limit 1
+
+ SELECT
+ ac.*
+ FROM
+ customer_agency ac
+ INNER JOIN customer_org_parameter cop ON cop.CUSTOMER_ID = ac.CUSTOMER_ID
+ WHERE
+ ac.DEL_FLAG = '0'
+ AND cop.DEL_FLAG = '0'
+ AND cop.PARAMETER_KEY = 'area_code_switch'
+ AND ac.PID = '0'
+ AND cop.PARAMETER_VALUE = 'open'
+
+ AND ac.AREA_CODE LIKE CONCAT(#{areaCode}, '%')
+
+
+
+
+ SELECT
+ c.*
+ FROM
+ customer_agency c
+ WHERE
+ c.DEL_FLAG = '0'
+ AND c.pid = '0'
+ AND c.AREA_CODE IS NOT NULL
+
+ AND c.AREA_CODE = #{areaCode}
+
+
+ AND c.LEVEL = #{level}
+
+
+
+
+ SELECT
+ ac.*
+ FROM
+ customer_agency ac
+ INNER JOIN customer_org_parameter cop ON cop.CUSTOMER_ID = ac.CUSTOMER_ID
+ WHERE
+ ac.DEL_FLAG = '0'
+ AND cop.DEL_FLAG = '0'
+ AND cop.PARAMETER_KEY = 'area_code_switch'
+ AND ac.PID = '0'
+ AND cop.PARAMETER_VALUE = 'open'
+
+ AND ac.CUSTOMER_ID = #{customerId}
+
+
+
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java
index 463ac3abc5..540e1c3b2f 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/CustomerRelationDTO.java
@@ -83,6 +83,11 @@ public class CustomerRelationDTO implements Serializable {
*/
private String areaCode;
+ /**
+ * 当前客户的地区编码,实际就是根组织的area_code
+ */
+ private String parentAreaCode;
+
/**
* 删除标识0未删除1已删除
*/
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java
new file mode 100644
index 0000000000..817670541f
--- /dev/null
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/CustomerRelationFormDTO.java
@@ -0,0 +1,41 @@
+/**
+ * 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.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 客户关系表(01.14 add)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-02-03
+ */
+@Data
+public class CustomerRelationFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java
new file mode 100644
index 0000000000..895e46051b
--- /dev/null
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerRelationTreeDTO.java
@@ -0,0 +1,111 @@
+/**
+ * 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.Date;
+import java.util.List;
+
+
+/**
+ * 客户关系表(01.14 add)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-02-03
+ */
+@Data
+public class CustomerRelationTreeDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ /**
+ * 父级客户id;如果是顶级客户,此列=0
+ */
+ private String parentCustomerId;
+
+ /**
+ * 当前客户的所有父级客户id,以英文冒号隔开,如果是顶级客户,此列=0
+ */
+ private String pids;
+
+ /**
+ * 当前客户类型取值: external:外部客户,internal:内部客户
+ */
+ private String customerType;
+
+ /**
+ * 父级客户类型取值: external:外部客户,internal:内部客户;如果是顶级客户,此列=0
+ */
+ private String parentCustomerType;
+
+ /**
+ * open,closed是否启用
+ */
+ private String status;
+
+ /**
+ * 当前客户级别(社区级:community,
+乡(镇、街道)级:street,
+区县级: district,
+市级: city
+省级:province)
+ */
+ private String level;
+
+ /**
+ * 当前客户的地区编码,实际就是根组织的area_code
+ */
+ private String areaCode;
+
+ /**
+ * 当前客户的地区名称
+ */
+ private String areaName;
+
+ /**
+ * 客户名称
+ */
+ private String customerName;
+
+ /**
+ * 有效期
+ */
+ private Date validityTime;
+
+ /**
+ * 客户logo
+ */
+ private String logo;
+
+ /**
+ * 下一级
+ */
+ private List children;
+}
\ No newline at end of file
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
index c6fc44b140..cda0889b35 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
@@ -133,4 +133,16 @@ public interface OperCrmOpenFeignClient {
**/
@GetMapping("/oper/crm/customer/getexternalandparentcustomerid/{customerId}")
Result getExternalAndParentCustomerId(@PathVariable("customerId") String customerId);
+
+ /**
+ * 获取子客户
+ *
+ * @param customerId
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/8 13:41
+ */
+ @GetMapping("/oper/crm/customerRelation/subcustomer/{customerId}")
+ Result> getSubCustomer(@PathVariable("customerId") String customerId);
+
}
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
index 8366657fa8..380ed077fa 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java
@@ -99,4 +99,9 @@ public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient {
public Result getExternalAndParentCustomerId(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getExternalAndParentCustomerId", customerId);
}
+
+ @Override
+ public Result> getSubCustomer(String customerId) {
+ return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getSubCustomer", customerId);
+ }
}
diff --git a/epmet-module/oper-crm/oper-crm-server/pom.xml b/epmet-module/oper-crm/oper-crm-server/pom.xml
index 4c5c659712..9d307af050 100644
--- a/epmet-module/oper-crm/oper-crm-server/pom.xml
+++ b/epmet-module/oper-crm/oper-crm-server/pom.xml
@@ -111,6 +111,12 @@
2.0.0
compile
+
+ com.epmet
+ common-service-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java
new file mode 100644
index 0000000000..e6a4bc2f25
--- /dev/null
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerRelationController.java
@@ -0,0 +1,104 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.aop.NoRepeatSubmit;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.dto.CustomerRelationDTO;
+import com.epmet.dto.result.CustomerRelationTreeDTO;
+import com.epmet.service.CustomerRelationService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 客户关系表(01.14 add)
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-07-06
+ */
+@RestController
+@RequestMapping("customerRelation")
+public class CustomerRelationController {
+
+ @Autowired
+ private CustomerRelationService customerRelationService;
+
+ @RequestMapping("page")
+ public Result> page(@RequestParam Map params) {
+ PageData page = customerRelationService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
+ public Result get(@PathVariable("id") String id) {
+ CustomerRelationDTO data = customerRelationService.get(id);
+ return new Result().ok(data);
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("save")
+ public Result save(@RequestBody CustomerRelationDTO dto) {
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ customerRelationService.saveV2(dto);
+ return new Result();
+ }
+
+ @NoRepeatSubmit
+ @PostMapping("update")
+ public Result update(@RequestBody CustomerRelationDTO dto) {
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ customerRelationService.update(dto);
+ return new Result();
+ }
+
+ @RequestMapping(value = "delete", method = {RequestMethod.POST, RequestMethod.DELETE})
+ public Result delete(@RequestBody String[] ids) {
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ customerRelationService.delete(ids);
+ return new Result();
+ }
+
+ /**
+ * 客户树
+ *
+ * @param
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/6 13:24
+ */
+ @RequestMapping("customertree")
+ public Result> customerTree(@LoginUser TokenDto tokenDto) {
+ return new Result>().ok(customerRelationService.getCustomerTree(tokenDto));
+ }
+
+ /**
+ * 获取子客户
+ *
+ * @param customerId
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/8 13:41
+ */
+ @GetMapping("subcustomer/{customerId}")
+ public Result> getSubCustomer(@PathVariable("customerId") String customerId) {
+ if(StringUtils.isNotBlank(customerId)){
+ List result = customerRelationService.getSubCustomer(customerId);
+ return new Result>().ok(result);
+ }
+ return new Result<>();
+ }
+}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java
index 948937062c..ee8e6255ce 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerRelationDao.java
@@ -19,8 +19,10 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomerRelationDTO;
+import com.epmet.dto.result.CustomerRelationTreeDTO;
import com.epmet.entity.CustomerRelationEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -48,4 +50,35 @@ public interface CustomerRelationDao extends BaseDao {
* @return java.util.List
*/
List selectAllSubCustomerIds(String customerId);
+
+ /**
+ * 客户树根节点
+ *
+ * @param customerId
+ * @return java.util.List
+ * @author zhy
+ * @date 2022/7/6 13:32
+ */
+ List selectRootCustomerByCustomerId(@Param("customerId") String customerId);
+
+ /**
+ * 客户树子节点
+ *
+ * @param customerPid
+ * @return java.util.List
+ * @author zhy
+ * @date 2022/7/6 13:32
+ */
+ List selectSubCustomerByPid(@Param("customerPid") String customerPid);
+
+ /**
+ * 获取子客户
+ *
+ * @param customerId
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhy
+ * @date 2022/7/8 13:41
+ */
+ List getSubCustomer(@Param("customerId") String customerId);
+
}
\ No newline at end of file
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java
index 9c33664b50..1c0a077b14 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/entity/CustomerRelationEntity.java
@@ -79,4 +79,9 @@ public class CustomerRelationEntity extends BaseEpmetEntity {
*/
private String areaCode;
+ /**
+ * 当前客户的地区编码,实际就是根组织的area_code
+ */
+ private String parentAreaCode;
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java
index 2776c8b0cf..05ee703d22 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerRelationService.java
@@ -19,7 +19,9 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.CustomerRelationDTO;
+import com.epmet.dto.result.CustomerRelationTreeDTO;
import com.epmet.entity.CustomerRelationEntity;
import java.util.List;
@@ -73,6 +75,16 @@ public interface CustomerRelationService extends BaseService getAllSubCustomerIds(String customerId);
+
+ /**
+ * 客户树
+ *
+ * @param tokenDto
+ * @return java.util.List
+ * @author zhy
+ * @date 2022/7/6 13:32
+ */
+ List getCustomerTree(TokenDto tokenDto);
+
+ List getSubCustomer(String customerId);
+
}
\ No newline at end of file
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java
index 6a68df0455..415a6c831a 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerRelationServiceImpl.java
@@ -25,11 +25,17 @@ import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.CustomerRelationDao;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.CustomerRelationDTO;
+import com.epmet.dto.form.AreaCodeDetailFormDTO;
+import com.epmet.dto.result.AreaCodeResultDTO;
+import com.epmet.dto.result.CustomerRelationTreeDTO;
import com.epmet.entity.CustomerRelationEntity;
+import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.redis.CustomerRedis;
import com.epmet.service.CustomerRelationService;
import com.epmet.service.CustomerService;
@@ -58,6 +64,8 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl page(Map params) {
@@ -75,8 +83,8 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl getWrapper(Map params){
- String id = (String)params.get(FieldConstant.ID_HUMP);
+ private QueryWrapper getWrapper(Map params) {
+ String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
@@ -97,6 +105,15 @@ public class CustomerRelationServiceImpl extends BaseServiceImpl();
}
+ @Override
+ public List getCustomerTree(TokenDto tokenDto) {
+// String customerId = tokenDto.getCustomerId();
+ String customerId = "78e2b2227c07de1fe54da14e2b2d9eb6";
+ List rootList = baseDao.selectRootCustomerByCustomerId(customerId);
+ if (!rootList.isEmpty()) {
+ rootList.forEach(this::getSubCustomer);
+ }
+ return rootList;
+ }
+
+ @Override
+ public List getSubCustomer(String customerId) {
+ return baseDao.getSubCustomer(customerId);
+ }
+
+ /**
+ * 处理子客户
+ *
+ * @param customer
+ * @return com.epmet.dto.result.CustomerRelationTreeDTO
+ * @author zhy
+ * @date 2022/7/6 13:54
+ */
+ private CustomerRelationTreeDTO getSubCustomer(CustomerRelationTreeDTO customer) {
+ AreaCodeDetailFormDTO formDTO = new AreaCodeDetailFormDTO();
+ formDTO.setAreaCode(customer.getAreaCode());
+ formDTO.setLevel(customer.getLevel());
+ Result area = epmetCommonServiceOpenFeignClient.areaCodeDetail(formDTO);
+ if (area.success()) {
+ if (area.getData() != null) {
+ customer.setAreaName(area.getData().getAreaName());
+ }
+ }
+ List children = baseDao.selectSubCustomerByPid(customer.getCustomerId());
+ customer.setChildren(children);
+ if (!children.isEmpty()) {
+ children.forEach(this::getSubCustomer);
+ }
+ return customer;
+ }
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml
index f757a48b51..525e388cf4 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerRelationDao.xml
@@ -23,4 +23,46 @@
cr.DEL_FLAG = '0'
AND cr.PIDS like CONCAT(#{customerId},'%')
+
+
+ SELECT
+ cr.*,
+ c.CUSTOMER_NAME,
+ c.VALIDITY_TIME,
+ c.LOGO
+ FROM
+ customer_relation cr
+ LEFT JOIN customer c ON c.id = cr.CUSTOMER_ID
+ WHERE
+ cr.DEL_FLAG = '0'
+-- AND c.DEL_FLAG = '0'
+ AND cr.CUSTOMER_ID = #{customerId}
+
+
+
+ SELECT
+ cr.*,
+ c.CUSTOMER_NAME,
+ c.VALIDITY_TIME,
+ c.LOGO
+ FROM
+ customer_relation cr
+ LEFT JOIN customer c ON c.id = cr.CUSTOMER_ID
+ WHERE
+ cr.DEL_FLAG = '0'
+-- AND c.DEL_FLAG = '0'
+ AND cr.PARENT_CUSTOMER_ID = #{customerPid}
+
+
+
+ SELECT
+ CUSTOMER_ID
+ FROM
+ customer_relation
+ WHERE
+ `STATUS` = 'open'
+ AND FIND_IN_SET( #{customerId}, pids )
+ AND DEL_FLAG = '0'
+
+
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java
index ea119fbd80..e2bbad8810 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserConfirmSubmitDTO.java
@@ -210,5 +210,5 @@ public class IcResiUserConfirmSubmitDTO implements Serializable {
private String operationDescribe;
private String houseCode;
-
+ private Boolean isOwner = false;
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java
index e890aa3092..f6474161d8 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HomeInfoResultDTO.java
@@ -20,4 +20,12 @@ public class HomeInfoResultDTO implements Serializable {
private String houseName;
private String houseCode;
private String qrCodeUrl;
+ /**
+ * 是否是房主
+ */
+ private String isOwner = "0";
+ /**
+ * 房主身份证
+ */
+ private String ownerIdCard;
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RegisterAndBindResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RegisterAndBindResultDTO.java
new file mode 100644
index 0000000000..cb30766181
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RegisterAndBindResultDTO.java
@@ -0,0 +1,17 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 17:13
+ */
+@Data
+public class RegisterAndBindResultDTO implements Serializable {
+ private static final long serialVersionUID = 718455504517985543L;
+ private String isOwner = "0";
+ private String isDiff = "0";
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java
index a622798520..a2d754b2e9 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/MyHomeController.java
@@ -10,12 +10,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.dto.IcHouseDTO;
import com.epmet.dto.IcResiUserConfirmDTO;
import com.epmet.dto.form.*;
-import com.epmet.dto.result.ConfirmListResultDTO;
-import com.epmet.dto.result.HomeInfoResultDTO;
-import com.epmet.dto.result.HomeUserBriefResultDTO;
-import com.epmet.dto.result.MoveOutDetailResultDTO;
+import com.epmet.dto.result.*;
import com.epmet.service.IcResiUserConfirmService;
import com.epmet.service.IcResiUserService;
import com.epmet.service.MyHomeService;
@@ -135,11 +133,10 @@ public class MyHomeController {
* @Date 2022/6/1 10:26
*/
@PostMapping("registerAndBind")
- public Result registerAndBind(@LoginUser TokenDto tokenDto, @RequestBody RegisterAndBindFormDTO formDTO) {
+ public Result registerAndBind(@LoginUser TokenDto tokenDto, @RequestBody RegisterAndBindFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
- myHomeService.registerAndBind(formDTO);
- return new Result();
+ return new Result().ok(myHomeService.registerAndBind(formDTO));
}
@PostMapping("homeInfo")
@@ -200,4 +197,33 @@ public class MyHomeController {
return new Result();
}
+ /**
+ * 获取房主名下的房屋列表
+ *
+ * @Param tokenDto
+ * @Return {@link Result< HomeInfoResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 16:46
+ */
+ @PostMapping("getOwnerHouseList")
+ public Result> getOwnerHouseList(@LoginUser TokenDto tokenDto, @RequestBody IcHouseDTO formDTO) {
+ List result = myHomeService.getOwnerHouseList(tokenDto, formDTO);
+ return new Result>().ok(result);
+ }
+
+ /**
+ * 变更绑定的房屋
+ *
+ * @Param tokenDto
+ * @Param formDTO
+ * @Return {@link Result}
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 17:28
+ */
+ @PostMapping("changeHome")
+ public Result changeHome(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserConfirmSubmitDTO formDTO) {
+ myHomeService.changeHome(tokenDto, formDTO);
+ return new Result();
+ }
+
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java
index 0d1667b03d..a4f140670f 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/MyHomeService.java
@@ -1,9 +1,12 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dto.IcHouseDTO;
+import com.epmet.dto.form.IcResiUserConfirmSubmitDTO;
import com.epmet.dto.form.RegisterAndBindFormDTO;
import com.epmet.dto.result.HomeInfoResultDTO;
import com.epmet.dto.result.HomeUserBriefResultDTO;
+import com.epmet.dto.result.RegisterAndBindResultDTO;
import java.util.List;
@@ -21,7 +24,7 @@ public interface MyHomeService {
* @Author zhaoqifeng
* @Date 2022/6/1 16:33
*/
- void registerAndBind(RegisterAndBindFormDTO formDTO);
+ RegisterAndBindResultDTO registerAndBind(RegisterAndBindFormDTO formDTO);
/**
* 获取用户绑定的房屋信息
@@ -43,4 +46,25 @@ public interface MyHomeService {
* @date 2022/6/1/0001 16:12
*/
List selectListHomeMember(String houseCode, String customerId);
+
+ /**
+ * 获取房主名下的房屋列表
+ *
+ * @Param tokenDto
+ * @Return {@link List< HomeInfoResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 16:48
+ */
+ List getOwnerHouseList(TokenDto tokenDto, IcHouseDTO formDTO);
+
+ /**
+ * 变更绑定的房屋
+ *
+ * @Param tokenDto
+ * @Param formDTO
+ * @Return
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 17:28
+ */
+ void changeHome(TokenDto tokenDto, IcResiUserConfirmSubmitDTO formDTO);
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
index d04771e4c9..86e7fdf169 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
@@ -41,10 +41,12 @@ import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.CustomerResiUserRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.redis.common.bean.HouseInfoCache;
+import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.IcPlatformConstant;
@@ -2391,17 +2393,83 @@ public class IcResiUserServiceImpl extends BaseServiceImpl icHouseNewResult = govOrgOpenFeignClient.get(dto.getHomeId());
+ if (!icHouseNewResult.success() || null == icHouseNewResult.getData()) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+
+ HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), dto.getHomeId());
+ if (null == houseInfo) {
+ String errorMsg = "获取房屋信息失败";
+ throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg);
+ }
+ GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(houseInfo.getGridId());
+ if (null == gridInfo) {
+ String errorMsg = "获取网格信息失败";
+ throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg);
+ }
+
+ dto.setCustomerId(tokenDto.getCustomerId());
+ dto.setAgencyId(houseInfo.getAgencyId());
+ dto.setPids(gridInfo.getPids());
+ dto.setGridId(houseInfo.getGridId());
+ dto.setVillageId(houseInfo.getNeighborHoodId());
+ dto.setBuildId(houseInfo.getBuildingId());
+ dto.setUnitId(houseInfo.getBuildingUnitId());
+ dto.setHomeId(dto.getHomeId());
+ dto.setStaffId(tokenDto.getUserId());
+ if (idCard.equals(icHouseNewResult.getData().getOwnerIdCard())) {
+ dto.setIsOwner(true);
+ }
- IcResiUserDTO userDTO = baseDao.getResiUserByIdCard(dto.getIdCard(), user.getCustomerId());
if (null != userDTO && null != userDTO.getIdCard()) {
- String errorMsg = "新增居民信息失败,身份证号已存在!";
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
+ if (dto.getIsOwner()) {
+ //如果是房东,可以将其名下其他房屋的人员移到当前房屋
+ if (dto.getHomeId().equals(userDTO.getHomeId())) {
+ String errorMsg = "新增居民信息失败,身份证号已存在!";
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
+ } else {
+ //判断房屋的房主是否同一人
+ Result icHouseResult = govOrgOpenFeignClient.get(userDTO.getHomeId());
+ if (!icHouseResult.success() || null == icHouseResult.getData()) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+ if (StringUtils.equals(icHouseResult.getData().getOwnerIdCard(), icHouseNewResult.getData().getOwnerIdCard())) {
+ //走迁移逻辑
+ //这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户
+ if (RelationshipEnum.SELF.getCode().equals(dto.getYhzgx())) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(IcResiUserEntity::getHomeId, dto.getHomeId());
+ wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode());
+ List entityList = baseDao.selectList(wrapper);
+ if (CollectionUtils.isNotEmpty(entityList)) {
+ String errorMsg = "房屋下已存在户主";
+ throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode(), errorMsg, errorMsg);
+ }
+ }
+ return updateOldMemberInfo(tokenDto.getCustomerId(),dto);
+ } else {
+ String errorMsg = "您无权操作其他家庭的成员,如有问题请联系工作人员";
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
+ }
+ }
+ } else {
+ String errorMsg = "新增居民信息失败,身份证号已存在!";
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
+ }
}
//这个房屋下已经设置了户主后,再次选择户主时提示提示“房屋下已存在户主” PS.户主指与户主关系是本人的用户
if (RelationshipEnum.SELF.getCode().equals(dto.getYhzgx())) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(IcResiUserEntity::getHomeId, user.getHomeId());
+ wrapper.eq(IcResiUserEntity::getHomeId, dto.getHomeId());
wrapper.eq(IcResiUserEntity::getYhzgx, RelationshipEnum.SELF.getCode());
List entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(entityList)) {
@@ -2411,15 +2479,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl selectListHomeMember(String houseCode, String customerId) {
@@ -86,18 +93,42 @@ public class MyHomeServiceImpl implements MyHomeService {
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public void registerAndBind(RegisterAndBindFormDTO formDTO) {
-
+ public RegisterAndBindResultDTO registerAndBind(RegisterAndBindFormDTO formDTO) {
+ RegisterAndBindResultDTO result = new RegisterAndBindResultDTO();
LambdaQueryWrapper userWrapper = new LambdaQueryWrapper<>();
userWrapper.eq(IcResiUserEntity::getCustomerId, formDTO.getCustomerId());
userWrapper.eq(IcResiUserEntity::getIdCard, formDTO.getIdCard());
IcResiUserEntity icUser = icResiUserDao.selectOne(userWrapper);
- if (null == icUser || !icUser.getHomeId().equals(formDTO.getHomeId())) {
+ //获取用户扫码的房屋
+ Result icHouseNewResult = govOrgOpenFeignClient.get(formDTO.getHomeId());
+ if (!icHouseNewResult.success() || null == icHouseNewResult.getData()) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+ if (formDTO.getIdCard().equals(icHouseNewResult.getData().getOwnerIdCard())) {
+ //判断是否是房主
+ result.setIsOwner(NumConstant.ONE_STR);
+ }
+ if (null == icUser) {
throw new EpmetException(EpmetErrorCode.MISMATCH.getCode(),
"人员与房屋信息不匹配,请与工作人员联系。",
"人员与房屋信息不匹配,请与工作人员联系。");
+ } else if (!icUser.getHomeId().equals(formDTO.getHomeId())) {
+ //获取用户当前所在的房屋
+ Result icHouseResult = govOrgOpenFeignClient.get(icUser.getHomeId());
+ if (!icHouseResult.success() || null == icHouseResult.getData()) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+ //判断两个房屋是否是一个房主
+ if (!StringUtils.equals(icHouseResult.getData().getOwnerIdCard(), icHouseNewResult.getData().getOwnerIdCard())) {
+ throw new EpmetException(EpmetErrorCode.MISMATCH.getCode(),
+ "人员与房屋信息不匹配,请与工作人员联系。",
+ "人员与房屋信息不匹配,请与工作人员联系。");
+ } else {
+ result.setIsDiff(NumConstant.ONE_STR);
+ }
}
+
//进入网格(entergrid)流程
EnterGridFormDTO userInfoParams = new EnterGridFormDTO();
userInfoParams.setUserId(formDTO.getUserId());
@@ -151,6 +182,7 @@ public class MyHomeServiceImpl implements MyHomeService {
userResiInfoDTO.setApp("resi");
userResiInfoService.saveResiInfo(userResiInfoDTO);
}
+ return result;
}
/**
@@ -165,20 +197,21 @@ public class MyHomeServiceImpl implements MyHomeService {
@Override
public HomeInfoResultDTO getHomeInfo(TokenDto tokenDto) {
HomeInfoResultDTO resultDto = new HomeInfoResultDTO();
+ //通过用户ID获取居民端用户信息
ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId());
if (null == baseInfo) {
return resultDto;
}
-
+ //通过居民身份证号获取居民信息
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getCustomerId, tokenDto.getCustomerId());
wrapper.eq(IcResiUserEntity::getIdCard, baseInfo.getIdNum());
IcResiUserEntity icUser = icResiUserDao.selectOne(wrapper);
-
if (null == icUser) {
return resultDto;
}
resultDto.setIcResiUserId(icUser.getId());
+ //通过房屋ID获取房屋信息
HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), icUser.getHomeId());
if (null == houseInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
@@ -187,6 +220,123 @@ public class MyHomeServiceImpl implements MyHomeService {
resultDto.setHouseName(houseInfo.getAllName());
resultDto.setHouseCode(houseInfo.getHouseCode());
resultDto.setQrCodeUrl(houseInfo.getHouseQrcodeUrl());
+ //获取房屋房主信息,判断是否是房主
+ Result icHouseResult = govOrgOpenFeignClient.get(icUser.getHomeId());
+ if (!icHouseResult.success() || null == icHouseResult.getData()) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+ if (icUser.getIdCard().equals(icHouseResult.getData().getOwnerIdCard())) {
+ resultDto.setIsOwner(NumConstant.ONE_STR);
+ } else {
+ resultDto.setIsOwner(NumConstant.ZERO_STR);
+ }
+ resultDto.setOwnerIdCard(icHouseResult.getData().getOwnerIdCard());
return resultDto;
}
+
+ /**
+ * 获取房主名下的房屋列表
+ *
+ * @param tokenDto
+ * @Param tokenDto
+ * @Return {@link List< HomeInfoResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/19 16:48
+ */
+ @Override
+ public List getOwnerHouseList(TokenDto tokenDto, IcHouseDTO formDTO) {
+ //通过用户ID获取居民端用户信息
+ ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId());
+ if (null == baseInfo) {
+ return Collections.emptyList();
+ }
+
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setOwnerIdCard(baseInfo.getIdNum());
+ Result> houseResult = govOrgOpenFeignClient.getOwnerHouseList(formDTO);
+ if (!houseResult.success()) {
+ throw new EpmetException(houseResult.getCode(), houseResult.getMsg());
+ }
+ if (CollectionUtils.isEmpty(houseResult.getData())) {
+ return Collections.emptyList();
+ }
+ List list = houseResult.getData().stream().map(item -> {
+ HomeInfoResultDTO result = new HomeInfoResultDTO();
+ result.setHouseId(item.getHomeId());
+ result.setHouseName(item.getAllName());
+ result.setHouseCode(item.getHouseCode());
+ result.setQrCodeUrl(item.getHouseQrcodeUrl());
+ return result;
+ }).collect(Collectors.toList());
+ return list.stream().sorted((o1, o2) ->
+ Collator.getInstance(Locale.SIMPLIFIED_CHINESE)
+ .compare(o1.getHouseName(),o2.getHouseName())).collect(Collectors.toList());
+ }
+
+ /**
+ * 变更绑定的房屋
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @Param tokenDto
+ * @Param formDTO
+ * @Return {@link List< HomeInfoResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2022/7/20 17:25
+ */
+ @Override
+ public void changeHome(TokenDto tokenDto, IcResiUserConfirmSubmitDTO formDTO) {
+ //通过用户ID获取居民端用户信息
+ ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId());
+ if (null == baseInfo) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败");
+ }
+ //通过居民身份证号获取居民信息
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(IcResiUserEntity::getCustomerId, tokenDto.getCustomerId());
+ wrapper.eq(IcResiUserEntity::getIdCard, baseInfo.getIdNum());
+ IcResiUserEntity icUser = icResiUserDao.selectOne(wrapper);
+ if (null == icUser) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息失败", "获取居民信息失败");
+ }
+
+ //通过房屋ID获取房屋信息
+ HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), formDTO.getHomeId());
+ if (null == houseInfo) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
+ }
+ GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(houseInfo.getGridId());
+ if (null == gridInfo) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格信息失败", "获取网格信息失败");
+ }
+ //在添加调动记录的时候调整
+ icUser.setAgencyId(houseInfo.getAgencyId());
+ icUser.setPids(gridInfo.getPids());
+ icUser.setGridId(houseInfo.getGridId());
+ icUser.setVillageId(houseInfo.getNeighborHoodId());
+ icUser.setBuildId(houseInfo.getBuildingId());
+ icUser.setUnitId(houseInfo.getBuildingUnitId());
+ icUser.setHomeId(houseInfo.getHomeId());
+ icUser.setUpdatedTime(new java.util.Date());
+
+ //添加人员调动记录
+ IcResiUserTransferFormDTO transferDTO = new IcResiUserTransferFormDTO();
+ transferDTO.setCustomerId(tokenDto.getCustomerId());
+ transferDTO.setStaffId(tokenDto.getUserId());
+ transferDTO.setIcUserId(icUser.getId());
+ transferDTO.setType("in");
+ transferDTO.setNewAgencyId(houseInfo.getAgencyId());
+ transferDTO.setNewGridId(houseInfo.getGridId());
+ transferDTO.setNewNeighborHoodId(houseInfo.getNeighborHoodId());
+ transferDTO.setNewBuildingId(houseInfo.getBuildingId());
+ transferDTO.setNewBuildingUnitId(houseInfo.getBuildingUnitId());
+ transferDTO.setNewHouseId(houseInfo.getHomeId());
+ transferDTO.setTransferTime(new java.util.Date());
+ transferDTO.setRemark("更换房屋");
+ transferDTO.setReason("更换房屋");
+ transferDTO.setOrigin(IcResiUserConstant.CHANGE);
+ icUserTransferRecordService.add(transferDTO);
+ //更新家庭成员信息
+ icResiUserDao.updateById(icUser);
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
index c71227da0d..9b5b072806 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
@@ -445,7 +445,8 @@
id_card,
mobile,
agency_id,
- grid_id
+ grid_id,
+ home_id
FROM
ic_resi_user
WHERE