diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java index 1c047dd32a..7b3ff97ed8 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java @@ -72,4 +72,21 @@ public class EditAgencyFormDTO implements Serializable { */ private String mobile; + /** + * open: 选择地区编码必填;closed: 无需选择地区编码;0409新增返参 + */ + @NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class) + private String areaCodeSwitch; + + /** + * 组织区划代码 + */ + private String areaCode; + /** + * 父级组织编码 + */ + private String parentAreaCode; + + @NotBlank(message = "组织级别不能为空;社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province", groups = AddAgencyV2FormDTO.AddUserInternalGroup.class) + private String level; } \ No newline at end of file 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 da9e0a4d1d..f8fd02161d 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 @@ -304,5 +304,7 @@ public interface CustomerAgencyDao extends BaseDao { * @author sun **/ OrgMobileResultDTO getAgencyMobile(@Param("gridId") String gridId); + + int updateSubAgencyAreaCode(@Param("customerId") String customerId, @Param("originalParentAreaCode")String originalParentAreaCode,@Param("operateUserId") String operateUserId); } 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 5154c8f978..a5bc102fc5 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 @@ -152,6 +152,34 @@ public class AgencyServiceImpl implements AgencyService { originalEntity.setCode(formDTO.getCode()); originalEntity.setContacts(formDTO.getContacts()); originalEntity.setMobile(formDTO.getMobile()); + if(StringUtils.isNotBlank(formDTO.getAreaCode())&&formDTO.getAreaCode().equals(originalEntity.getAreaCode())){ + //如果修改了areaCode。 + customerAgencyDao.updateSubAgencyAreaCode(originalEntity.getCustomerId(),originalEntity.getAreaCode(),formDTO.getUserId()); + } + //判断areaCodeSwitch:open: 选择地区编码必填;closed: 无需选择地区编码 + if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) { + //校验areaCode是否被使用过 + if (!"other".equals(formDTO.getAreaCode())) { + List agencyIds = customerAgencyDao.selectAgencyIdsByAreaCode(formDTO.getAreaCode(),formDTO.getAgencyId()); + if (CollectionUtils.isNotEmpty(agencyIds)) { + //已经被占用,提示 + throw new RenException(EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getCode(), EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getMsg()); + } + originalEntity.setAreaCode(formDTO.getAreaCode()); + }else{ + //如果选择的是other,需要自定义一个编码 + AddAreaCodeFormDTO addAreaCodeFormDTO = new AddAreaCodeFormDTO(); + addAreaCodeFormDTO.setCurrentAreaLevel(formDTO.getLevel()); + addAreaCodeFormDTO.setParentAreaCode(formDTO.getAreaCode()); + addAreaCodeFormDTO.setName(formDTO.getAgencyName()); + Result addAreaCodeResult = epmetCommonServiceOpenFeignClient.addAreaCode(addAreaCodeFormDTO); + if (!addAreaCodeResult.success() || StringUtils.isBlank(addAreaCodeResult.getData())) { + throw new RenException("自定义area_code异常" + addAreaCodeResult.getInternalMsg()); + } + originalEntity.setAreaCode(addAreaCodeResult.getData()); + } + } + //1:更新当前组织信息 if (customerAgencyDao.updateById(originalEntity) < NumConstant.ONE) { log.error(CustomerAgencyConstant.UPDATE_EXCEPTION); 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 d28bfce994..23040b7607 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 @@ -731,4 +731,15 @@ AND PID = #{orgId} + + UPDATE customer_agency + SET AREA_CODE = '', + PARENT_AREA_CODE = '', + UPDATED_BY=#{operateUserId} + UPDATED_TIME = NOW() + WHERE + DEL_FLAG = '0' + AND CUSTOMER_ID = #{customerId} + AND PARENT_AREA_CODE LIKE concat( #{originalParentAreaCode}, '%' ) +