diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/newrole/request/AddBindOrgRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/newrole/request/AddBindOrgRequest.java new file mode 100644 index 000000000..ed1e72421 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/newrole/request/AddBindOrgRequest.java @@ -0,0 +1,52 @@ +package cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 新的授权界面,点击单个启用禁用的操作 + * + * @author fengshuonan + * @since 2024/1/17 21:25 + */ +@Data +public class AddBindOrgRequest { + + /** + * 用户id + */ + @NotNull(message = "用户id") + @ChineseDescription("用户id") + private Long userId; + + /** + * 机构id + */ + @NotNull(message = "机构id不能为空,请检查orgId参数") + @ChineseDescription("机构id") + private Long orgId; + + /** + * 职位id + */ + @NotNull(message = "职位id不能为空,请检查positionId参数") + @ChineseDescription("职位id") + private Long positionId; + + /** + * 是否是主部门:Y-是,N-不是 + */ + @ChineseDescription("是否是主部门:Y-是,N-不是") + @NotNull(message = "是否是主部门不能为空") + private String mainFlag; + + /** + * 是否启用:1-启用,2-禁用 + */ + @ChineseDescription("是否启用:1-启用,2-禁用") + @NotNull(message = "是否启用不能为空") + private Integer statusFlag; + +} diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/request/SysUserOrgRequest.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/request/SysUserOrgRequest.java index 5923f4c17..f3a3c3cbf 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/request/SysUserOrgRequest.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/request/SysUserOrgRequest.java @@ -21,14 +21,14 @@ public class SysUserOrgRequest extends BaseRequest { /** * 企业员工主键id */ - @NotNull(message = "企业员工主键id不能为空", groups = {edit.class, delete.class}) + @NotNull(message = "企业员工主键id不能为空", groups = {delete.class}) @ChineseDescription("企业员工主键id") private Long userOrgId; /** * 用户id */ - @NotNull(message = "用户id不能为空", groups = {add.class, edit.class}) + @NotNull(message = "用户id不能为空", groups = {add.class}) @ChineseDescription("用户id") private Long userId; @@ -41,7 +41,7 @@ public class SysUserOrgRequest extends BaseRequest { /** * 所属机构id */ - @NotNull(message = "所属机构id不能为空", groups = {add.class, edit.class}) + @NotNull(message = "所属机构id不能为空", groups = {add.class}) @ChineseDescription("所属机构id") private Long orgId; @@ -60,7 +60,7 @@ public class SysUserOrgRequest extends BaseRequest { /** * 是否是主部门:Y-是,N-不是 */ - @NotBlank(message = "是否是主部门:Y-是,N-不是不能为空", groups = {add.class, edit.class}) + @NotBlank(message = "是否是主部门:Y-是,N-不是不能为空", groups = {add.class}) @ChineseDescription("是否是主部门:Y-是,N-不是") private String mainFlag; @@ -68,6 +68,7 @@ public class SysUserOrgRequest extends BaseRequest { * 是否启用:1-启用,2-禁用 */ @ChineseDescription("是否启用:1-启用,2-禁用") + @NotNull(message = "是否启用不能为空", groups = {add.class}) private Integer statusFlag; } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java index af383ca0a..172f08826 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java @@ -44,14 +44,25 @@ import static cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserOrgExcepti */ @Service @Slf4j -public class SysUserOrgServiceImpl extends ServiceImpl implements SysUserOrgService, RemoveOrgCallbackApi, - RemoveUserCallbackApi { +public class SysUserOrgServiceImpl extends ServiceImpl implements SysUserOrgService, RemoveOrgCallbackApi, RemoveUserCallbackApi { @Resource private DbOperatorApi dbOperatorApi; @Override public void add(SysUserOrgRequest sysUserOrgRequest) { + + // 先判断如果添加的是主部门,查看指定用户是否已经有主部门绑定 + if (YesOrNotEnum.Y.getCode().equals(sysUserOrgRequest.getMainFlag())) { + LambdaQueryWrapper sysUserOrgLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysUserOrgLambdaQueryWrapper.eq(SysUserOrg::getUserId, sysUserOrgRequest.getUserId()); + sysUserOrgLambdaQueryWrapper.eq(SysUserOrg::getMainFlag, YesOrNotEnum.Y.getCode()); + long count = this.count(sysUserOrgLambdaQueryWrapper); + if (count > 0) { + throw new ServiceException(SysUserOrgExceptionEnum.MAIN_FLAG_ERROR); + } + } + SysUserOrg sysUserOrg = new SysUserOrg(); BeanUtil.copyProperties(sysUserOrgRequest, sysUserOrg); this.save(sysUserOrg); @@ -332,8 +343,7 @@ public class SysUserOrgServiceImpl extends ServiceImpl