diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 5673b272f1..65a6e645e2 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -70,6 +70,8 @@ public enum EpmetErrorCode { NOT_DEL_AGENCY_PER(8205, "该机关存在工作人员,不允许删除"), NOT_DEL_DEPARTMENT(8206, "该部门存在工作人员,不允许删除"), NOT_DEL_AGENCY_GRID(8207, "该机关存在网格,不允许删除"), + AREA_CODE_ALREADY_EXISTS(8208,"组织区划已被占用,请重新选择"), + AGENCY_NAME_ALREADY_EXISTS(8209,"您当前的组织名称已存在,请重新修改"), REQUIRE_PERMISSION(8301, "您没有足够的操作权限"), THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"), diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java index 70f42dc1e2..07604c401d 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java @@ -23,4 +23,7 @@ public interface DataSourceConstant { */ String EPMET_USER = "epmetuser"; + String EPMET_COMMON_SERVICE="commonservice"; + + String OPER_CRM="opercrm"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java index 4b98fb899f..cea8221c31 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerAgencyDTO.java @@ -114,17 +114,17 @@ public class CustomerAgencyDTO implements Serializable { private Integer totalUser; /** - * 省份 + * 区域编码字典中的【省份】名称 */ - private String province; + private String province; /** - * 城市 + * 区域编码字典中的【城市】名称 */ - private String city; - + private String city; + /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district; @@ -132,4 +132,14 @@ public class CustomerAgencyDTO implements Serializable { * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 */ private String parentAreaCode; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java new file mode 100644 index 0000000000..ad3783df46 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:55 + */ +@Data +public class NextAreaCodeFormDTO implements Serializable { + private static final long serialVersionUID = -1974456701949979946L; + + @NotBlank(message = "areaCode不能为空") + private String areaCode; + + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + @NotBlank(message = "level不能为空") + private String level; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java new file mode 100644 index 0000000000..ef2db07581 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/NextAreaCodeResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:56 + */ +@Data +public class NextAreaCodeResultDTO implements Serializable { + private static final long serialVersionUID = 9188265480821079966L; + + private String areaCode; + private String areaName; + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + private String level; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index c1e47d3b7e..7b74f08a23 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -143,6 +143,20 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + + + + + + epmet_oper_crm_user + EpmEt-db-UsEr + 0 192.168.1.130 @@ -210,6 +224,20 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + + + + + + epmet_oper_crm_user + EpmEt-db-UsEr + 0 192.168.1.130 @@ -277,6 +305,20 @@ epmet elink@833066 + + + + + epmet + elink@833066 + + + + + + epmet + elink@833066 + 0 r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com @@ -344,6 +386,20 @@ epmet_user_user EpmEt-db-UsEr + + + + + epmet_common_service_user + EpmEt-db-UsEr + + + + + + epmet_oper_crm_user + EpmEt-db-UsEr + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index aebb23a8b5..262aff38c3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -3,13 +3,19 @@ package com.epmet.dataaggre.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import com.epmet.dataaggre.service.govorg.GovOrgService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @Author zxc * @DateTime 2020/12/25 上午9:45 @@ -34,4 +40,15 @@ public class GovOrgController { return new Result().ok(agencyGridList); } + /** + * @param formDTO + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:01 + **/ + @PostMapping("nextlevelareacodelist") + public Result> queryNextLevelAreaCodeList(@RequestBody NextAreaCodeFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(govOrgService.queryNextLevelAreaCodeList(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java new file mode 100644 index 0000000000..0de5235518 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/commonservice/AreaCodeDao.java @@ -0,0 +1,39 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.dao.commonservice; + +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-01-07 + */ +@Mapper +public interface AreaCodeDao { + + List selectCityList(String areaCode); + + List selectDistrictList(String areaCode); + + List selectStreetList(String areaCode); + + List selectCommunityList(String areaCode); +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index 445baf2477..fc33ce00bb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -47,4 +47,6 @@ public interface CustomerAgencyDao extends BaseDao { * @date 2020/12/25 下午4:55 */ String getAgencyIdByUserId(@Param("userId") String userId); + + List selectUsedAreaCodeList(@Param("parentAreaCode") String parentAreaCode); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercrm/CustomerRelationDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercrm/CustomerRelationDao.java new file mode 100644 index 0000000000..ed7aef852a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercrm/CustomerRelationDao.java @@ -0,0 +1,16 @@ +package com.epmet.dataaggre.dao.opercrm; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/13 10:43 + */ +@Mapper +public interface CustomerRelationDao { + List selectUsedAreaCodeList(String areaCode); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java index 79f226ca2f..b12cd2112a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerAgencyEntity.java @@ -80,17 +80,17 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { private Integer totalUser; /** - * 省份 + * 区域编码字典中的【省份】名称 */ private String province; /** - * 城市 + * 区域编码字典中的【城市】名称 */ private String city; /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district; @@ -98,4 +98,14 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 */ private String parentAreaCode; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java index c0d80a3d9f..74d4ceddc9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerDepartmentEntity.java @@ -60,4 +60,8 @@ public class CustomerDepartmentEntity extends BaseEpmetEntity { */ private Integer totalUser; + /** + * 部门所属的行政地区编码:实际就是所属组织的地区编码 + */ + private String areaCode; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java new file mode 100644 index 0000000000..c9ebb57d5e --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/AreaCodeService.java @@ -0,0 +1,23 @@ +package com.epmet.dataaggre.service.commonservice; + +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; + +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:45 + */ +public interface AreaCodeService { + /** + * @return java.util.List + * @param formDTO + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:02 + **/ + List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java new file mode 100644 index 0000000000..ed6ce54264 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/commonservice/impl/AreaCodeServiceImpl.java @@ -0,0 +1,75 @@ +package com.epmet.dataaggre.service.commonservice.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.commonservice.AreaCodeDao; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import com.epmet.dataaggre.service.commonservice.AreaCodeService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/12 15:46 + */ +@DataSource(DataSourceConstant.EPMET_COMMON_SERVICE) +@Slf4j +@Service +public class AreaCodeServiceImpl implements AreaCodeService { + + @Autowired + private AreaCodeDao areaCodeDao; + + /** + * @param formDTO + * @return java.util.List + * @author yinzuomei + * @description 新增组织-查询下一级可选的组织区划 + * @Date 2021/4/12 16:02 + **/ + @Override + public List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) { + List list = new ArrayList<>(); + NextAreaCodeResultDTO other = new NextAreaCodeResultDTO(); + other.setAreaCode("other"); + other.setAreaName("其它"); + switch (formDTO.getLevel()) { + /** + * 社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province + */ + case "province": + list = areaCodeDao.selectCityList(formDTO.getAreaCode()); + other.setLevel("city"); + break; + case "city": + list = areaCodeDao.selectDistrictList(formDTO.getAreaCode()); + other.setLevel("district"); + break; + case "district": + list = areaCodeDao.selectStreetList(formDTO.getAreaCode()); + other.setLevel("street"); + break; + case "street": + list = areaCodeDao.selectCommunityList(formDTO.getAreaCode()); + other.setLevel("community"); + break; + default: + } + if (CollectionUtils.isNotEmpty(list)) { + list.add(other); + } + return list; + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index c0b7fff4bd..7d9fc8f339 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,8 +1,10 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import java.util.List; @@ -42,4 +44,5 @@ public interface GovOrgService { */ String getAgencyIdByUserId(String userId); + List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 7b3314f5dc..5006efd5f7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; @@ -8,17 +9,24 @@ import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerGridDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; +import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.service.commonservice.AreaCodeService; import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dataaggre.service.opercrm.CustomerRelation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; /** @@ -37,7 +45,10 @@ public class GovOrgServiceImpl implements GovOrgService { private CustomerStaffAgencyDao customerStaffAgencyDao; @Autowired private CustomerGridDao customerGridDao; - + @Autowired + private AreaCodeService areaCodeService; + @Autowired + private CustomerRelation customerRelation; /** * @param staffId @@ -120,5 +131,68 @@ public class GovOrgServiceImpl implements GovOrgService { return customerAgencyDao.getAgencyIdByUserId(userId); } + @Override + public List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) { + //全部下级 + List allList = areaCodeService.queryNextLevelAreaCodeList(formDTO); + if (CollectionUtils.isNotEmpty(allList)) { + //内部客户: 已经被使用过的areaCode + List usedAreaCodeList1 = customerAgencyDao.selectUsedAreaCodeList(formDTO.getAreaCode()); + //外部子客户: + List usedAreaCodeList2= customerRelation.selectUsedAreaCodeList(formDTO.getAreaCode()); + //已经被使用的移除不显示 + Iterator iterator = allList.iterator(); + while (iterator.hasNext()) { + NextAreaCodeResultDTO next = iterator.next(); + for (String usedAreaCode1 : usedAreaCodeList1) { + if (next.getAreaCode().equals(usedAreaCode1)) { + iterator.remove(); + } + } + for (String usedAreaCode2 : usedAreaCodeList2) { + if (next.getAreaCode().contains(usedAreaCode2)) { + iterator.remove(); + } + } + } + } + return allList; + } + + public static void main(String[] args) { + List allList = new ArrayList<>(); + NextAreaCodeResultDTO m1 = new NextAreaCodeResultDTO(); + m1.setAreaCode("1"); + m1.setAreaName("a"); + allList.add(m1); + + NextAreaCodeResultDTO m2 = new NextAreaCodeResultDTO(); + m2.setAreaCode("2"); + m2.setAreaName("b"); + allList.add(m2); + + + NextAreaCodeResultDTO m3 = new NextAreaCodeResultDTO(); + m3.setAreaCode("3"); + m3.setAreaName("c"); + allList.add(m3); + + List stringList = new ArrayList<>(); + stringList.add("1"); + stringList.add("2"); + + Iterator iterator = allList.iterator(); + while (iterator.hasNext()) { + NextAreaCodeResultDTO next = iterator.next(); + for (String usedAreaCode : stringList) { + if (next.getAreaCode().equals(usedAreaCode)) { + iterator.remove(); + } + } + + } + System.out.println(JSON.toJSONString(allList, true)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/CustomerRelation.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/CustomerRelation.java new file mode 100644 index 0000000000..af0dc94e88 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/CustomerRelation.java @@ -0,0 +1,13 @@ +package com.epmet.dataaggre.service.opercrm; + +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/13 10:38 + */ +public interface CustomerRelation { + List selectUsedAreaCodeList(String areaCode); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/impl/CustomerRelationImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/impl/CustomerRelationImpl.java new file mode 100644 index 0000000000..045232e1a7 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercrm/impl/CustomerRelationImpl.java @@ -0,0 +1,30 @@ +package com.epmet.dataaggre.service.opercrm.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.opercrm.CustomerRelationDao; +import com.epmet.dataaggre.service.opercrm.CustomerRelation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/13 10:38 + */ +@DataSource(DataSourceConstant.OPER_CRM) +@Slf4j +@Service +public class CustomerRelationImpl implements CustomerRelation { + @Autowired + private CustomerRelationDao customerRelationDao; + + @Override + public List selectUsedAreaCodeList(String areaCode) { + return customerRelationDao.selectUsedAreaCodeList(areaCode); + } +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml index 50e01db7ee..6e27140e97 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml @@ -119,7 +119,16 @@ dynamic: url: @datasource.druid.epmetuser.url@ username: @datasource.druid.epmetuser.username@ password: @datasource.druid.epmetuser.password@ - + commonservice: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.commonservice.url@ + username: @datasource.druid.commonservice.username@ + password: @datasource.druid.commonservice.password@ + opercrm: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.opercrm.url@ + username: @datasource.druid.opercrm.username@ + password: @datasource.druid.opercrm.password@ feign: hystrix: enabled: true diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml new file mode 100644 index 0000000000..ae56a91b6a --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/commonservice/AreaCodeDao.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index aece51edb3..f27f969e31 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -22,4 +22,13 @@ SELECT AGENCY_ID FROM customer_staff_agency WHERE DEL_FLAG = 0 AND USER_ID = #{userId} + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercrm/CustomerRelationDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercrm/CustomerRelationDao.xml new file mode 100644 index 0000000000..5c0ec4f533 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercrm/CustomerRelationDao.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java index eaf0c0d52a..4f5f964710 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java @@ -80,17 +80,17 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { private Integer totalUser; /** - * 省份 + * 区域编码字典中的【省份】名称 */ private String province; /** - * 城市 + * 区域编码字典中的【城市】名称 */ private String city; /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district; @@ -98,4 +98,14 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { * 当前组织的上级行政地区编码add0204;举例平阴县370124对应的是济南市3701 */ private String parentAreaCode; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; } diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AddAreaCodeFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AddAreaCodeFormDTO.java new file mode 100644 index 0000000000..349e6f89e3 --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AddAreaCodeFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/13 14:36 + */ +@Data +public class AddAreaCodeFormDTO implements Serializable { + + @NotBlank(message = "currentAreaLevel不能为空") + private String currentAreaLevel; + @NotBlank(message = "parentAreaCode不能为空") + private String parentAreaCode; + + /** + * 新增的街道或者社区名称 + */ + @NotBlank(message = "name不能为空") + private String name; +} 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 296489af6e..73647960c3 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 @@ -113,4 +113,14 @@ public interface EpmetCommonServiceOpenFeignClient { **/ @PostMapping(value = "commonservice/areacode/addstreetcommareacode", consumes = MediaType.APPLICATION_JSON_VALUE) Result addStreetCommAreaCode(@RequestBody AddAreaCodeDictFormDTO formDTO); + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 自定义行政地区编码 + * @Date 2021/4/13 14:31 + **/ + @PostMapping(value = "commonservice/areacode/addareacode", consumes = MediaType.APPLICATION_JSON_VALUE) + Result addAreaCode(AddAreaCodeFormDTO 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 95edcea67b..ad86e16c37 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 @@ -99,4 +99,16 @@ public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonSer public Result addStreetCommAreaCode(AddAreaCodeDictFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "addStreetCommAreaCode", formDTO); } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 自定义行政地区编码 + * @Date 2021/4/13 14:31 + **/ + @Override + public Result addAreaCode(AddAreaCodeFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "addAreaCode", formDTO); + } } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java index 3ee44fec5f..1768f08c37 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/AreaCodeConstant.java @@ -26,4 +26,8 @@ public interface AreaCodeConstant { String LEVEL_ERROR = "RootAreaLevel填写错误【%s】"; + String FIRST_THREE_UD="001_UD"; + + String FIRST_TOW_UD="01_UD"; + String UD="_UD"; } 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 af8ecf093f..df821f7410 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 @@ -26,6 +26,7 @@ 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.result.AreaCodeDictResultDTO; import com.epmet.service.AreaCodeService; @@ -107,4 +108,17 @@ public class AreaCodeController { ValidatorUtils.validateEntity(formDTO); return new Result().ok(areaCodeService.addStreetCommAreaCode(formDTO)); } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 自定义行政地区编码-产品自身使用 + * @Date 2021/4/13 14:40 + **/ + @PostMapping(value = "addareacode") + Result addAreaCode(@RequestBody AddAreaCodeFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(areaCodeService.addAreaCode(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 a5496cecc4..54b89ee82f 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 @@ -36,4 +36,8 @@ public interface AreaCodeDao extends BaseDao { List selectAllArea(); AreaCodeDTO selectByCountyCode(String countyCode); + + AreaCodeDTO selectByCityCode(String cityCode); + + AreaCodeDTO selectMaxCounty(String cityCode); } \ 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 415712de43..99c25ab2f2 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 @@ -21,6 +21,7 @@ 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.result.AreaCodeDictResultDTO; import com.epmet.entity.AreaCodeEntity; @@ -113,4 +114,13 @@ public interface AreaCodeService extends BaseService { * @Date 2021/2/5 17:39 **/ String addStreetCommAreaCode(AddAreaCodeDictFormDTO formDTO); + + /** + * @return java.lang.String + * @param formDTO + * @author yinzuomei + * @description 自定义行政地区编码 + * @Date 2021/4/13 14:40 + **/ + String addAreaCode(AddAreaCodeFormDTO 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 f34ff30605..29cfc457aa 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 @@ -34,6 +34,7 @@ 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.result.AreaCodeDictResultDTO; import com.epmet.entity.AreaCodeEntity; @@ -588,7 +589,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl select * from area_code m where m.COUNTY_CODE=#{countyCode} + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java index ea30dbd600..5a7ad8fc85 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerAgencyDTO.java @@ -114,17 +114,17 @@ public class CustomerAgencyDTO implements Serializable { private Integer totalUser; /** - * 省份 + * 区域编码字典中的【省份】名称 */ - private String province; + private String province; /** - * 城市 + * 区域编码字典中的【城市】名称 */ - private String city; - + private String city; + /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district; @@ -132,4 +132,14 @@ public class CustomerAgencyDTO implements Serializable { * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 */ private String parentAreaCode; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerOrgParameterDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerOrgParameterDTO.java new file mode 100644 index 0000000000..8710b66d01 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerOrgParameterDTO.java @@ -0,0 +1,96 @@ +/** + * 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; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 客户组织相关参数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-04-12 + */ +@Data +public class CustomerOrgParameterDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 参数键 eg:area_code_switch + */ + private String parameterKey; + + /** + * 参数名 eg:是否开启区域编码 + */ + private String parameterName; + + /** + * 参数值 eg:开启:open;关闭:closed + */ + private String parameterValue; + + /** + * 参数说明 eg:open:当前客户新增组织需要选择areaCode;closed: 无需选择区域编码 + */ + private String description; + + /** + * 删除标志 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddAgencyV2FormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddAgencyV2FormDTO.java new file mode 100644 index 0000000000..bf29a4aede --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AddAgencyV2FormDTO.java @@ -0,0 +1,86 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 添加组织V2 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/13 11:08 + */ +@Data +public class AddAgencyV2FormDTO implements Serializable { + private static final long serialVersionUID = -8951334902226679043L; + + public interface AddUserInternalGroup { + } + + public interface DefaultUserShowGroup extends CustomerClientShowGroup { + } + + public interface AreaCodeGroup extends CustomerClientShowGroup { + } + + + @NotBlank(message = "上级组织ID不能为空", groups = AddUserInternalGroup.class) + private String parentAgencyId; + + /** + * 机构组织名称 + */ + @NotBlank(message = "组织名称不能为空", groups = DefaultUserShowGroup.class) + @Length(max = 50, message = "组织名称不能超过50个字", groups = DefaultUserShowGroup.class) + private String agencyName; + + /** + * 机关级别(社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province) + */ + @NotBlank(message = "组织级别不能为空;社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province", groups = AddUserInternalGroup.class) + private String level; + + /** + * open: 选择地区编码必填;closed: 无需选择地区编码;0409新增返参 + */ + @NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class) + private String areaCodeSwitch; + + /** + * 地区编码 + */ + @NotBlank(message = "请选择组织区划", groups = AreaCodeGroup.class) + private String areaCode; + + /** + * 省份 + */ + private String province; + + /** + * 城市 + */ + private String city; + + /** + * 区县 + */ + private String district; + + /** + * 区域编码字典中的【街道】名称;来源于【/data/aggregator/org/nextlevelareacodelist】接口里的areaName + */ + private String street; + + /** + * 区域编码字典中的【社区】名称;来源于【/data/aggregator/org/nextlevelareacodelist】接口里的areaName + */ + private String community; +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AddAgencyResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AddAgencyResultDTO.java index bd8d994b8a..c77356968d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AddAgencyResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AddAgencyResultDTO.java @@ -33,8 +33,18 @@ public class AddAgencyResultDTO implements Serializable { private static final long serialVersionUID = 1L; /** - * 机关组织Id + * 新添加的组织Id */ - private String agencyId = ""; + private String agencyId; + + /** + * 新添加的组织地区编码 + */ + private String areaCode; + + /** + * open: 选择地区编码必填;closed: 无需选择地区编码;0409新增返参 + */ + private String areaCodeSwitch; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencysResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencysResultDTO.java index 4b819ec2b5..a3c7bf0413 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencysResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencysResultDTO.java @@ -58,17 +58,17 @@ public class AgencysResultDTO implements Serializable { private String areaCode = ""; /** - * 省份 + * 区域编码字典中的【省份】名称 */ private String province = ""; /** - * 城市 + * 区域编码字典中的【城市】名称 */ private String city = ""; /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district = ""; @@ -76,4 +76,24 @@ public class AgencysResultDTO implements Serializable { * 本机关的所有上级机关 */ private List parentList; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; + + /** + * open: 选择地区编码必填;closed: 无需选择地区编码;;0409新增返参 + */ + private String areaCodeSwitch; + + /** + * 组织区划的名称 + */ + private String areaName; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 595c20f348..7644b56007 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -101,6 +101,12 @@ epmet-commons-rocketmq 2.0.0 + + com.epmet + common-service-client + 2.0.0 + compile + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java index da89288f00..d738d662f8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java @@ -26,6 +26,15 @@ public interface CustomerAgencyConstant { * 机关级别-市级 */ String CITY_LEVEL = "city"; + + // 社区级:community, + String COMMUNITY_LEVEL="community"; + + // 乡(镇、街道)级:street, + String STREET_LEVEL="street"; + + // 区县级: district, + String DISTRICT="district"; /** * 市级名称不能为空 */ @@ -71,4 +80,13 @@ public interface CustomerAgencyConstant { * 获取工作人员组织信息失败 */ String SELECT_STAFF_AGENCY_EXCEPTION = "获取工作人员组织信息失败"; + + /** + * 参数(area_code_switch)值open: 选择地区编码必填;closed: + */ + String AREA_CODE_SWITCH="area_code_switch"; + + String AREA_CODE_SWITCH_CLOSED="closed"; + + String AREA_CODE_SWITCH_OPEN="open"; } 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 08154a921d..74e095de3e 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 @@ -33,6 +33,7 @@ import com.epmet.dto.result.AgencysResultDTO; import com.epmet.dto.result.SubAgencyResultDTO; import com.epmet.entity.CustomerAgencyEntity; import com.epmet.service.AgencyService; +import com.epmet.service.CustomerAgencyService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -54,6 +55,8 @@ public class AgencyController { @Autowired private AgencyService agencyService; + @Autowired + private CustomerAgencyService customerAgencyService; /** * @param formDTO @@ -81,6 +84,25 @@ public class AgencyController { return agencyService.addAgency(formDTO); } + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 添加组织V2 + * @Date 2021/4/13 11:09 + **/ + @PostMapping("addagency-v2") + @RequirePermission(requirePermission = RequirePermissionEnum.ORG_SUBAGENCY_CREATE) + public Result addAgencyV2(@RequestBody AddAgencyV2FormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.DefaultUserShowGroup.class, AddAgencyV2FormDTO.AddUserInternalGroup.class); + if (formDTO.getAreaCodeSwitch().equals(CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN)) { + ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.AreaCodeGroup.class); + } + //组织名称是否存在 + customerAgencyService.checkAgencyName(formDTO.getAgencyName()); + return new Result().ok(agencyService.addAgencyV2(formDTO)); + } + /** * 添加根级组织 * @param form 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 c304943b30..f9742f72e3 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 @@ -224,4 +224,6 @@ public interface CustomerAgencyDao extends BaseDao { * @Date 2020/12/15 10:04 **/ int delByAgencyId(@Param("agencyId") String agencyId, @Param("operateUserId") String operateUserId); + + List selectAgencyIdsByAreaCode(String areaCode); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerOrgParameterDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerOrgParameterDao.java new file mode 100644 index 0000000000..ccbde93bda --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerOrgParameterDao.java @@ -0,0 +1,43 @@ +/** + * 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.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.CustomerOrgParameterEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 客户组织相关参数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-04-12 + */ +@Mapper +public interface CustomerOrgParameterDao extends BaseDao { + + /** + * @return com.epmet.entity.CustomerOrgParameterEntity + * @param customerId + * @param parameterKey + * @author yinzuomei + * @description 根据customerId查询参数(area_code_switch)值 + * @Date 2021/4/12 14:26 + **/ + CustomerOrgParameterEntity selectByCustomerId(@Param("customerId") String customerId, @Param("parameterKey") String parameterKey); +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerAgencyEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerAgencyEntity.java index 5306281a03..91852ac516 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerAgencyEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerAgencyEntity.java @@ -80,17 +80,17 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { private Integer totalUser; /** - * 省份 + * 区域编码字典中的【省份】名称 */ private String province; /** - * 城市 + * 区域编码字典中的【城市】名称 */ private String city; /** - * 区县 + * 区域编码字典中的【区县】名称 */ private String district; @@ -98,4 +98,14 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 */ private String parentAreaCode; + + /** + * 区域编码字典中的【街道】名称0409 + */ + private String street; + + /** + * 区域编码字典中的【社区】名称0409 + */ + private String community; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java index ba9b1ddcd5..cb54609d3f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerDepartmentEntity.java @@ -60,4 +60,8 @@ public class CustomerDepartmentEntity extends BaseEpmetEntity { */ private Integer totalUser; + /** + * 部门所属的行政地区编码:实际就是所属组织的地区编码 + */ + private String areaCode; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerOrgParameterEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerOrgParameterEntity.java new file mode 100644 index 0000000000..489118f7c8 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerOrgParameterEntity.java @@ -0,0 +1,66 @@ +/** + * 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.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 客户组织相关参数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-04-12 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("customer_org_parameter") +public class CustomerOrgParameterEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 参数键 eg:area_code_switch + */ + private String parameterKey; + + /** + * 参数名 eg:是否开启区域编码 + */ + private String parameterName; + + /** + * 参数值 eg:开启:open;关闭:closed + */ + private String parameterValue; + + /** + * 参数说明 eg:open:当前客户新增组织需要选择areaCode;closed: 无需选择区域编码 + */ + private String description; + +} 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 2eb012ca11..381fb7256a 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 @@ -108,4 +108,13 @@ public interface AgencyService { * @Date 2020/7/16 17:13 **/ void saveRootAgency(AddAgencyAndStaffFormDTO agencyAndStaff); + + /** + * 添加组织V2 + * + * @param formDTO rule id + * @return com.epmet.dto.result.AddAgencyResultDTO + */ + AddAgencyResultDTO addAgencyV2(AddAgencyV2FormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index 8051ca63f5..464c46c8dc 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -234,4 +234,6 @@ public interface CustomerAgencyService extends BaseService * @author sun **/ OrganizeTreeResultDTO organizeTree(String agencyId); + + void checkAgencyName(String agencyName); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerOrgParameterService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerOrgParameterService.java new file mode 100644 index 0000000000..a57bdc26a1 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerOrgParameterService.java @@ -0,0 +1,104 @@ +/** + * 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.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.CustomerOrgParameterDTO; +import com.epmet.entity.CustomerOrgParameterEntity; + +import java.util.List; +import java.util.Map; + +/** + * 客户组织相关参数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-04-12 + */ +public interface CustomerOrgParameterService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2021-04-12 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2021-04-12 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return CustomerOrgParameterDTO + * @author generator + * @date 2021-04-12 + */ + CustomerOrgParameterDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2021-04-12 + */ + void save(CustomerOrgParameterDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2021-04-12 + */ + void update(CustomerOrgParameterDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2021-04-12 + */ + void delete(String[] ids); + + /** + * @return java.lang.String + * @param customerId + * @author yinzuomei + * @description 根据customerId查询参数(area_code_switch)值open: 选择地区编码必填;closed: 无需选择地区编码;;0409新增返参;没配置,返回closed + * @Date 2021/4/12 14:23 + **/ + String getAreaCodeSwitch(String customerId); +} \ No newline at end of file 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 f507af7c29..40e81e9ff5 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 @@ -19,6 +19,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.user.LoginUserUtil; @@ -33,10 +34,13 @@ import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.redis.CustomerAgencyRedis; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; +import com.epmet.service.CustomerOrgParameterService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +49,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; /** * 机关单位信息 @@ -70,6 +77,12 @@ public class AgencyServiceImpl implements AgencyService { private CustomerGridDao customerGridDao; @Autowired private LoginUserUtil loginUserUtil; + @Autowired + private CustomerOrgParameterService customerOrgParameterService; + @Autowired + private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; + + /** * @param formDTO * @return @@ -235,6 +248,29 @@ public class AgencyServiceImpl implements AgencyService { List listStr = Arrays.asList(entity.getPids().split(":")); parentList = customerAgencyDao.selectPAgencyById(listStr); agencysResultDTO.setParentList(parentList); + agencysResultDTO.setAreaCodeSwitch(customerOrgParameterService.getAreaCodeSwitch(entity.getCustomerId())); + //查询组织区划的名称 + if (null != entity && StringUtils.isNotBlank(entity.getAreaCode())) { + switch (entity.getLevel()) { + case CustomerAgencyConstant.PROVINCE_LEVEL: + agencysResultDTO.setAgencyName(entity.getProvince()); + break; + case CustomerAgencyConstant.CITY_LEVEL: + agencysResultDTO.setAgencyName(entity.getCity()); + break; + case CustomerAgencyConstant.DISTRICT: + agencysResultDTO.setAgencyName(entity.getDistrict()); + break; + case CustomerAgencyConstant.STREET_LEVEL: + agencysResultDTO.setAgencyName(entity.getStreet()); + break; + case CustomerAgencyConstant.COMMUNITY_LEVEL: + agencysResultDTO.setAgencyName(entity.getCommunity()); + break; + default: + agencysResultDTO.setAgencyName(StrConstant.EPMETY_STR); + } + } return new Result().ok(agencysResultDTO); } @@ -380,4 +416,62 @@ public class AgencyServiceImpl implements AgencyService { } + /** + * 添加组织V2 + * + * @param formDTO rule id + * @return com.epmet.dto.result.AddAgencyResultDTO + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AddAgencyResultDTO addAgencyV2(AddAgencyV2FormDTO formDTO) { + CustomerAgencyDTO parent = customerAgencyService.get(formDTO.getParentAgencyId()); + if (null == parent) { + throw new RenException(String.format("添加组织失败:没有找到跟组织信息,parentAgencyId=%s", formDTO.getParentAgencyId())); + } + AddAgencyResultDTO resultDTO = new AddAgencyResultDTO(); + resultDTO.setAreaCodeSwitch(formDTO.getAreaCodeSwitch()); + //判断areaCodeSwitch:open: 选择地区编码必填;closed: 无需选择地区编码 + CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); + insertEntity.setOrganizationName(formDTO.getAgencyName()); + insertEntity.setTotalUser(NumConstant.ZERO); + insertEntity.setPid(parent.getId()); + insertEntity.setCustomerId(parent.getCustomerId()); + insertEntity.setParentAreaCode(parent.getAreaCode()); + if (StringUtils.isBlank(parent.getPid()) || NumConstant.ZERO_STR.equals(parent.getPid())) { + //如果上级是根级组织 + insertEntity.setPids(parent.getId()); + insertEntity.setAllParentName(parent.getOrganizationName()); + } else { + insertEntity.setPids(parent.getPids().concat(StrConstant.COLON).concat(parent.getId())); + insertEntity.setAllParentName(parent.getAllParentName().concat(StrConstant.HYPHEN).concat(parent.getOrganizationName())); + } + if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) { + //校验areaCode是否被使用过 + if (!"other".equals(formDTO.getAreaCode())) { + List agencyIds = customerAgencyDao.selectAgencyIdsByAreaCode(insertEntity.getAreaCode()); + if (CollectionUtils.isNotEmpty(agencyIds)) { + //已经被占用,提示 + throw new RenException(EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getCode(), EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getMsg()); + } + }else{ + //如果选择的是other,需要自定义一个编码 + AddAreaCodeFormDTO addAreaCodeFormDTO = new AddAreaCodeFormDTO(); + addAreaCodeFormDTO.setCurrentAreaLevel(formDTO.getLevel()); + addAreaCodeFormDTO.setParentAreaCode(parent.getAreaCode()); + addAreaCodeFormDTO.setName(formDTO.getAgencyName()); + Result addAreaCodeResult = epmetCommonServiceOpenFeignClient.addAreaCode(addAreaCodeFormDTO); + if (!addAreaCodeResult.success() || StringUtils.isBlank(addAreaCodeResult.getData())) { + throw new RenException("自定义area_code异常" + addAreaCodeResult.getInternalMsg()); + } + insertEntity.setAreaCode(addAreaCodeResult.getData()); + } + } + customerAgencyDao.insert(insertEntity); + //3:返回新组织Id + resultDTO.setAgencyId(insertEntity.getId()); + resultDTO.setAreaCode(StrConstant.EPMETY_STR); + return resultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index bc91668e7c..dc81a51b47 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; @@ -40,6 +41,7 @@ import com.epmet.feign.OperCrmFeignClient; import com.epmet.redis.CustomerAgencyRedis; import com.epmet.service.CustomerAgencyService; import com.epmet.util.ModuleConstant; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1057,4 +1059,14 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(agencyName), "ORGANIZATION_NAME", agencyName); + List entityList = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(entityList)) { + throw new RenException(EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getCode(), EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getMsg()); + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 8302b1252f..81ef5efbb6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; 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.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; @@ -244,6 +245,10 @@ public class CustomerGridServiceImpl extends BaseServiceImpl + * 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.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.constant.CustomerAgencyConstant; +import com.epmet.dao.CustomerOrgParameterDao; +import com.epmet.dto.CustomerOrgParameterDTO; +import com.epmet.entity.CustomerOrgParameterEntity; +import com.epmet.service.CustomerOrgParameterService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 客户组织相关参数表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-04-12 + */ +@Service +public class CustomerOrgParameterServiceImpl extends BaseServiceImpl implements CustomerOrgParameterService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, CustomerOrgParameterDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, CustomerOrgParameterDTO.class); + } + + 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); + + return wrapper; + } + + @Override + public CustomerOrgParameterDTO get(String id) { + CustomerOrgParameterEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, CustomerOrgParameterDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(CustomerOrgParameterDTO dto) { + CustomerOrgParameterEntity entity = ConvertUtils.sourceToTarget(dto, CustomerOrgParameterEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(CustomerOrgParameterDTO dto) { + CustomerOrgParameterEntity entity = ConvertUtils.sourceToTarget(dto, CustomerOrgParameterEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param customerId + * @return java.lang.String + * @author yinzuomei + * @description 根据customerId查询参数(area_code_switch)值open: 选择地区编码必填;closed: 无需选择地区编码;;0409新增返参;没配置,返回closed + * @Date 2021/4/12 14:23 + **/ + @Override + public String getAreaCodeSwitch(String customerId) { + CustomerOrgParameterEntity entity = baseDao.selectByCustomerId(customerId, CustomerAgencyConstant.AREA_CODE_SWITCH); + if (null == entity || StringUtils.isBlank(entity.getParameterValue())) { + return CustomerAgencyConstant.AREA_CODE_SWITCH_CLOSED; + } + return entity.getParameterValue(); + } + +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java index 5b53e49d0b..41d87332ed 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java @@ -18,6 +18,7 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; @@ -90,6 +91,8 @@ public class DepartmentServiceImpl implements DepartmentService { //1:查询当前组织机构信息,获取客户Id CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); entity.setCustomerId(parentEntity.getCustomerId()); + //新增area_code,部门的area_code=所属组织的area_code + entity.setAreaCode(null!=parentEntity&&StringUtils.isNotBlank(parentEntity.getAreaCode())?parentEntity.getAreaCode(): StrConstant.EPMETY_STR); //2:保存部门信息 if (customerDepartmentDao.insert(entity) < NumConstant.ONE) { log.error(CustomerDepartmentConstant.SAVE_EXCEPTION); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/logback-spring.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/logback-spring.xml index 24d44d88f9..6c2d82a05b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/logback-spring.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/logback-spring.xml @@ -128,14 +128,14 @@ 15 - + 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 87f00d6652..27d446f644 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 @@ -399,4 +399,14 @@ UPDATED_TIME=NOW() where id=#{agencyId} + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerOrgParameterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerOrgParameterDao.xml new file mode 100644 index 0000000000..7e5cc8da13 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerOrgParameterDao.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file