入职离职初步完成
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
package com.ruoyi.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.core.validate.QueryGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOffboardingBo;
|
||||
import com.ruoyi.oa.service.IEmployeeOffboardingService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 离职管理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/offboarding")
|
||||
public class EmployeeOffboardingController extends BaseController {
|
||||
|
||||
private final IEmployeeOffboardingService iEmployeeOffboardingService;
|
||||
|
||||
/**
|
||||
* 查询离职管理列表
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<EmployeeOffboardingVo> list(EmployeeOffboardingBo bo, PageQuery pageQuery) {
|
||||
return iEmployeeOffboardingService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出离职管理列表
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:export")
|
||||
@Log(title = "离职管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(EmployeeOffboardingBo bo, HttpServletResponse response) {
|
||||
List<EmployeeOffboardingVo> list = iEmployeeOffboardingService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "离职管理", EmployeeOffboardingVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取离职管理详细信息
|
||||
*
|
||||
* @param offboardingId 主键
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:query")
|
||||
@GetMapping("/{offboardingId}")
|
||||
public R<EmployeeOffboardingVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long offboardingId) {
|
||||
return R.ok(iEmployeeOffboardingService.queryById(offboardingId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增离职管理
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:add")
|
||||
@Log(title = "离职管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody EmployeeOffboardingBo bo) {
|
||||
return toAjax(iEmployeeOffboardingService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改离职管理
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:edit")
|
||||
@Log(title = "离职管理", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EmployeeOffboardingBo bo) {
|
||||
return toAjax(iEmployeeOffboardingService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除离职管理
|
||||
*
|
||||
* @param offboardingIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:offboarding:remove")
|
||||
@Log(title = "离职管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{offboardingIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] offboardingIds) {
|
||||
return toAjax(iEmployeeOffboardingService.deleteWithValidByIds(Arrays.asList(offboardingIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.ruoyi.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
|
||||
import com.ruoyi.oa.service.IEmployeeOnboardingService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.core.validate.QueryGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 入职管理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/onboarding")
|
||||
public class EmployeeOnboardingController extends BaseController {
|
||||
|
||||
private final IEmployeeOnboardingService iEmployeeOnboardingService;
|
||||
|
||||
/**
|
||||
* 查询入职管理列表
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<EmployeeOnboardingVo> list(EmployeeOnboardingBo bo, PageQuery pageQuery) {
|
||||
return iEmployeeOnboardingService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出入职管理列表
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:export")
|
||||
@Log(title = "入职管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(EmployeeOnboardingBo bo, HttpServletResponse response) {
|
||||
List<EmployeeOnboardingVo> list = iEmployeeOnboardingService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "入职管理", EmployeeOnboardingVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入职管理详细信息
|
||||
*
|
||||
* @param onboardingId 主键
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:query")
|
||||
@GetMapping("/{onboardingId}")
|
||||
public R<EmployeeOnboardingVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long onboardingId) {
|
||||
return R.ok(iEmployeeOnboardingService.queryById(onboardingId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增入职管理
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:add")
|
||||
@Log(title = "入职管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody EmployeeOnboardingBo bo) {
|
||||
return toAjax(iEmployeeOnboardingService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入职管理
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:edit")
|
||||
@Log(title = "入职管理", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EmployeeOnboardingBo bo) {
|
||||
return toAjax(iEmployeeOnboardingService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除入职管理
|
||||
*
|
||||
* @param onboardingIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:onboarding:remove")
|
||||
@Log(title = "入职管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{onboardingIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] onboardingIds) {
|
||||
return toAjax(iEmployeeOnboardingService.deleteWithValidByIds(Arrays.asList(onboardingIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.ruoyi.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 离职管理对象 employee_offboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("employee_offboarding")
|
||||
public class EmployeeOffboarding extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 离职记录ID
|
||||
*/
|
||||
@TableId(value = "offboarding_id")
|
||||
private Long offboardingId;
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 离职日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date resignationDate;
|
||||
/**
|
||||
* 离职面谈
|
||||
*/
|
||||
private Integer exitInterview;
|
||||
/**
|
||||
* 工作交接
|
||||
*/
|
||||
private Integer handoverCompleted;
|
||||
/**
|
||||
* 离职原因
|
||||
*/
|
||||
private String exitReason;
|
||||
/**
|
||||
* 最终结算工资
|
||||
*/
|
||||
private BigDecimal finalSalary;
|
||||
/**
|
||||
* 离职申请
|
||||
*/
|
||||
private Integer resignationApplicationSubmitted;
|
||||
/**
|
||||
* 数据备份
|
||||
*/
|
||||
private Integer dataBackupCompleted;
|
||||
/**
|
||||
* 是否已安排工作交接
|
||||
*/
|
||||
private Integer handoverArranged;
|
||||
/**
|
||||
* 薪资结算是否完成
|
||||
*/
|
||||
private Integer salarySettled;
|
||||
/**
|
||||
* 福利结算是否完成
|
||||
*/
|
||||
private Integer benefitsSettled;
|
||||
/**
|
||||
* 离职证明
|
||||
*/
|
||||
private Integer exitCertificateIssued;
|
||||
/**
|
||||
* 确认离职
|
||||
*/
|
||||
private Integer offboardingConfirmed;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.ruoyi.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 入职管理对象 employee_onboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("employee_onboarding")
|
||||
public class EmployeeOnboarding extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 入职记录ID
|
||||
*/
|
||||
@TableId(value = "onboarding_id")
|
||||
private Long onboardingId;
|
||||
/**
|
||||
* 证件照
|
||||
*/
|
||||
private String idPhoto;
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 入职日期
|
||||
*/
|
||||
private Date joiningDate;
|
||||
/**
|
||||
* 试用期结束日期
|
||||
*/
|
||||
private Date probationPeriodEnd;
|
||||
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 直属经理ID
|
||||
*/
|
||||
private Long managerId;
|
||||
/**
|
||||
* 是否提交入职资料
|
||||
*/
|
||||
private Integer documentsSubmitted;
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
private Integer orientationCompleted;
|
||||
/**
|
||||
* 入职状态(pending,completed,onboarding)
|
||||
*/
|
||||
private Long joiningStatus;
|
||||
/**
|
||||
* 是否完成招聘与面试
|
||||
*/
|
||||
private Integer recruitmentCompleted;
|
||||
/**
|
||||
* 是否已发放Offer
|
||||
*/
|
||||
private Integer offerIssued;
|
||||
/**
|
||||
* 是否已签署合同
|
||||
*/
|
||||
private Integer contractSigned;
|
||||
/**
|
||||
* 入职材料/工作准备是否完成
|
||||
*/
|
||||
private Integer materialsPrepared;
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
private Integer trainingCompleted;
|
||||
/**
|
||||
* 是否完成工作条件准备(权限分配、工位等)
|
||||
*/
|
||||
private Integer workConditionsPrepared;
|
||||
/**
|
||||
* 最高学历
|
||||
*/
|
||||
private String highestDegree;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
private Date birthDate;
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
private String ethnicity;
|
||||
/**
|
||||
* 转正日期
|
||||
*/
|
||||
private Date confirmDate;
|
||||
/**
|
||||
* 婚姻状态
|
||||
*/
|
||||
private String maritalStatus;
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
private String politicalStatus;
|
||||
/**
|
||||
* 身高
|
||||
*/
|
||||
private Long height;
|
||||
/**
|
||||
* 体重
|
||||
*/
|
||||
private Long weight;
|
||||
/**
|
||||
* 编制类型
|
||||
*/
|
||||
private String staffType;
|
||||
/**
|
||||
* 紧急联系人1
|
||||
*/
|
||||
private String emergencyContact1;
|
||||
/**
|
||||
* 紧急联系人2
|
||||
*/
|
||||
private String emergencyContact2;
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.ruoyi.oa.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 离职管理业务对象 employee_offboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmployeeOffboardingBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 离职记录ID
|
||||
*/
|
||||
private Long offboardingId;
|
||||
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 离职日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date resignationDate;
|
||||
|
||||
/**
|
||||
* 离职面谈
|
||||
*/
|
||||
private Integer exitInterview;
|
||||
|
||||
/**
|
||||
* 工作交接
|
||||
*/
|
||||
private Integer handoverCompleted;
|
||||
|
||||
/**
|
||||
* 离职原因
|
||||
*/
|
||||
private String exitReason;
|
||||
|
||||
/**
|
||||
* 最终结算工资
|
||||
*/
|
||||
private BigDecimal finalSalary;
|
||||
|
||||
/**
|
||||
* 离职申请
|
||||
*/
|
||||
private Integer resignationApplicationSubmitted;
|
||||
|
||||
/**
|
||||
* 数据备份
|
||||
*/
|
||||
private Integer dataBackupCompleted;
|
||||
|
||||
/**
|
||||
* 是否已安排工作交接
|
||||
*/
|
||||
private Integer handoverArranged;
|
||||
|
||||
/**
|
||||
* 薪资结算是否完成
|
||||
*/
|
||||
private Integer salarySettled;
|
||||
|
||||
/**
|
||||
* 福利结算是否完成
|
||||
*/
|
||||
private Integer benefitsSettled;
|
||||
|
||||
/**
|
||||
* 离职证明
|
||||
*/
|
||||
private Integer exitCertificateIssued;
|
||||
|
||||
/**
|
||||
* 确认离职
|
||||
*/
|
||||
private Integer offboardingConfirmed;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
package com.ruoyi.oa.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 入职管理业务对象 employee_onboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EmployeeOnboardingBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 入职记录ID
|
||||
*/
|
||||
private Long onboardingId;
|
||||
|
||||
/**
|
||||
* 证件照
|
||||
*/
|
||||
private String idPhoto;
|
||||
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 入职日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date joiningDate;
|
||||
|
||||
/**
|
||||
* 试用期结束日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date probationPeriodEnd;
|
||||
|
||||
/**
|
||||
* 直属经理ID
|
||||
*/
|
||||
private Long managerId;
|
||||
|
||||
/**
|
||||
* 是否提交入职资料
|
||||
*/
|
||||
private Integer documentsSubmitted;
|
||||
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
private Integer orientationCompleted;
|
||||
|
||||
/**
|
||||
* 入职状态(pending,completed,onboarding)
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Long joiningStatus;
|
||||
|
||||
/**
|
||||
* 是否完成招聘与面试
|
||||
*/
|
||||
private Integer recruitmentCompleted;
|
||||
|
||||
/**
|
||||
* 是否已发放Offer
|
||||
*/
|
||||
private Integer offerIssued;
|
||||
|
||||
/**
|
||||
* 是否已签署合同
|
||||
*/
|
||||
private Integer contractSigned;
|
||||
|
||||
/**
|
||||
* 入职材料/工作准备是否完成
|
||||
*/
|
||||
private Integer materialsPrepared;
|
||||
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
private Integer trainingCompleted;
|
||||
|
||||
/**
|
||||
* 是否完成工作条件准备(权限分配、工位等)
|
||||
*/
|
||||
private Integer workConditionsPrepared;
|
||||
|
||||
/**
|
||||
* 最高学历
|
||||
*/
|
||||
private String highestDegree;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date birthDate;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
private String ethnicity;
|
||||
|
||||
/**
|
||||
* 转正日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date confirmDate;
|
||||
|
||||
/**
|
||||
* 婚姻状态
|
||||
*/
|
||||
private String maritalStatus;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
private String politicalStatus;
|
||||
|
||||
/**
|
||||
* 身高
|
||||
*/
|
||||
private Long height;
|
||||
|
||||
/**
|
||||
* 体重
|
||||
*/
|
||||
private Long weight;
|
||||
|
||||
/**
|
||||
* 编制类型
|
||||
*/
|
||||
private String staffType;
|
||||
|
||||
/**
|
||||
* 紧急联系人1
|
||||
*/
|
||||
private String emergencyContact1;
|
||||
|
||||
/**
|
||||
* 紧急联系人2
|
||||
*/
|
||||
private String emergencyContact2;
|
||||
|
||||
private String address;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.ruoyi.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 离职管理视图对象 employee_offboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class EmployeeOffboardingVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 离职记录ID
|
||||
*/
|
||||
@ExcelProperty(value = "离职记录ID")
|
||||
private Long offboardingId;
|
||||
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
@ExcelProperty(value = "用户ID (外键)")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 离职日期
|
||||
*/
|
||||
@ExcelProperty(value = "离职日期")
|
||||
private Date resignationDate;
|
||||
|
||||
/**
|
||||
* 离职面谈
|
||||
*/
|
||||
@ExcelProperty(value = "离职面谈")
|
||||
private Integer exitInterview;
|
||||
|
||||
/**
|
||||
* 工作交接
|
||||
*/
|
||||
@ExcelProperty(value = "工作交接")
|
||||
private Integer handoverCompleted;
|
||||
|
||||
/**
|
||||
* 离职原因
|
||||
*/
|
||||
@ExcelProperty(value = "离职原因")
|
||||
private String exitReason;
|
||||
|
||||
/**
|
||||
* 最终结算工资
|
||||
*/
|
||||
@ExcelProperty(value = "最终结算工资")
|
||||
private BigDecimal finalSalary;
|
||||
|
||||
/**
|
||||
* 离职申请
|
||||
*/
|
||||
@ExcelProperty(value = "离职申请")
|
||||
private Integer resignationApplicationSubmitted;
|
||||
|
||||
/**
|
||||
* 数据备份
|
||||
*/
|
||||
@ExcelProperty(value = "数据备份")
|
||||
private Integer dataBackupCompleted;
|
||||
|
||||
/**
|
||||
* 是否已安排工作交接
|
||||
*/
|
||||
@ExcelProperty(value = "是否已安排工作交接")
|
||||
private Integer handoverArranged;
|
||||
|
||||
/**
|
||||
* 薪资结算是否完成
|
||||
*/
|
||||
@ExcelProperty(value = "薪资结算是否完成")
|
||||
private Integer salarySettled;
|
||||
|
||||
/**
|
||||
* 福利结算是否完成
|
||||
*/
|
||||
@ExcelProperty(value = "福利结算是否完成")
|
||||
private Integer benefitsSettled;
|
||||
|
||||
/**
|
||||
* 离职证明
|
||||
*/
|
||||
@ExcelProperty(value = "离职证明")
|
||||
private Integer exitCertificateIssued;
|
||||
|
||||
/**
|
||||
* 确认离职
|
||||
*/
|
||||
@ExcelProperty(value = "确认离职")
|
||||
private Integer offboardingConfirmed;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
package com.ruoyi.oa.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import com.ruoyi.oa.domain.EmployeeOnboarding;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 入职管理视图对象 employee_onboarding
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class EmployeeOnboardingVo extends EmployeeOnboarding {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 入职记录ID
|
||||
*/
|
||||
@ExcelProperty(value = "入职记录ID")
|
||||
private Long onboardingId;
|
||||
|
||||
/**
|
||||
* 证件照
|
||||
*/
|
||||
@ExcelProperty(value = "证件照")
|
||||
private String idPhoto;
|
||||
|
||||
/**
|
||||
* 用户ID (外键)
|
||||
*/
|
||||
@ExcelProperty(value = "用户ID (外键)")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 入职日期
|
||||
*/
|
||||
@ExcelProperty(value = "入职日期")
|
||||
private Date joiningDate;
|
||||
|
||||
/**
|
||||
* 试用期结束日期
|
||||
*/
|
||||
@ExcelProperty(value = "试用期结束日期")
|
||||
private Date probationPeriodEnd;
|
||||
|
||||
/**
|
||||
* 直属经理ID
|
||||
*/
|
||||
@ExcelProperty(value = "直属经理ID")
|
||||
private Long managerId;
|
||||
|
||||
/**
|
||||
* 是否提交入职资料
|
||||
*/
|
||||
@ExcelProperty(value = "是否提交入职资料")
|
||||
private Integer documentsSubmitted;
|
||||
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
@ExcelProperty(value = "是否完成入职培训")
|
||||
private Integer orientationCompleted;
|
||||
|
||||
/**
|
||||
* 入职状态(pending,completed,onboarding)
|
||||
*/
|
||||
@ExcelProperty(value = "入职状态(pending,completed,onboarding)", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "joining_status")
|
||||
private Long joiningStatus;
|
||||
|
||||
/**
|
||||
* 是否完成招聘与面试
|
||||
*/
|
||||
@ExcelProperty(value = "是否完成招聘与面试")
|
||||
private Integer recruitmentCompleted;
|
||||
|
||||
/**
|
||||
* 是否已发放Offer
|
||||
*/
|
||||
@ExcelProperty(value = "是否已发放Offer")
|
||||
private Integer offerIssued;
|
||||
|
||||
/**
|
||||
* 是否已签署合同
|
||||
*/
|
||||
@ExcelProperty(value = "是否已签署合同")
|
||||
private Integer contractSigned;
|
||||
|
||||
/**
|
||||
* 入职材料/工作准备是否完成
|
||||
*/
|
||||
@ExcelProperty(value = "入职材料/工作准备是否完成")
|
||||
private Integer materialsPrepared;
|
||||
|
||||
/**
|
||||
* 是否完成入职培训
|
||||
*/
|
||||
@ExcelProperty(value = "是否完成入职培训")
|
||||
private Integer trainingCompleted;
|
||||
|
||||
/**
|
||||
* 是否完成工作条件准备(权限分配、工位等)
|
||||
*/
|
||||
@ExcelProperty(value = "是否完成工作条件准备", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "权=限分配、工位等")
|
||||
private Integer workConditionsPrepared;
|
||||
|
||||
/**
|
||||
* 最高学历
|
||||
*/
|
||||
@ExcelProperty(value = "最高学历")
|
||||
private String highestDegree;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
@ExcelProperty(value = "出生日期")
|
||||
private Date birthDate;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
@ExcelProperty(value = "民族")
|
||||
private String ethnicity;
|
||||
|
||||
/**
|
||||
* 转正日期
|
||||
*/
|
||||
@ExcelProperty(value = "转正日期")
|
||||
private Date confirmDate;
|
||||
|
||||
/**
|
||||
* 婚姻状态
|
||||
*/
|
||||
@ExcelProperty(value = "婚姻状态")
|
||||
private String maritalStatus;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
@ExcelProperty(value = "政治面貌")
|
||||
private String politicalStatus;
|
||||
|
||||
/**
|
||||
* 身高
|
||||
*/
|
||||
@ExcelProperty(value = "身高")
|
||||
private Long height;
|
||||
|
||||
/**
|
||||
* 体重
|
||||
*/
|
||||
@ExcelProperty(value = "体重")
|
||||
private Long weight;
|
||||
|
||||
/**
|
||||
* 编制类型
|
||||
*/
|
||||
@ExcelProperty(value = "编制类型")
|
||||
private String staffType;
|
||||
|
||||
/**
|
||||
* 紧急联系人1
|
||||
*/
|
||||
@ExcelProperty(value = "紧急联系人1")
|
||||
private String emergencyContact1;
|
||||
|
||||
/**
|
||||
* 紧急联系人2
|
||||
*/
|
||||
@ExcelProperty(value = "紧急联系人2")
|
||||
private String emergencyContact2;
|
||||
|
||||
/** 用户名 */
|
||||
private String userName;
|
||||
|
||||
/** 名字 */
|
||||
private String nickName;
|
||||
|
||||
/** 手机号 */
|
||||
private String phonenumber;
|
||||
|
||||
/** 邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 住址 */
|
||||
private String address;
|
||||
|
||||
/** 性别 */
|
||||
private Long sex;
|
||||
|
||||
/** 部门id */
|
||||
private Long deptId;
|
||||
|
||||
/** 身份证号 */
|
||||
private String idCard;
|
||||
|
||||
/** 银行卡号 */
|
||||
private String bankCard;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
import com.ruoyi.oa.domain.EmployeeOffboarding;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 离职管理Mapper接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
public interface EmployeeOffboardingMapper extends BaseMapperPlus<EmployeeOffboardingMapper, EmployeeOffboarding, EmployeeOffboardingVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import com.ruoyi.oa.domain.EmployeeOnboarding;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
|
||||
|
||||
/**
|
||||
* 入职管理Mapper接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
public interface EmployeeOnboardingMapper extends BaseMapperPlus<EmployeeOnboardingMapper, EmployeeOnboarding, EmployeeOnboardingVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.EmployeeOffboarding;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOffboardingBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 离职管理Service接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
public interface IEmployeeOffboardingService {
|
||||
|
||||
/**
|
||||
* 查询离职管理
|
||||
*/
|
||||
EmployeeOffboardingVo queryById(Long offboardingId);
|
||||
|
||||
/**
|
||||
* 查询离职管理列表
|
||||
*/
|
||||
TableDataInfo<EmployeeOffboardingVo> queryPageList(EmployeeOffboardingBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询离职管理列表
|
||||
*/
|
||||
List<EmployeeOffboardingVo> queryList(EmployeeOffboardingBo bo);
|
||||
|
||||
/**
|
||||
* 新增离职管理
|
||||
*/
|
||||
Boolean insertByBo(EmployeeOffboardingBo bo);
|
||||
|
||||
/**
|
||||
* 修改离职管理
|
||||
*/
|
||||
Boolean updateByBo(EmployeeOffboardingBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除离职管理信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 入职管理Service接口
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
public interface IEmployeeOnboardingService {
|
||||
|
||||
/**
|
||||
* 查询入职管理
|
||||
*/
|
||||
EmployeeOnboardingVo queryById(Long onboardingId);
|
||||
|
||||
/**
|
||||
* 查询入职管理列表
|
||||
*/
|
||||
TableDataInfo<EmployeeOnboardingVo> queryPageList(EmployeeOnboardingBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询入职管理列表
|
||||
*/
|
||||
List<EmployeeOnboardingVo> queryList(EmployeeOnboardingBo bo);
|
||||
|
||||
/**
|
||||
* 新增入职管理
|
||||
*/
|
||||
Boolean insertByBo(EmployeeOnboardingBo bo);
|
||||
|
||||
/**
|
||||
* 修改入职管理
|
||||
*/
|
||||
Boolean updateByBo(EmployeeOnboardingBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除入职管理信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import liquibase.pro.packaged.A;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOffboardingBo;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOffboardingVo;
|
||||
import com.ruoyi.oa.domain.EmployeeOffboarding;
|
||||
import com.ruoyi.oa.mapper.EmployeeOffboardingMapper;
|
||||
import com.ruoyi.oa.service.IEmployeeOffboardingService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 离职管理Service业务层处理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-16
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class EmployeeOffboardingServiceImpl implements IEmployeeOffboardingService {
|
||||
|
||||
private final EmployeeOffboardingMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
/**
|
||||
* 查询离职管理
|
||||
*/
|
||||
@Override
|
||||
public EmployeeOffboardingVo queryById(Long offboardingId){
|
||||
EmployeeOffboardingVo employeeOffboardingVo = baseMapper.selectVoById(offboardingId);
|
||||
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOffboardingVo.getUserId());
|
||||
employeeOffboardingVo.setNickName(sysUser.getUserName());
|
||||
return employeeOffboardingVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询离职管理列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<EmployeeOffboardingVo> queryPageList(EmployeeOffboardingBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<EmployeeOffboarding> lqw = buildQueryWrapper(bo);
|
||||
Page<EmployeeOffboardingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(item -> {
|
||||
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(item.getUserId());
|
||||
item.setNickName(sysUser.getUserName());
|
||||
});
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询离职管理列表
|
||||
*/
|
||||
@Override
|
||||
public List<EmployeeOffboardingVo> queryList(EmployeeOffboardingBo bo) {
|
||||
LambdaQueryWrapper<EmployeeOffboarding> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<EmployeeOffboarding> buildQueryWrapper(EmployeeOffboardingBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<EmployeeOffboarding> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getUserId() != null, EmployeeOffboarding::getUserId, bo.getUserId());
|
||||
lqw.eq(bo.getResignationDate() != null, EmployeeOffboarding::getResignationDate, bo.getResignationDate());
|
||||
lqw.eq(bo.getExitInterview() != null, EmployeeOffboarding::getExitInterview, bo.getExitInterview());
|
||||
lqw.eq(bo.getHandoverCompleted() != null, EmployeeOffboarding::getHandoverCompleted, bo.getHandoverCompleted());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getExitReason()), EmployeeOffboarding::getExitReason, bo.getExitReason());
|
||||
lqw.eq(bo.getFinalSalary() != null, EmployeeOffboarding::getFinalSalary, bo.getFinalSalary());
|
||||
lqw.eq(bo.getResignationApplicationSubmitted() != null, EmployeeOffboarding::getResignationApplicationSubmitted, bo.getResignationApplicationSubmitted());
|
||||
lqw.eq(bo.getDataBackupCompleted() != null, EmployeeOffboarding::getDataBackupCompleted, bo.getDataBackupCompleted());
|
||||
lqw.eq(bo.getHandoverArranged() != null, EmployeeOffboarding::getHandoverArranged, bo.getHandoverArranged());
|
||||
lqw.eq(bo.getSalarySettled() != null, EmployeeOffboarding::getSalarySettled, bo.getSalarySettled());
|
||||
lqw.eq(bo.getBenefitsSettled() != null, EmployeeOffboarding::getBenefitsSettled, bo.getBenefitsSettled());
|
||||
lqw.eq(bo.getExitCertificateIssued() != null, EmployeeOffboarding::getExitCertificateIssued, bo.getExitCertificateIssued());
|
||||
lqw.eq(bo.getOffboardingConfirmed() != null, EmployeeOffboarding::getOffboardingConfirmed, bo.getOffboardingConfirmed());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增离职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(EmployeeOffboardingBo bo) {
|
||||
EmployeeOffboarding add = BeanUtil.toBean(bo, EmployeeOffboarding.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOffboardingId(add.getOffboardingId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改离职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(EmployeeOffboardingBo bo) {
|
||||
EmployeeOffboarding update = BeanUtil.toBean(bo, EmployeeOffboarding.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(EmployeeOffboarding entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除离职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.oa.domain.EmployeeOnboarding;
|
||||
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
|
||||
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
|
||||
import com.ruoyi.oa.mapper.EmployeeOnboardingMapper;
|
||||
import com.ruoyi.oa.service.IEmployeeOnboardingService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 入职管理Service业务层处理
|
||||
*
|
||||
* @author hdka
|
||||
* @date 2025-02-15
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService {
|
||||
|
||||
private final EmployeeOnboardingMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
/**
|
||||
* 查询入职管理
|
||||
*/
|
||||
@Override
|
||||
public EmployeeOnboardingVo queryById(Long onboardingId){
|
||||
EmployeeOnboardingVo employeeOnboardingVo = baseMapper.selectVoById(onboardingId);
|
||||
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOnboardingVo.getUserId());
|
||||
employeeOnboardingVo.setUserName(sysUser.getUserName());
|
||||
employeeOnboardingVo.setNickName(sysUser.getNickName());
|
||||
employeeOnboardingVo.setEmail(sysUser.getEmail());
|
||||
employeeOnboardingVo.setPhonenumber(sysUser.getPhonenumber());
|
||||
employeeOnboardingVo.setBankCard(sysUser.getBankCard());
|
||||
employeeOnboardingVo.setIdCard(sysUser.getIdCard());
|
||||
employeeOnboardingVo.setDeptId(sysUser.getDeptId());
|
||||
return employeeOnboardingVo;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入职管理列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<EmployeeOnboardingVo> queryPageList(EmployeeOnboardingBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<EmployeeOnboarding> lqw = buildQueryWrapper(bo);
|
||||
Page<EmployeeOnboardingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
result.getRecords().forEach(employeeOnboardingVo -> {
|
||||
SysUser sysUser = userService.selectUserByIdAndNotDelFlag(employeeOnboardingVo.getUserId());
|
||||
employeeOnboardingVo.setNickName(sysUser.getNickName());
|
||||
});
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入职管理列表
|
||||
*/
|
||||
@Override
|
||||
public List<EmployeeOnboardingVo> queryList(EmployeeOnboardingBo bo) {
|
||||
LambdaQueryWrapper<EmployeeOnboarding> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<EmployeeOnboarding> buildQueryWrapper(EmployeeOnboardingBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<EmployeeOnboarding> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getUserId() != null, EmployeeOnboarding::getUserId, bo.getUserId());
|
||||
lqw.eq(bo.getJoiningDate() != null, EmployeeOnboarding::getJoiningDate, bo.getJoiningDate());
|
||||
lqw.eq(bo.getProbationPeriodEnd() != null, EmployeeOnboarding::getProbationPeriodEnd, bo.getProbationPeriodEnd());
|
||||
lqw.eq(bo.getManagerId() != null, EmployeeOnboarding::getManagerId, bo.getManagerId());
|
||||
lqw.eq(bo.getDocumentsSubmitted() != null, EmployeeOnboarding::getDocumentsSubmitted, bo.getDocumentsSubmitted());
|
||||
lqw.eq(bo.getOrientationCompleted() != null, EmployeeOnboarding::getOrientationCompleted, bo.getOrientationCompleted());
|
||||
lqw.eq(bo.getJoiningStatus() != null, EmployeeOnboarding::getJoiningStatus, bo.getJoiningStatus());
|
||||
lqw.eq(bo.getRecruitmentCompleted() != null, EmployeeOnboarding::getRecruitmentCompleted, bo.getRecruitmentCompleted());
|
||||
lqw.eq(bo.getOfferIssued() != null, EmployeeOnboarding::getOfferIssued, bo.getOfferIssued());
|
||||
lqw.eq(bo.getContractSigned() != null, EmployeeOnboarding::getContractSigned, bo.getContractSigned());
|
||||
lqw.eq(bo.getMaterialsPrepared() != null, EmployeeOnboarding::getMaterialsPrepared, bo.getMaterialsPrepared());
|
||||
lqw.eq(bo.getTrainingCompleted() != null, EmployeeOnboarding::getTrainingCompleted, bo.getTrainingCompleted());
|
||||
lqw.eq(bo.getWorkConditionsPrepared() != null, EmployeeOnboarding::getWorkConditionsPrepared, bo.getWorkConditionsPrepared());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增入职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(EmployeeOnboardingBo bo) {
|
||||
EmployeeOnboarding add = BeanUtil.toBean(bo, EmployeeOnboarding.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOnboardingId(add.getOnboardingId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(EmployeeOnboardingBo bo) {
|
||||
EmployeeOnboarding update = BeanUtil.toBean(bo, EmployeeOnboarding.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(EmployeeOnboarding entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除入职管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user