Browse Source

增加职位/部门名称重复判断,增加解绑角色

test
lucky 4 years ago
parent
commit
6885dd21b9
  1. 6
      src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java
  2. 17
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDepartmentDao.java
  3. 8
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java
  4. 27
      src/main/java/com/ccsens/carbasics/service/ManagementService.java
  5. 2
      src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java
  6. 52
      src/main/resources/mapper_dao/OrganizationDepartmentDao.xml
  7. 11
      src/main/resources/mapper_dao/OrganizationPositionDao.xml

6
src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java

@ -99,6 +99,9 @@ public class ManagementDto {
private String departmentName;
@ApiModelProperty("部门id")
private Long did;
@NotNull(message = "机构id不能为空")
@ApiModelProperty("机构id")
private Long oid;
}
@Data
@ -136,6 +139,9 @@ public class ManagementDto {
@NotBlank(message = "职位名称不能为空")
@ApiModelProperty("职位名称")
private String positionName;
@NotNull(message = "部门id不能为空")
@ApiModelProperty("部门id")
private Long departmentId;
}
@Data

17
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDepartmentDao.java

@ -30,4 +30,21 @@ public interface OrganizationDepartmentDao extends OrganizationDepartmentMapper
* @return 机构下所有一级部门
*/
List<OrganizationDepartment> queryAllByOid(@Param("oid") Long oid);
/**
*查询同级下部门名称是否重复
* @param parentId 父id
* @param departmentName 部门名称
* @param oid 机构id
* @return >1 重复
*/
Integer queryNameRepeat(@Param("parentId") Long parentId,@Param("departmentName") String departmentName,@Param("oid") Long oid);
/**
*查询同级下部门名称是否重复(修改部门时)
* @param did 部门id
* @param departmentName 部门名称
* @param oid 机构id
* @return >1 重复
*/
Integer queryNameRepeatUpdate(@Param("did") Long did,@Param("departmentName") String departmentName,@Param("oid") Long oid);
}

8
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java

@ -38,4 +38,12 @@ public interface OrganizationPositionDao extends OrganizationPositionMapper {
* @return 职位信息
*/
OrganizationPosition queryIsExist(@Param("positionName") String positionName,@Param("positionCode") String positionCode,@Param("did") Long did);
/**
* 查询同级下职位名称是否有重复
* @param departmentId 部门id
* @param positionName 职位名称
* @return >=1 重复
*/
Integer queryNameRepeat(@Param("departmentId") Long departmentId,@Param("positionName") String positionName);
}

27
src/main/java/com/ccsens/carbasics/service/ManagementService.java

@ -188,6 +188,11 @@ public class ManagementService implements IManagementService {
@Override
public void addDepartment(ManagementDto.AddDepartment param, Long userId) {
//同级之下部门名称不可重复
Integer repeat = departmentDao.queryNameRepeat(param.getParentId(),param.getDepartmentName(),param.getOid());
if (1 <= repeat) {
throw new BaseException(DefaultCodeError.DEPARTMENT_NAME_REPEAT);
}
OrganizationDepartment department = new OrganizationDepartment();
department.setId(snowflake.nextId());
department.setName(param.getDepartmentName());
@ -206,6 +211,11 @@ public class ManagementService implements IManagementService {
@Override
public void updateDepartment(ManagementDto.UpdateDepartment param, Long userId) {
//同级之下部门名称不可重复
Integer repeat = departmentDao.queryNameRepeatUpdate(param.getDid(),param.getDepartmentName(),param.getOid());
if (1 <= repeat) {
throw new BaseException(DefaultCodeError.DEPARTMENT_NAME_REPEAT);
}
OrganizationDepartment department = new OrganizationDepartment();
department.setId(param.getDid());
department.setName(param.getDepartmentName());
@ -241,6 +251,11 @@ public class ManagementService implements IManagementService {
@Override
public void addPosition(ManagementDto.AddPosition param, Long userId) {
//同级之下 职位名称不可重复
Integer repeat = positionDao.queryNameRepeat(param.getDepartmentId(),param.getPositionName());
if (1 <= repeat) {
throw new BaseException(DefaultCodeError.POSITION_NAME_REPEAT);
}
OrganizationPosition position = new OrganizationPosition();
position.setId(snowflake.nextId());
position.setName(param.getPositionName());
@ -267,6 +282,12 @@ public class ManagementService implements IManagementService {
@Override
public void updatePosition(ManagementDto.UpdatePosition param, Long userId) {
//同级之下 职位名称不可重复
Integer repeat = positionDao.queryNameRepeat(param.getDepartmentId(),param.getPositionName());
if (1 <= repeat) {
throw new BaseException(DefaultCodeError.POSITION_NAME_REPEAT);
}
OrganizationPosition position = new OrganizationPosition();
position.setId(param.getPositionId());
position.setRoleName(param.getPositionName());
@ -317,6 +338,12 @@ public class ManagementService implements IManagementService {
positionTypeRelationList.add(positionTypeRelation);
}
positionTypeRelationDao.bindRole(positionTypeRelationList);
}else {
OrganizationPositionTypeRelationExample positionTypeRelationExample = new OrganizationPositionTypeRelationExample();
positionTypeRelationExample.createCriteria().andPositionIdEqualTo(param.getPositionId());
OrganizationPositionTypeRelation positionTypeRelation = new OrganizationPositionTypeRelation();
positionTypeRelation.setRecStatus((byte) 2);
positionTypeRelationDao.updateByExampleSelective(positionTypeRelation,positionTypeRelationExample);
}
}

2
src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java

@ -58,6 +58,8 @@ public class DefaultCodeError extends CodeError {
public static final Code NOT_HAVE_DEPARTMENT = new Code(511,"部门不存在,请检查后重试", true);
public static final Code DEPARTMENT_HAVE_POSITION = new Code(512,"请删除部门下的职位", true);
public static final Code POSITION_HAVE_MEMBER = new Code(513,"请删除职位下的成员", true);
public static final Code DEPARTMENT_NAME_REPEAT = new Code(514,"同级之下部门名称不可重复", true);
public static final Code POSITION_NAME_REPEAT = new Code(514,"同级之下职位名称不可重复", true);

52
src/main/resources/mapper_dao/OrganizationDepartmentDao.xml

@ -59,4 +59,56 @@
OR dp.parent_id = 0
)
</select>
<select id="queryNameRepeat" resultType="java.lang.Integer">
<choose>
<when test="parentId == null or parentId == 0">
SELECT
COUNT(d.id)
FROM
t_organization AS o,
t_organization_department As d
WHERE
o.rec_status = 0
AND d.rec_status = 0
AND d.`name` = #{departmentName}
AND o.id = #{oid}
</when>
<otherwise>
SELECT
COUNT(d.id)
FROM
t_organization AS o,
t_organization_department_parent AS dp,
t_organization_department AS d
WHERE o.rec_status = 0 AND dp.rec_status = 0 AND d.rec_status = 0
AND o.id = #{oid}
AND dp.parent_id = #{parentId}
AND d.`name` = #{departmentName}
</otherwise>
</choose>
</select>
<select id="queryNameRepeatUpdate" resultType="java.lang.Integer">
SELECT
COUNT(d.id)
FROM
t_organization AS o,
t_organization_department_parent AS dp,
t_organization_department AS d
WHERE
o.rec_status = 0
AND dp.rec_status = 0
AND d.rec_status = 0
AND o.id = #{oid}
AND dp.parent_id = (
SELECT
parent_id
FROM
t_organization_department_parent
WHERE
department_id = #{did}
)
AND d.`name` = #{departmentName};
</select>
</mapper>

11
src/main/resources/mapper_dao/OrganizationPositionDao.xml

@ -66,4 +66,15 @@
AND p.department_id = #{did}
</select>
<select id="queryNameRepeat" resultType="java.lang.Integer">
SELECT
COUNT(p.id)
FROM
t_organization_position AS p
WHERE
p.rec_status = 0
AND p.department_id = #{departmentId}
AND p.`name` = #{positionName}
</select>
</mapper>
Loading…
Cancel
Save