Browse Source

修改组织信息

master
yinzuomei 4 years ago
parent
commit
8d647eab78
  1. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 7
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java
  3. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  4. 30
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java
  5. 11
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
  6. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
  7. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
  8. 52
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java
  9. 6
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
  10. 18
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -71,7 +71,8 @@ public enum EpmetErrorCode {
NOT_DEL_DEPARTMENT(8206, "该部门存在工作人员,不允许删除"), NOT_DEL_DEPARTMENT(8206, "该部门存在工作人员,不允许删除"),
NOT_DEL_AGENCY_GRID(8207, "该机关存在网格,不允许删除"), NOT_DEL_AGENCY_GRID(8207, "该机关存在网格,不允许删除"),
AREA_CODE_ALREADY_EXISTS(8208,"组织区划已被占用,请重新选择"), AREA_CODE_ALREADY_EXISTS(8208,"组织区划已被占用,请重新选择"),
AGENCY_NAME_ALREADY_EXISTS(8209,"您当前的组织名称已存在,请重新修改"), AGENCY_NAME_ALREADY_EXISTS(8209,"当前组织名称已存在,请重新修改"),
SET_PARENT_AREA_CODE(8210,"请先设置上级组织区划"),
REQUIRE_PERMISSION(8301, "您没有足够的操作权限"), REQUIRE_PERMISSION(8301, "您没有足够的操作权限"),
THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"), THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"),

7
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/NextAreaCodeFormDTO.java

@ -14,8 +14,11 @@ import java.io.Serializable;
@Data @Data
public class NextAreaCodeFormDTO implements Serializable { public class NextAreaCodeFormDTO implements Serializable {
private static final long serialVersionUID = -1974456701949979946L; private static final long serialVersionUID = -1974456701949979946L;
public interface AddUserInternalGroup {
}
@NotBlank(message = "parentAgencyId不能为空",groups = AddUserInternalGroup.class)
private String parentAgencyId;
@NotBlank(message = "areaCode不能为空")
private String areaCode; private String areaCode;
/** /**
@ -25,7 +28,7 @@ public class NextAreaCodeFormDTO implements Serializable {
* 市级: city * 市级: city
* 省级:province * 省级:province
*/ */
@NotBlank(message = "level不能为空") @NotBlank(message = "level不能为空",groups = AddUserInternalGroup.class)
private String level; private String level;
} }

9
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -3,6 +3,7 @@ package com.epmet.dataaggre.service.govorg.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant; 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.exception.RenException;
import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao;
@ -20,8 +21,7 @@ import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -37,7 +37,6 @@ import java.util.List;
@DataSource(DataSourceConstant.GOV_ORG) @DataSource(DataSourceConstant.GOV_ORG)
@Slf4j @Slf4j
public class GovOrgServiceImpl implements GovOrgService { public class GovOrgServiceImpl implements GovOrgService {
private static final Logger logger = LoggerFactory.getLogger(GovOrgServiceImpl.class);
@Autowired @Autowired
private CustomerAgencyDao customerAgencyDao; private CustomerAgencyDao customerAgencyDao;
@ -133,6 +132,10 @@ public class GovOrgServiceImpl implements GovOrgService {
@Override @Override
public List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) { public List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO) {
CustomerAgencyEntity parent=customerAgencyDao.selectById(formDTO.getParentAgencyId());
if (null == parent || StringUtils.isBlank(parent.getAreaCode())) {
throw new RenException(EpmetErrorCode.SET_PARENT_AREA_CODE.getCode(),EpmetErrorCode.SET_PARENT_AREA_CODE.getMsg());
}
//全部下级 //全部下级
List<NextAreaCodeResultDTO> allList = areaCodeService.queryNextLevelAreaCodeList(formDTO); List<NextAreaCodeResultDTO> allList = areaCodeService.queryNextLevelAreaCodeList(formDTO);
if (CollectionUtils.isNotEmpty(allList)) { if (CollectionUtils.isNotEmpty(allList)) {

30
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java

@ -17,6 +17,7 @@
package com.epmet.dto.form; package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
@ -33,23 +34,48 @@ import java.io.Serializable;
public class EditAgencyFormDTO implements Serializable { public class EditAgencyFormDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public interface AddUserInternalGroup {
}
public interface DefaultUserShowGroup extends CustomerClientShowGroup {
}
public interface AreaCodeGroup extends CustomerClientShowGroup {
}
/** /**
* 机关组织Id * 机关组织Id
*/ */
@NotBlank(message = "机关组织ID不能为空") @NotBlank(message = "机关组织ID不能为空", groups = AddUserInternalGroup.class)
private String agencyId; private String agencyId;
/** /**
* 机关组织名称 * 机关组织名称
*/ */
@NotBlank(message = "机关组织名称不能为空") @NotBlank(message = "机关组织名称不能为空")
@Length(max=50,message = "机构名称不能超过50个字") @Length(max=50,message = "机构名称不能超过50个字",groups = DefaultUserShowGroup.class)
private String agencyName; private String agencyName;
/** /**
* token中用户Id * token中用户Id
*/ */
@NotBlank(message = "tokenDto获取userId为空", groups = AddUserInternalGroup.class)
private String userId; private String userId;
//2021.04.16 area_code需求 新增入参
/**
* open: 选择地区编码必填closed: 无需选择地区编码;0409新增返参
*/
@NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class)
private String areaCodeSwitch;
/**
* 地区编码
*/
@NotBlank(message = "请选择组织区划", groups = AreaCodeGroup.class)
private String areaCode;
//区域编码名称
@NotBlank(message = "", groups = AreaCodeGroup.class)
private String areaName;
} }

11
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java

@ -93,13 +93,13 @@ public class AgencyController {
**/ **/
@PostMapping("addagency-v2") @PostMapping("addagency-v2")
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_SUBAGENCY_CREATE) @RequirePermission(requirePermission = RequirePermissionEnum.ORG_SUBAGENCY_CREATE)
public Result<AddAgencyResultDTO> addAgencyV2(@RequestBody AddAgencyV2FormDTO formDTO) { public Result<AddAgencyResultDTO> addAgencyV2(@LoginUser TokenDto tokenDTO,@RequestBody AddAgencyV2FormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.DefaultUserShowGroup.class, AddAgencyV2FormDTO.AddUserInternalGroup.class); ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.DefaultUserShowGroup.class, AddAgencyV2FormDTO.AddUserInternalGroup.class);
if (formDTO.getAreaCodeSwitch().equals(CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN)) { if (formDTO.getAreaCodeSwitch().equals(CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN)) {
ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.AreaCodeGroup.class); ValidatorUtils.validateEntity(formDTO, AddAgencyV2FormDTO.AreaCodeGroup.class);
} }
//组织名称是否存在 //当前客户下,同级组织中,组织名称不允许重复
customerAgencyService.checkAgencyName(formDTO.getAgencyName()); customerAgencyService.checkAgencyName(formDTO.getAgencyName(),tokenDTO.getCustomerId(),formDTO.getLevel(),null);
return new Result<AddAgencyResultDTO>().ok(agencyService.addAgencyV2(formDTO)); return new Result<AddAgencyResultDTO>().ok(agencyService.addAgencyV2(formDTO));
} }
@ -127,7 +127,10 @@ public class AgencyController {
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_AGENCY_UPDATE) @RequirePermission(requirePermission = RequirePermissionEnum.ORG_AGENCY_UPDATE)
public Result editAgency(@LoginUser TokenDto tokenDTO, @RequestBody EditAgencyFormDTO formDTO) { public Result editAgency(@LoginUser TokenDto tokenDTO, @RequestBody EditAgencyFormDTO formDTO) {
formDTO.setUserId(tokenDTO.getUserId()); formDTO.setUserId(tokenDTO.getUserId());
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class);
if (formDTO.getAreaCodeSwitch().equals(CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN)) {
ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.AreaCodeGroup.class);
}
return agencyService.editAgency(formDTO); return agencyService.editAgency(formDTO);
} }

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java

@ -225,5 +225,11 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
**/ **/
int delByAgencyId(@Param("agencyId") String agencyId, @Param("operateUserId") String operateUserId); int delByAgencyId(@Param("agencyId") String agencyId, @Param("operateUserId") String operateUserId);
List<String> selectAgencyIdsByAreaCode(String areaCode); List<String> selectAgencyIdsByAreaCode(@Param("areaCode") String areaCode,
@Param("agencyId") String agencyId);
List<CustomerAgencyEntity> checkAgencyName(@Param("agencyName") String agencyName,
@Param("customerId") String customerId,
@Param("level") String level,
@Param("agencyId") String agencyId);
} }

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java

@ -235,5 +235,5 @@ public interface CustomerAgencyService extends BaseService<CustomerAgencyEntity>
**/ **/
OrganizeTreeResultDTO organizeTree(String agencyId); OrganizeTreeResultDTO organizeTree(String agencyId);
void checkAgencyName(String agencyName); void checkAgencyName(String agencyName,String customerId,String level,String agencyId);
} }

52
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java

@ -51,7 +51,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -133,9 +132,45 @@ public class AgencyServiceImpl implements AgencyService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result editAgency(EditAgencyFormDTO formDTO) { public Result editAgency(EditAgencyFormDTO formDTO) {
Result result = new Result(); Result result = new Result();
CustomerAgencyEntity entity = getUpdateEntity(formDTO); CustomerAgencyEntity originalEntity = customerAgencyDao.selectById(formDTO.getAgencyId());
//当前客户下,同级组织中,组织名称不允许重复
customerAgencyService.checkAgencyName(formDTO.getAgencyName(),originalEntity.getCustomerId(),originalEntity.getLevel(),originalEntity.getId());
if (formDTO.getAreaCodeSwitch().equals(CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN)) {
//开关开启,areaCode,areaName必填
if(!formDTO.getAreaCode().equals(originalEntity.getAreaCode())){
//重新选择了新的area_code
CustomerAgencyDTO parent = customerAgencyService.get(originalEntity.getPid());
if (null == parent ||StringUtils.isBlank(parent.getAreaCode())) {
throw new RenException(EpmetErrorCode.SET_PARENT_AREA_CODE.getCode(),EpmetErrorCode.SET_PARENT_AREA_CODE.getMsg());
}
originalEntity.setParentAreaCode(parent.getAreaCode());
if (!"other".equals(formDTO.getAreaCode())) {
//校验areaCode是否被使用过
List<String> 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(originalEntity.getLevel());
addAreaCodeFormDTO.setParentAreaCode(parent.getAreaCode());
addAreaCodeFormDTO.setName(formDTO.getAgencyName());
Result<String> addAreaCodeResult = epmetCommonServiceOpenFeignClient.addAreaCode(addAreaCodeFormDTO);
if (!addAreaCodeResult.success() || StringUtils.isBlank(addAreaCodeResult.getData())) {
throw new RenException("自定义area_code异常" + addAreaCodeResult.getInternalMsg());
}
originalEntity.setAreaCode(addAreaCodeResult.getData());
}
}
}
originalEntity.setOrganizationName(formDTO.getAgencyName());
//1:更新当前组织信息 //1:更新当前组织信息
if (customerAgencyDao.updateById(entity) < NumConstant.ONE) { if (customerAgencyDao.updateById(originalEntity) < NumConstant.ONE) {
log.error(CustomerAgencyConstant.UPDATE_EXCEPTION); log.error(CustomerAgencyConstant.UPDATE_EXCEPTION);
throw new RenException(CustomerAgencyConstant.UPDATE_EXCEPTION); throw new RenException(CustomerAgencyConstant.UPDATE_EXCEPTION);
} }
@ -148,7 +183,6 @@ public class AgencyServiceImpl implements AgencyService {
} }
//3:循环组织列表,查询每一个组织的所有上级组织重新拼接所有上级名称(allParentName)字段值 //3:循环组织列表,查询每一个组织的所有上级组织重新拼接所有上级名称(allParentName)字段值
List<CustomerAgencyEntity> editList = new ArrayList<>(); List<CustomerAgencyEntity> editList = new ArrayList<>();
Date date = new Date();
agencyList.forEach(agency->{ agencyList.forEach(agency->{
//3-1:查询当前组织的所有上级组织 //3-1:查询当前组织的所有上级组织
List<String> listStr = Arrays.asList(agency.getPids().split(":")); List<String> listStr = Arrays.asList(agency.getPids().split(":"));
@ -178,12 +212,6 @@ public class AgencyServiceImpl implements AgencyService {
return result; return result;
} }
private CustomerAgencyEntity getUpdateEntity(EditAgencyFormDTO formDTO) {
CustomerAgencyEntity entity = customerAgencyDao.selectById(formDTO.getAgencyId());
entity.setOrganizationName(formDTO.getAgencyName());
return entity;
}
/** /**
* @param formDTO * @param formDTO
* @return * @return
@ -429,7 +457,7 @@ public class AgencyServiceImpl implements AgencyService {
public AddAgencyResultDTO addAgencyV2(AddAgencyV2FormDTO formDTO) { public AddAgencyResultDTO addAgencyV2(AddAgencyV2FormDTO formDTO) {
CustomerAgencyDTO parent = customerAgencyService.get(formDTO.getParentAgencyId()); CustomerAgencyDTO parent = customerAgencyService.get(formDTO.getParentAgencyId());
if (null == parent) { if (null == parent) {
throw new RenException(String.format("添加组织失败:没有找到跟组织信息,parentAgencyId=%s", formDTO.getParentAgencyId())); throw new RenException(String.format("添加组织失败:没有找到上级组织信息,agencyId=%s", formDTO.getParentAgencyId()));
} }
AddAgencyResultDTO resultDTO = new AddAgencyResultDTO(); AddAgencyResultDTO resultDTO = new AddAgencyResultDTO();
resultDTO.setAreaCodeSwitch(formDTO.getAreaCodeSwitch()); resultDTO.setAreaCodeSwitch(formDTO.getAreaCodeSwitch());
@ -438,7 +466,7 @@ public class AgencyServiceImpl implements AgencyService {
if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) { if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) {
//校验areaCode是否被使用过 //校验areaCode是否被使用过
if (!"other".equals(formDTO.getAreaCode())) { if (!"other".equals(formDTO.getAreaCode())) {
List<String> agencyIds = customerAgencyDao.selectAgencyIdsByAreaCode(insertEntity.getAreaCode()); List<String> agencyIds = customerAgencyDao.selectAgencyIdsByAreaCode(insertEntity.getAreaCode(),null);
if (CollectionUtils.isNotEmpty(agencyIds)) { if (CollectionUtils.isNotEmpty(agencyIds)) {
//已经被占用,提示 //已经被占用,提示
throw new RenException(EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getCode(), EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getMsg()); throw new RenException(EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getCode(), EpmetErrorCode.AREA_CODE_ALREADY_EXISTS.getMsg());

6
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java

@ -1060,10 +1060,8 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
} }
@Override @Override
public void checkAgencyName(String agencyName) { public void checkAgencyName(String agencyName,String customerId,String level,String agencyId) {
QueryWrapper<CustomerAgencyEntity> wrapper = new QueryWrapper<>(); List<CustomerAgencyEntity> entityList = baseDao.checkAgencyName(agencyName,customerId,level,agencyId);
wrapper.eq(StringUtils.isNotBlank(agencyName), "ORGANIZATION_NAME", agencyName);
List<CustomerAgencyEntity> entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(entityList)) { if (CollectionUtils.isNotEmpty(entityList)) {
throw new RenException(EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getCode(), EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getMsg()); throw new RenException(EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getCode(), EpmetErrorCode.AGENCY_NAME_ALREADY_EXISTS.getMsg());
} }

18
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -408,5 +408,23 @@
WHERE WHERE
ca.DEL_FLAG = '0' ca.DEL_FLAG = '0'
AND ca.AREA_CODE = #{areaCode} AND ca.AREA_CODE = #{areaCode}
<if test='agencyId != "" and agencyId != null'>
AND ca.id !=#{agencyId}
</if>
</select>
<select id="checkAgencyName" parameterType="map" resultType="com.epmet.entity.CustomerAgencyEntity">
SELECT
ca.id
FROM
customer_agency ca
WHERE
ca.DEL_FLAG = '0'
AND ca.CUSTOMER_ID = #{customerId}
AND ca.ORGANIZATION_NAME = #{agencyName}
AND ca.`LEVEL` = #{level}
<if test='agencyId != "" and agencyId != null'>
AND ca.id !=#{agencyId}
</if>
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save