diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java new file mode 100644 index 000000000..d12f43b9f --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/controller/HrOrgApproverController.java @@ -0,0 +1,101 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.controller; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; +import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrgApprover; +import cn.stylefeng.roses.kernel.system.modular.organization.pojo.request.HrOrgApproverRequest; +import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrgApproverService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 组织机构审批人控制器 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +@RestController +@ApiResource(name = "组织机构审批人") +public class HrOrgApproverController { + + @Resource + private HrOrgApproverService hrOrgApproverService; + + /** + * 添加 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @PostResource(name = "添加", path = "/hrOrgApprover/add") + public ResponseData add(@RequestBody @Validated(HrOrgApproverRequest.add.class) HrOrgApproverRequest hrOrgApproverRequest) { + hrOrgApproverService.add(hrOrgApproverRequest); + return new SuccessResponseData<>(); + } + + /** + * 删除 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @PostResource(name = "删除", path = "/hrOrgApprover/delete") + public ResponseData delete(@RequestBody @Validated(HrOrgApproverRequest.delete.class) HrOrgApproverRequest hrOrgApproverRequest) { + hrOrgApproverService.del(hrOrgApproverRequest); + return new SuccessResponseData<>(); + } + + /** + * 编辑 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @PostResource(name = "编辑", path = "/hrOrgApprover/edit") + public ResponseData edit(@RequestBody @Validated(HrOrgApproverRequest.edit.class) HrOrgApproverRequest hrOrgApproverRequest) { + hrOrgApproverService.edit(hrOrgApproverRequest); + return new SuccessResponseData<>(); + } + + /** + * 查看详情 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @GetResource(name = "查看详情", path = "/hrOrgApprover/detail") + public ResponseData detail(@Validated(HrOrgApproverRequest.detail.class) HrOrgApproverRequest hrOrgApproverRequest) { + return new SuccessResponseData<>(hrOrgApproverService.detail(hrOrgApproverRequest)); + } + + /** + * 获取列表 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @GetResource(name = "获取列表", path = "/hrOrgApprover/list") + public ResponseData> list(HrOrgApproverRequest hrOrgApproverRequest) { + return new SuccessResponseData<>(hrOrgApproverService.findList(hrOrgApproverRequest)); + } + + /** + * 获取列表(带分页) + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + @GetResource(name = "分页查询", path = "/hrOrgApprover/page") + public ResponseData> page(HrOrgApproverRequest hrOrgApproverRequest) { + return new SuccessResponseData<>(hrOrgApproverService.findPage(hrOrgApproverRequest)); + } + +} diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrgApprover.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrgApprover.java new file mode 100644 index 000000000..1042e1ca8 --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/entity/HrOrgApprover.java @@ -0,0 +1,51 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 组织机构审批人实例类 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +@TableName("hr_org_approver") +@Data +@EqualsAndHashCode(callSuper = true) +public class HrOrgApprover extends BaseEntity { + + /** + * 主键id + */ + @TableId(value = "org_approver_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键id") + private Long orgApproverId; + + /** + * 组织审批类型:1-负责人,2-部长,3-体系负责人,4-部门助理,5-资产助理(专员),6-考勤专员,7-HRBP,8-门禁员,9-办公账号员,10-转岗须知员 + */ + @TableField("org_approver_type") + @ChineseDescription("组织审批类型:1-负责人,2-部长,3-体系负责人,4-部门助理,5-资产助理(专员),6-考勤专员,7-HRBP,8-门禁员,9-办公账号员,10-转岗须知员") + private Integer orgApproverType; + + /** + * 组织机构id + */ + @TableField("org_id") + @ChineseDescription("组织机构id") + private Long orgId; + + /** + * 用户id + */ + @TableField("user_id") + @ChineseDescription("用户id") + private Long userId; + +} diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/enums/HrOrgApproverExceptionEnum.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/enums/HrOrgApproverExceptionEnum.java new file mode 100644 index 000000000..e53269fe2 --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/enums/HrOrgApproverExceptionEnum.java @@ -0,0 +1,36 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.enums; + +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; +import lombok.Getter; + +/** + * 组织机构审批人异常相关枚举 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +@Getter +public enum HrOrgApproverExceptionEnum implements AbstractExceptionEnum { + + /** + * 查询结果不存在 + */ + HR_ORG_APPROVER_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"); + + /** + * 错误编码 + */ + private final String errorCode; + + /** + * 提示用户信息 + */ + private final String userTip; + + HrOrgApproverExceptionEnum(String errorCode, String userTip) { + this.errorCode = errorCode; + this.userTip = userTip; + } + +} \ No newline at end of file diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/HrOrgApproverMapper.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/HrOrgApproverMapper.java new file mode 100644 index 000000000..c557b9712 --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/HrOrgApproverMapper.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.mapper; + +import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrgApprover; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 组织机构审批人 Mapper 接口 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +public interface HrOrgApproverMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/mapping/HrOrgApproverMapper.xml b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/mapping/HrOrgApproverMapper.xml new file mode 100644 index 000000000..16281aea8 --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/mapper/mapping/HrOrgApproverMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java new file mode 100644 index 000000000..bd673f0ad --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/pojo/request/HrOrgApproverRequest.java @@ -0,0 +1,45 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.pojo.request; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 组织机构审批人封装类 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class HrOrgApproverRequest extends BaseRequest { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = {edit.class, delete.class}) + @ChineseDescription("主键id") + private Long orgApproverId; + + /** + * 组织审批类型:1-负责人,2-部长,3-体系负责人,4-部门助理,5-资产助理(专员),6-考勤专员,7-HRBP,8-门禁员,9-办公账号员,10-转岗须知员 + */ + @ChineseDescription("组织审批类型:1-负责人,2-部长,3-体系负责人,4-部门助理,5-资产助理(专员),6-考勤专员,7-HRBP,8-门禁员,9-办公账号员,10-转岗须知员") + private Integer orgApproverType; + + /** + * 组织机构id + */ + @ChineseDescription("组织机构id") + private Long orgId; + + /** + * 用户id + */ + @ChineseDescription("用户id") + private Long userId; + +} diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java new file mode 100644 index 000000000..89f7a8e7f --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/HrOrgApproverService.java @@ -0,0 +1,74 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.service; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrgApprover; +import cn.stylefeng.roses.kernel.system.modular.organization.pojo.request.HrOrgApproverRequest; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 组织机构审批人 服务类 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +public interface HrOrgApproverService extends IService { + + /** + * 新增 + * + * @param hrOrgApproverRequest 请求参数 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + void add(HrOrgApproverRequest hrOrgApproverRequest); + + /** + * 删除 + * + * @param hrOrgApproverRequest 请求参数 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + void del(HrOrgApproverRequest hrOrgApproverRequest); + + /** + * 编辑 + * + * @param hrOrgApproverRequest 请求参数 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + void edit(HrOrgApproverRequest hrOrgApproverRequest); + + /** + * 查询详情 + * + * @param hrOrgApproverRequest 请求参数 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + HrOrgApprover detail(HrOrgApproverRequest hrOrgApproverRequest); + + /** + * 获取列表 + * + * @param hrOrgApproverRequest 请求参数 + * @return List 返回结果 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + List findList(HrOrgApproverRequest hrOrgApproverRequest); + + /** + * 获取列表(带分页) + * + * @param hrOrgApproverRequest 请求参数 + * @return PageResult 返回结果 + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + PageResult findPage(HrOrgApproverRequest hrOrgApproverRequest); + +} \ No newline at end of file diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java new file mode 100644 index 000000000..9344fd297 --- /dev/null +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrgApproverServiceImpl.java @@ -0,0 +1,104 @@ +package cn.stylefeng.roses.kernel.system.modular.organization.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; +import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; +import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrgApprover; +import cn.stylefeng.roses.kernel.system.modular.organization.enums.HrOrgApproverExceptionEnum; +import cn.stylefeng.roses.kernel.system.modular.organization.mapper.HrOrgApproverMapper; +import cn.stylefeng.roses.kernel.system.modular.organization.pojo.request.HrOrgApproverRequest; +import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrgApproverService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 组织机构审批人业务实现层 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ +@Service +public class HrOrgApproverServiceImpl extends ServiceImpl implements HrOrgApproverService { + + @Override + public void add(HrOrgApproverRequest hrOrgApproverRequest) { + HrOrgApprover hrOrgApprover = new HrOrgApprover(); + BeanUtil.copyProperties(hrOrgApproverRequest, hrOrgApprover); + this.save(hrOrgApprover); + } + + @Override + public void del(HrOrgApproverRequest hrOrgApproverRequest) { + HrOrgApprover hrOrgApprover = this.queryHrOrgApprover(hrOrgApproverRequest); + this.removeById(hrOrgApprover.getOrgApproverId()); + } + + @Override + public void edit(HrOrgApproverRequest hrOrgApproverRequest) { + HrOrgApprover hrOrgApprover = this.queryHrOrgApprover(hrOrgApproverRequest); + BeanUtil.copyProperties(hrOrgApproverRequest, hrOrgApprover); + this.updateById(hrOrgApprover); + } + + @Override + public HrOrgApprover detail(HrOrgApproverRequest hrOrgApproverRequest) { + return this.queryHrOrgApprover(hrOrgApproverRequest); + } + + @Override + public PageResult findPage(HrOrgApproverRequest hrOrgApproverRequest) { + LambdaQueryWrapper wrapper = createWrapper(hrOrgApproverRequest); + Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); + return PageResultFactory.createPageResult(sysRolePage); + } + + @Override + public List findList(HrOrgApproverRequest hrOrgApproverRequest) { + LambdaQueryWrapper wrapper = this.createWrapper(hrOrgApproverRequest); + return this.list(wrapper); + } + + /** + * 获取信息 + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + private HrOrgApprover queryHrOrgApprover(HrOrgApproverRequest hrOrgApproverRequest) { + HrOrgApprover hrOrgApprover = this.getById(hrOrgApproverRequest.getOrgApproverId()); + if (ObjectUtil.isEmpty(hrOrgApprover)) { + throw new ServiceException(HrOrgApproverExceptionEnum.HR_ORG_APPROVER_NOT_EXISTED); + } + return hrOrgApprover; + } + + /** + * 创建查询wrapper + * + * @author fengshuonan + * @date 2022/09/13 23:15 + */ + private LambdaQueryWrapper createWrapper(HrOrgApproverRequest hrOrgApproverRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + Long orgApproverId = hrOrgApproverRequest.getOrgApproverId(); + Integer orgApproverType = hrOrgApproverRequest.getOrgApproverType(); + Long orgId = hrOrgApproverRequest.getOrgId(); + Long userId = hrOrgApproverRequest.getUserId(); + + queryWrapper.eq(ObjectUtil.isNotNull(orgApproverId), HrOrgApprover::getOrgApproverId, orgApproverId); + queryWrapper.eq(ObjectUtil.isNotNull(orgApproverType), HrOrgApprover::getOrgApproverType, orgApproverType); + queryWrapper.eq(ObjectUtil.isNotNull(orgId), HrOrgApprover::getOrgId, orgId); + queryWrapper.eq(ObjectUtil.isNotNull(userId), HrOrgApprover::getUserId, userId); + + return queryWrapper; + } + +} \ No newline at end of file