Commit 8d63cf30 authored by 刘斌's avatar 刘斌

feat: 增加新字段,修改所有审批

parent d0b7b557
...@@ -90,4 +90,14 @@ public interface HrConstant { ...@@ -90,4 +90,14 @@ public interface HrConstant {
* 员工异动类型 * 员工异动类型
*/ */
String HR_CHANGE_LOG_TYPE = "hr_change_log_type"; String HR_CHANGE_LOG_TYPE = "hr_change_log_type";
/**
* 员工离职类别
*/
String HR_RESIGNATION_CATEGORY = "hr_resignation_category";
/**
* 员工成本费用细分
*/
String HR_COST_TYPE = "hr_cost_type";
} }
...@@ -69,6 +69,19 @@ public class EmployeeFlowCtrl { ...@@ -69,6 +69,19 @@ public class EmployeeFlowCtrl {
return SingleResponse.of(employeeFlowServ.queryById(id)); return SingleResponse.of(employeeFlowServ.queryById(id));
} }
/**
* 初始化人事审批对象详细信息
*
* @param type 类型
* @param id 主键
*/
// @SaCheckPermission("employee:flow:query")
@GetMapping("/init/{type}/{id}")
public SingleResponse<EmployeeFlowVo> initByEmployeeId(@PathVariable String type, @PathVariable @Min(1)
Long id) {
return SingleResponse.of(employeeFlowServ.initByEmployeeId(type, id));
}
/** /**
* 新增人事审批对象 * 新增人事审批对象
*/ */
......
...@@ -10,6 +10,7 @@ import com.alibaba.cola.dto.SingleResponse; ...@@ -10,6 +10,7 @@ import com.alibaba.cola.dto.SingleResponse;
import com.anplus.hr.domain.params.*; import com.anplus.hr.domain.params.*;
import com.anplus.hr.domain.vo.EmployeeFlowVo; import com.anplus.hr.domain.vo.EmployeeFlowVo;
import com.anplus.hr.domain.vo.EmployeeInfoImportVo; import com.anplus.hr.domain.vo.EmployeeInfoImportVo;
import com.anplus.hr.domain.vo.EmployeeInfoResumeVo;
import com.anplus.hr.domain.vo.EmployeeInfoVo; import com.anplus.hr.domain.vo.EmployeeInfoVo;
import com.anplus.hr.service.EmployeeInfoServ; import com.anplus.hr.service.EmployeeInfoServ;
import com.anplus.hr.service.EmployeeSysDeptServ; import com.anplus.hr.service.EmployeeSysDeptServ;
...@@ -83,8 +84,8 @@ public class EmployeeInfoCtrl { ...@@ -83,8 +84,8 @@ public class EmployeeInfoCtrl {
@SaCheckPermission("employee:info:export") @SaCheckPermission("employee:info:export")
@PinSysLog(value = "员工信息", businessType = BusinessType.EXPORT) @PinSysLog(value = "员工信息", businessType = BusinessType.EXPORT)
@PostMapping("/export/{id}") @PostMapping("/export/{id}")
public List<EmployeeInfoVo> export(@PathVariable Long id) { public List<EmployeeInfoResumeVo> export(@PathVariable Long id) {
EmployeeInfoVo vo = employeeInfoServ.infoDetail(id); EmployeeInfoResumeVo vo = employeeInfoServ.infoDetailForResume(id);
return List.of(vo); return List.of(vo);
} }
......
...@@ -111,34 +111,39 @@ public class EmployeeInfo extends TenantModel { ...@@ -111,34 +111,39 @@ public class EmployeeInfo extends TenantModel {
private String ageGroup; private String ageGroup;
/** /**
* 兼板块 * 兼板块
*/ */
private String partTimePlate; private String concurrentPlate;
/** /**
* 兼一级部门 * 兼一级部门
*/ */
private String partTimeFirstDept; private String concurrentFirstDept;
/** /**
* 兼二级部门 * 兼二级部门
*/ */
private String partTimeSecondDept; private String concurrentSecondDept;
/** /**
* 兼三级部门 * 兼三级部门
*/ */
private String partTimeThirdDept; private String concurrentThirdDept;
/** /**
* 兼部门ID * 兼部门ID
*/ */
private Long partDeptId; private Long concurrentDeptId;
/** /**
* 兼岗位 * 兼岗位
*/ */
private String partTimePosition; private String concurrentPosition;
/**
* 兼岗岗位类型
*/
private String concurrentPositionType;
/** /**
* 籍贯 * 籍贯
...@@ -350,6 +355,11 @@ public class EmployeeInfo extends TenantModel { ...@@ -350,6 +355,11 @@ public class EmployeeInfo extends TenantModel {
*/ */
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/** /**
* 试用期(月数) * 试用期(月数)
*/ */
...@@ -415,21 +425,66 @@ public class EmployeeInfo extends TenantModel { ...@@ -415,21 +425,66 @@ public class EmployeeInfo extends TenantModel {
*/ */
private String introducer; private String introducer;
/**
* 介绍人关系
*/
private String introducerRelation;
/** /**
* 工资发放地 * 工资发放地
*/ */
private String salaryLocation; private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/** /**
* 绩效比例 * 绩效比例
*/ */
private String performanceRatio; private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/** /**
* 离职类型 * 离职类型
*/ */
private String resignationType; private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
......
...@@ -111,6 +111,90 @@ public class EmployeeBaseInfoParam { ...@@ -111,6 +111,90 @@ public class EmployeeBaseInfoParam {
@NotBlank(message = "户口所在地不能为空") @NotBlank(message = "户口所在地不能为空")
private String householdRegistrationAddress; private String householdRegistrationAddress;
/**
* 参加工作时间
*/
// @NotNull(message = "参加工作时间不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDate workStartDate;
/**
* 职称情况
*/
// @NotBlank(message = "职称情况不能为空", groups = { AddGroup.class, EditGroup.class })
private String professionalTitle;
/**
* 证书情况
*/
// @NotBlank(message = "证书情况不能为空", groups = { AddGroup.class, EditGroup.class })
private String certificateStatus;
/**
* 全日制学历
*/
// @NotBlank(message = "全日制学历不能为空", groups = { AddGroup.class, EditGroup.class })
private String fulltimeEducation;
/**
* 全日制毕业院校
*/
// @NotBlank(message = "全日制毕业院校不能为空", groups = { AddGroup.class, EditGroup.class })
private String fulltimeSchool;
/**
* 全日制专业
*/
// @NotBlank(message = "全日制专业不能为空", groups = { AddGroup.class, EditGroup.class })
private String fulltimeMajor;
/**
* 全日制毕业日期
*/
// @NotNull(message = "全日制毕业日期不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDate fulltimeGraduationDate;
/**
* 全日制学位
*/
// @NotBlank(message = "全日制学位不能为空", groups = { AddGroup.class, EditGroup.class })
private String fulltimeDegree;
/**
* 非全日制学历
*/
// @NotBlank(message = "非全日制学历不能为空", groups = { AddGroup.class, EditGroup.class })
private String nonFulltimeEducation;
/**
* 非全日制毕业院校
*/
// @NotBlank(message = "非全日制毕业院校不能为空", groups = { AddGroup.class, EditGroup.class })
private String nonFulltimeSchool;
/**
* 非全日制专业
*/
// @NotBlank(message = "非全日制专业不能为空", groups = { AddGroup.class, EditGroup.class })
private String nonFulltimeMajor;
/**
* 非全日制毕业日期
*/
// @NotNull(message = "非全日制毕业日期不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDate nonFulltimeGraduationDate;
/**
* 非全日制学位
*/
// @NotBlank(message = "非全日制学位不能为空", groups = { AddGroup.class, EditGroup.class })
private String nonFulltimeDegree;
/**
* 外部个人履历
*/
// @NotBlank(message = "外部个人履历不能为空", groups = { AddGroup.class, EditGroup.class })
private String externalResume;
/** /**
* tid * tid
*/ */
......
...@@ -104,29 +104,34 @@ public class EmployeeInfoListParam extends PageQueryParam { ...@@ -104,29 +104,34 @@ public class EmployeeInfoListParam extends PageQueryParam {
private String ageGroup; private String ageGroup;
/** /**
* 兼板块 * 兼板块
*/ */
private String partTimePlate; private String concurrentPlate;
/** /**
* 兼一级部门 * 兼一级部门
*/ */
private String partTimeFirstDept; private String concurrentFirstDept;
/** /**
* 兼二级部门 * 兼二级部门
*/ */
private String partTimeSecondDept; private String concurrentSecondDept;
/** /**
* 兼三级部门 * 兼三级部门
*/ */
private String partTimeThirdDept; private String concurrentThirdDept;
/** /**
* 兼岗位 * 兼岗位
*/ */
private String partTimePosition; private String concurrentPosition;
/**
* 兼岗岗位类型
*/
private String concurrentPositionType;
/** /**
* 籍贯 * 籍贯
...@@ -333,6 +338,11 @@ public class EmployeeInfoListParam extends PageQueryParam { ...@@ -333,6 +338,11 @@ public class EmployeeInfoListParam extends PageQueryParam {
*/ */
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/** /**
* 试用期(月数) * 试用期(月数)
*/ */
...@@ -398,16 +408,56 @@ public class EmployeeInfoListParam extends PageQueryParam { ...@@ -398,16 +408,56 @@ public class EmployeeInfoListParam extends PageQueryParam {
*/ */
private String salaryLocation; private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/** /**
* 绩效比例 * 绩效比例
*/ */
private String performanceRatio; private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/** /**
* 离职类型 * 离职类型
*/ */
private String resignationType; private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
......
package com.anplus.hr.domain.params; package com.anplus.hr.domain.params;
import cn.idev.excel.annotation.ExcelProperty;
import com.anplus.hr.constant.HrConstant;
import com.anplus.hr.domain.EmployeeInfo; import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import org.dromara.core.trans.anno.Trans;
import org.dromara.core.trans.constant.TransType;
import top.binfast.common.core.validate.AddGroup; import top.binfast.common.core.validate.AddGroup;
import top.binfast.common.core.validate.EditGroup; import top.binfast.common.core.validate.EditGroup;
import top.binfast.common.excel.annotion.ExcelDictFormat;
import top.binfast.common.excel.converters.ExcelDictConvert;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -134,39 +140,44 @@ public class EmployeeInfoParam { ...@@ -134,39 +140,44 @@ public class EmployeeInfoParam {
private String ageGroup; private String ageGroup;
/** /**
* 兼板块 * 兼板块
*/ */
// @NotBlank(message = "兼板块不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "兼板块不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimePlate; private String concurrentPlate;
/** /**
* 兼一级部门 * 兼一级部门
*/ */
// @NotBlank(message = "兼一级部门不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "兼一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeFirstDept; private String concurrentFirstDept;
/** /**
* 兼二级部门 * 兼二级部门
*/ */
// @NotBlank(message = "兼二级部门不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "兼二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeSecondDept; private String concurrentSecondDept;
/** /**
* 兼三级部门 * 兼三级部门
*/ */
// @NotBlank(message = "兼三级部门不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "兼三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeThirdDept; private String concurrentThirdDept;
/** /**
* 兼岗位 * 兼岗位
*/ */
// @NotBlank(message = "兼岗位不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "兼岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimePosition; private String concurrentPosition;
/** /**
* 兼职部门ID * 兼岗岗位类型
*/ */
private Long partDeptId; private String concurrentPositionType;
/**
* 兼岗部门ID
*/
private Long concurrentDeptId;
/** /**
* 籍贯 * 籍贯
...@@ -414,6 +425,11 @@ public class EmployeeInfoParam { ...@@ -414,6 +425,11 @@ public class EmployeeInfoParam {
// @NotBlank(message = "是否缴纳公积金不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "是否缴纳公积金不能为空", groups = { AddGroup.class, EditGroup.class })
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/** /**
* 试用期(月数) * 试用期(月数)
*/ */
...@@ -486,24 +502,69 @@ public class EmployeeInfoParam { ...@@ -486,24 +502,69 @@ public class EmployeeInfoParam {
// @NotBlank(message = "介绍人不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "介绍人不能为空", groups = { AddGroup.class, EditGroup.class })
private String introducer; private String introducer;
/**
* 介绍人关系
*/
private String introducerRelation;
/** /**
* 工资发放地 * 工资发放地
*/ */
// @NotBlank(message = "工资发放地不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "工资发放地不能为空", groups = { AddGroup.class, EditGroup.class })
private String salaryLocation; private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/** /**
* 绩效比例 * 绩效比例
*/ */
// @NotNull(message = "绩效比例不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotNull(message = "绩效比例不能为空", groups = { AddGroup.class, EditGroup.class })
private String performanceRatio; private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/** /**
* 离职类型 * 离职类型
*/ */
// @NotBlank(message = "离职类型不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "离职类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String resignationType; private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
......
...@@ -15,8 +15,8 @@ import java.time.LocalDate; ...@@ -15,8 +15,8 @@ import java.time.LocalDate;
* 员工类型:转正员工 * 员工类型:转正员工
* 用工形式:正式工 * 用工形式:正式工
* 合同形式:新签 * 合同形式:新签
* 劳动合同期限:开始时间-结束时间 * 劳动合同期限:开始时间-结束时间(废弃!)
* 合同到期提醒:结束时间减一个月 * 合同到期提醒:结束时间减一个月(废弃!)
*/ */
@Data @Data
public class EmployeeRegularApplyParam { public class EmployeeRegularApplyParam {
...@@ -29,27 +29,32 @@ public class EmployeeRegularApplyParam { ...@@ -29,27 +29,32 @@ public class EmployeeRegularApplyParam {
@NotBlank(message = "员工不能为空") @NotBlank(message = "员工不能为空")
private Long employeeId; private Long employeeId;
/** // /**
* 劳动合同开始时间 // * 劳动合同开始时间
*/ // */
@NotNull(message = "劳动合同开始时间") // @NotNull(message = "劳动合同开始时间")
private LocalDate contractStartDate; // private LocalDate contractStartDate;
//
/** // /**
* 劳动合同截止时间 // * 劳动合同截止时间
*/ // */
@NotNull(message = "劳动合同截止时间") // @NotNull(message = "劳动合同截止时间")
private LocalDate contractEndDate; // private LocalDate contractEndDate;
//
/** // /**
* 劳动合同签订情况 // * 劳动合同签订情况
*/ // */
private String contractSigningStatus; // private String contractSigningStatus;
//
// /**
// * 合同主体
// */
// private String contractEntity;
/** /**
* 合同主体 * 转正时间
*/ */
private String contractEntity; private LocalDate regularizationDate;
/** /**
* 社保主体 * 社保主体
...@@ -72,9 +77,9 @@ public class EmployeeRegularApplyParam { ...@@ -72,9 +77,9 @@ public class EmployeeRegularApplyParam {
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/** /**
* 转正时间 * 是否缴纳雇主险
*/ */
private LocalDate regularizationDate; private String hasEmployerInsurancePaid;
private String remark; private String remark;
......
...@@ -12,7 +12,6 @@ import java.time.LocalDate; ...@@ -12,7 +12,6 @@ import java.time.LocalDate;
* @date 2025/11/18 11:36 * @date 2025/11/18 11:36
* *
* !!!需要自动填写的字段!!! * !!!需要自动填写的字段!!!
* 劳动合同期限:开始时间-结束时间
* 合同到期提醒:结束时间减一个月 * 合同到期提醒:结束时间减一个月
*/ */
@Data @Data
...@@ -26,6 +25,12 @@ public class EmployeeRenewalContractApplyParam { ...@@ -26,6 +25,12 @@ public class EmployeeRenewalContractApplyParam {
@NotBlank(message = "员工不能为空") @NotBlank(message = "员工不能为空")
private Long employeeId; private Long employeeId;
/**
* 劳动合同期限
*/
@NotBlank(message = "劳动合同期限不能为空")
private String contractTerm;
/** /**
* 合同形式 * 合同形式
*/ */
...@@ -41,7 +46,7 @@ public class EmployeeRenewalContractApplyParam { ...@@ -41,7 +46,7 @@ public class EmployeeRenewalContractApplyParam {
/** /**
* 劳动合同截止时间 * 劳动合同截止时间
*/ */
@NotNull(message = "劳动合同截止时间不能为空") // @NotNull(message = "劳动合同截止时间不能为空")
private LocalDate contractEndDate; private LocalDate contractEndDate;
/** /**
...@@ -49,6 +54,22 @@ public class EmployeeRenewalContractApplyParam { ...@@ -49,6 +54,22 @@ public class EmployeeRenewalContractApplyParam {
*/ */
private String contractSigningStatus; private String contractSigningStatus;
/**
* 合同主体
*/
@NotBlank(message = "合同主体不能为空")
private String contractEntity;
/**
* 社保主体
*/
private String socialSecurityEntity;
/**
* 公积金主体
*/
private String providentFundEntity;
private String remark; private String remark;
} }
...@@ -3,8 +3,6 @@ package com.anplus.hr.domain.params; ...@@ -3,8 +3,6 @@ package com.anplus.hr.domain.params;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import top.binfast.common.core.validate.AddGroup;
import top.binfast.common.core.validate.EditGroup;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -30,11 +28,17 @@ public class EmployeeResignApplyParam { ...@@ -30,11 +28,17 @@ public class EmployeeResignApplyParam {
@NotBlank(message = "离职类型不能为空") @NotBlank(message = "离职类型不能为空")
private String resignationType; private String resignationType;
/**
* 离职类别
*/
@NotBlank(message = "离职类别不能为空")
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
@NotNull(message = "离职时间不能为空") @NotNull(message = "离职时间不能为空")
private LocalDate resignDate; private LocalDate resignationDate;
/** /**
* 最后结薪日 * 最后结薪日
...@@ -45,7 +49,7 @@ public class EmployeeResignApplyParam { ...@@ -45,7 +49,7 @@ public class EmployeeResignApplyParam {
/** /**
* 离职原因 * 离职原因
*/ */
private String resignReason; private String resignationReason;
private String remark; private String remark;
......
...@@ -57,5 +57,32 @@ public class EmployeeTransferApplyParam { ...@@ -57,5 +57,32 @@ public class EmployeeTransferApplyParam {
@NotNull(message = "调配时间不能为空") @NotNull(message = "调配时间不能为空")
private LocalDate transferDate; private LocalDate transferDate;
/**
* 绩效比例
*/
// @NotNull(message = "绩效比例不能为空", groups = { AddGroup.class, EditGroup.class })
private String performanceRatio;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/**
* 内部个人履历
*/
// @NotBlank(message = "内部个人履历不能为空", groups = { AddGroup.class, EditGroup.class })
private String internalResume;
private String remark; private String remark;
} }
package com.anplus.hr.domain.vo;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
/**
* @author 刘斌
* @date 2025/12/2 10:25
*/
@Getter
@Setter
@AutoMappers({
@AutoMapper(target = EmployeeInfo.class, convertGenerate = false),
@AutoMapper(target = EmployeeFlowVo.class, convertGenerate = false),
})
public class EmployeeFlowEntryApplyVo extends EmployeeFlowVo {
/**
* 入职时间
*/
private LocalDate entryDate;
}
package com.anplus.hr.domain.vo;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
/**
* @author 刘斌
* @date 2025/12/2 10:50
*/
@Getter
@Setter
@AutoMappers({
@AutoMapper(target = EmployeeInfo.class, convertGenerate = false),
@AutoMapper(target = EmployeeFlowVo.class, convertGenerate = false),
})
public class EmployeeFlowRegularApplyVo extends EmployeeFlowVo {
// /**
// * 转正时间
// */
// private LocalDate regularizationDate;
/**
* 社保主体
*/
private String socialSecurityEntity;
/**
* 是否缴纳社保
*/
private String hasSocialSecurityPaid;
/**
* 公积金主体
*/
private String providentFundEntity;
/**
* 是否缴纳公积金
*/
private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
}
package com.anplus.hr.domain.vo;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
/**
* @author 刘斌
* @date 2025/12/2 10:54
*/
@Getter
@Setter
@AutoMappers({
@AutoMapper(target = EmployeeInfo.class, convertGenerate = false),
@AutoMapper(target = EmployeeFlowVo.class, convertGenerate = false),
})
public class EmployeeFlowRenewalContractApplyVo extends EmployeeFlowVo {
/**
* 劳动合同期限
*/
private String contractTerm;
/**
* 合同形式
*/
private String contractForm;
/**
* 劳动合同开始时间
*/
private LocalDate contractStartDate;
/**
* 劳动合同截止时间
*/
private LocalDate contractEndDate;
/**
* 合同主体
*/
private String contractEntity;
/**
* 社保主体
*/
private String socialSecurityEntity;
/**
* 公积金主体
*/
private String providentFundEntity;
/**
* 劳动合同签订情况
*/
private String contractSigningStatus;
}
package com.anplus.hr.domain.vo;
import com.anplus.hr.domain.EmployeeInfo;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Getter;
import lombok.Setter;
/**
* @author 刘斌
* @date 2025/12/3 16:32
*/
@Getter
@Setter
@AutoMappers({
@AutoMapper(target = EmployeeInfo.class, convertGenerate = false),
@AutoMapper(target = EmployeeFlowVo.class, convertGenerate = false),
})
public class EmployeeFlowTransferApplyVo extends EmployeeFlowVo {
/**
* 内部个人履历
*/
private String internalResume;
}
package com.anplus.hr.domain.vo; package com.anplus.hr.domain.vo;
import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.ExcelProperty;
import com.anplus.hr.domain.EmployeeFlow; import com.anplus.hr.domain.EmployeeFlow;
...@@ -68,6 +69,7 @@ public class EmployeeFlowVo implements Serializable { ...@@ -68,6 +69,7 @@ public class EmployeeFlowVo implements Serializable {
/** /**
* 审计内容 * 审计内容
*/ */
@ExcelIgnore
private List<SysAuditLogVo> auditLogList; private List<SysAuditLogVo> auditLogList;
/** /**
......
...@@ -145,34 +145,40 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl ...@@ -145,34 +145,40 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
private String ageGroup; private String ageGroup;
/** /**
* 兼板块 * 兼板块
*/ */
@ExcelProperty(value = "兼板块") @ExcelProperty(value = "兼板块")
private String partTimePlate; private String concurrentPlate;
/** /**
* 兼一级部门 * 兼一级部门
*/ */
@ExcelProperty(value = "兼一级部门") @ExcelProperty(value = "兼一级部门")
private String partTimeFirstDept; private String concurrentFirstDept;
/** /**
* 兼二级部门 * 兼二级部门
*/ */
@ExcelProperty(value = "兼二级部门") @ExcelProperty(value = "兼二级部门")
private String partTimeSecondDept; private String concurrentSecondDept;
/** /**
* 兼三级部门 * 兼三级部门
*/ */
@ExcelProperty(value = "兼三级部门") @ExcelProperty(value = "兼三级部门")
private String partTimeThirdDept; private String concurrentThirdDept;
/** /**
* 兼岗位 * 兼岗位
*/ */
@ExcelProperty(value = "兼职岗位") @ExcelProperty(value = "兼岗岗位")
private String partTimePosition; private String concurrentPosition;
/**
* 兼岗岗位类型
*/
@ExcelProperty(value = "兼岗岗位类型")
private String concurrentPositionType;
/** /**
* 籍贯 * 籍贯
...@@ -436,6 +442,13 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl ...@@ -436,6 +442,13 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO) @ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
@ExcelProperty(value = "是否缴纳雇主险", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
private String hasEmployerInsurancePaid;
/** /**
* 试用期(月数) * 试用期(月数)
*/ */
...@@ -510,18 +523,72 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl ...@@ -510,18 +523,72 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
@ExcelProperty(value = "介绍人") @ExcelProperty(value = "介绍人")
private String introducer; private String introducer;
/**
* 介绍人关系
*/
@ExcelProperty(value = "介绍人关系")
private String introducerRelation;
/** /**
* 工资发放地 * 工资发放地
*/ */
@ExcelProperty(value = "工资发放地") @ExcelProperty(value = "工资发放地")
private String salaryLocation; private String salaryLocation;
/**
* 编制所在地
*/
@ExcelProperty(value = "编制所在地")
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
@ExcelProperty(value = "成本费用所属")
private String costOfDept;
/**
* 成本费用细分
*/
@ExcelProperty(value = "成本费用细分")
private String costType;
/** /**
* 绩效比例 * 绩效比例
*/ */
@ExcelProperty(value = "绩效比例") @ExcelProperty(value = "绩效比例")
private String performanceRatio; private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
@ExcelProperty(value = "工装")
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
@ExcelProperty(value = "内部购房优惠")
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
@ExcelProperty(value = "安泰业主")
private String antaiHomeowners;
/**
* 安泰小区信息
*/
@ExcelProperty(value = "小区具体信息")
private String antaiCommunityInfo;
/**
* 家庭主要成员
*/
@ExcelProperty(value = "家庭主要成员")
private String familyMembersInfo;
public void setPlate(String plate) { public void setPlate(String plate) {
this.plate = plate == null ? null : plate.trim(); this.plate = plate == null ? null : plate.trim();
...@@ -575,24 +642,24 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl ...@@ -575,24 +642,24 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
this.ageGroup = ageGroup == null ? null : ageGroup.trim(); this.ageGroup = ageGroup == null ? null : ageGroup.trim();
} }
public void setPartTimePlate(String partTimePlate) { public void setConcurrentPlate(String concurrentPlate) {
this.partTimePlate = partTimePlate == null ? null : partTimePlate.trim(); this.concurrentPlate = concurrentPlate == null ? null : concurrentPlate.trim();
} }
public void setPartTimeFirstDept(String partTimeFirstDept) { public void setConcurrentFirstDept(String concurrentFirstDept) {
this.partTimeFirstDept = partTimeFirstDept == null ? null : partTimeFirstDept.trim(); this.concurrentFirstDept = concurrentFirstDept == null ? null : concurrentFirstDept.trim();
} }
public void setPartTimeSecondDept(String partTimeSecondDept) { public void setConcurrentSecondDept(String concurrentSecondDept) {
this.partTimeSecondDept = partTimeSecondDept == null ? null : partTimeSecondDept.trim(); this.concurrentSecondDept = concurrentSecondDept == null ? null : concurrentSecondDept.trim();
} }
public void setPartTimeThirdDept(String partTimeThirdDept) { public void setConcurrentThirdDept(String concurrentThirdDept) {
this.partTimeThirdDept = partTimeThirdDept == null ? null : partTimeThirdDept.trim(); this.concurrentThirdDept = concurrentThirdDept == null ? null : concurrentThirdDept.trim();
} }
public void setPartTimePosition(String partTimePosition) { public void setConcurrentPosition(String concurrentPosition) {
this.partTimePosition = partTimePosition == null ? null : partTimePosition.trim(); this.concurrentPosition = concurrentPosition == null ? null : concurrentPosition.trim();
} }
public void setNativePlace(String nativePlace) { public void setNativePlace(String nativePlace) {
...@@ -778,7 +845,51 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl ...@@ -778,7 +845,51 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
public void setPerformanceRatio(String performanceRatio) { public void setPerformanceRatio(String performanceRatio) {
this.performanceRatio = performanceRatio == null ? null : performanceRatio.trim(); this.performanceRatio = performanceRatio == null ? null : performanceRatio.trim();
} }
//
public void setConcurrentPositionType(String concurrentPositionType) {
this.concurrentPositionType = concurrentPositionType == null ? null : concurrentPositionType.trim();
}
public void setHasEmployerInsurancePaid(String hasEmployerInsurancePaid) {
this.hasEmployerInsurancePaid = hasEmployerInsurancePaid == null ? null : hasEmployerInsurancePaid.trim();
}
public void setIntroducerRelation(String introducerRelation) {
this.introducerRelation = introducerRelation == null ? null : introducerRelation.trim();
}
public void setStaffingLocation(String staffingLocation) {
this.staffingLocation = staffingLocation == null ? null : staffingLocation.trim();
}
public void setCostOfDept(String costOfDept) {
this.costOfDept = costOfDept == null ? null : costOfDept.trim();
}
public void setCostType(String costType) {
this.costType = costType == null ? null : costType.trim();
}
public void setWorkwearDetail(String workwearDetail) {
this.workwearDetail = workwearDetail == null ? null : workwearDetail.trim();
}
public void setInternalPurchaseDiscounts(String internalPurchaseDiscounts) {
this.internalPurchaseDiscounts = internalPurchaseDiscounts == null ? null : internalPurchaseDiscounts.trim();
}
public void setAntaiHomeowners(String antaiHomeowners) {
this.antaiHomeowners = antaiHomeowners == null ? null : antaiHomeowners.trim();
}
public void setAntaiCommunityInfo(String antaiCommunityInfo) {
this.antaiCommunityInfo = antaiCommunityInfo == null ? null : antaiCommunityInfo.trim();
}
public void setFamilyMembersInfo(String familyMembersInfo) {
this.familyMembersInfo = familyMembersInfo == null ? null : familyMembersInfo.trim();
}
//
// public void setDeptId(Long deptId) { // public void setDeptId(Long deptId) {
// this.deptId = deptId; // this.deptId = deptId;
// } // }
......
...@@ -34,6 +34,14 @@ public class EmployeeInfoResignImportVo extends EmployeeInfoImportVo { ...@@ -34,6 +34,14 @@ public class EmployeeInfoResignImportVo extends EmployeeInfoImportVo {
@ExcelDictFormat(dictType = HrConstant.HR_RESIGNATION_TYPE) @ExcelDictFormat(dictType = HrConstant.HR_RESIGNATION_TYPE)
private String resignationType; private String resignationType;
/**
* 离职类别
*/
@ExcelProperty(value = "离职类别", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_RESIGNATION_CATEGORY)
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
...@@ -62,4 +70,8 @@ public class EmployeeInfoResignImportVo extends EmployeeInfoImportVo { ...@@ -62,4 +70,8 @@ public class EmployeeInfoResignImportVo extends EmployeeInfoImportVo {
this.resignationReason = resignationReason == null ? null : resignationReason.trim(); this.resignationReason = resignationReason == null ? null : resignationReason.trim();
} }
public void setResignationCategory(String resignationCategory) {
this.resignationCategory = resignationCategory == null ? null : resignationCategory.trim();
}
} }
...@@ -30,6 +30,15 @@ public class EmployeeInfoResignVo extends EmployeeInfoVo { ...@@ -30,6 +30,15 @@ public class EmployeeInfoResignVo extends EmployeeInfoVo {
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_RESIGNATION_TYPE) @Trans(type = TransType.DICTIONARY, key = HrConstant.HR_RESIGNATION_TYPE)
private String resignationType; private String resignationType;
/**
* 离职类别
*/
@ExcelProperty(value = "离职类别", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_RESIGNATION_CATEGORY)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_RESIGNATION_CATEGORY)
private String resignationCategory;
/** /**
* 离职时间 * 离职时间
*/ */
......
package com.anplus.hr.domain.vo;
import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.anplus.hr.constant.HrConstant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.core.trans.anno.Trans;
import org.dromara.core.trans.constant.TransType;
import top.binfast.common.excel.annotion.ExcelDictFormat;
import top.binfast.common.excel.annotion.ExcelImageCellFormat;
import top.binfast.common.excel.converters.ExcelDictConvert;
import top.binfast.common.excel.converters.ExcelUrlImageConverter;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 简历视图对象
* @author 刘斌
* @date 2025/12/2 16:56
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = EmployeeInfoVo.class, convertGenerate = false)
public class EmployeeInfoResumeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 板块
*/
@ExcelProperty(value = "板块")
private String plate;
/**
* 一级部门
*/
@ExcelProperty(value = "一级部门")
private String firstLevelDepartment;
/**
* 二级部门
*/
@ExcelProperty(value = "二级部门")
private String secondLevelDepartment;
/**
* 三级部门
*/
@ExcelProperty(value = "三级部门")
private String thirdLevelDepartment;
/**
* 工号
*/
@ExcelProperty(value = "工号")
private String employeeNo;
/**
* 职级
*/
@ExcelProperty(value = "职级")
// @ExcelDictFormat(dictType = "HR_JOB_LEVEL")
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_JOB_LEVEL)
private Integer jobLevel;
/**
* 岗位类型
*/
@ExcelProperty(value = "岗位类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_POSITION_TYPE)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_POSITION_TYPE)
private String positionType;
/**
* 序列
*/
@ExcelProperty(value = "序列", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_SEQUENCE)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_SEQUENCE)
private String sequence;
/**
* 主岗位
*/
@ExcelProperty(value = "主岗位")
private String position;
/**
* 姓名
*/
@ExcelProperty(value = "姓名")
private String name;
/**
* 性别
*/
@ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_USER_SEX)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_USER_SEX)
private String gender;
/**
* 身份证号码
*/
@ExcelProperty(value = "身份证号码")
private String idCardNumber;
/**
* 头像OSS_ID
*/
@ExcelIgnore
private Long ossId;
/**
* 照片
*/
@ExcelImageCellFormat(relativeLastRowIndex = 3)
@ExcelProperty(value = "照片", converter = ExcelUrlImageConverter.class)
private String photo;
/**
* 出生日期
*/
@ExcelProperty(value = "出生日期")
private LocalDate birthDate;
/**
* 年龄
*/
@ExcelProperty(value = "年龄")
private Integer age;
/**
* 民族
*/
@ExcelProperty(value = "民族")
private String ethnicity;
/**
* 婚姻状况
*/
@ExcelProperty(value = "婚姻状况", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_MARITAL_STATUS)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_MARITAL_STATUS)
private String maritalStatus;
/**
* 政治面貌
*/
@ExcelProperty(value = "政治面貌", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_POLITICAL_STATUS)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_POLITICAL_STATUS)
private String politicalStatus;
/**
* 手机号码
*/
@ExcelProperty(value = "手机号码")
private String phoneNumber;
/**
* 兼岗板块
*/
@ExcelProperty(value = "兼岗板块")
private String concurrentPlate;
/**
* 兼岗一级部门
*/
@ExcelProperty(value = "兼岗一级部门")
private String concurrentFirstDept;
/**
* 兼岗二级部门
*/
@ExcelProperty(value = "兼岗二级部门")
private String concurrentSecondDept;
/**
* 兼岗三级部门
*/
@ExcelProperty(value = "兼岗三级部门")
private String concurrentThirdDept;
/**
* 兼岗岗位
*/
@ExcelProperty(value = "兼岗岗位")
private String concurrentPosition;
/**
* 兼岗岗位类型
*/
@ExcelProperty(value = "兼岗岗位类型")
private String concurrentPositionType;
/**
* 入职时间
*/
@ExcelProperty(value = "入职时间")
private LocalDate entryDate;
/**
* 工龄
*/
@ExcelProperty(value = "工龄")
private String yearsOfService;
/**
* 全日制学历
*/
@ExcelProperty(value = "全日制学历")
private String fulltimeEducation;
/**
* 全日制毕业院校
*/
@ExcelProperty(value = "全日制毕业院校")
private String fulltimeSchool;
/**
* 全日制专业
*/
@ExcelProperty(value = "全日制专业")
private String fulltimeMajor;
/**
* 全日制毕业日期
*/
@ExcelProperty(value = "全日制毕业日期")
private LocalDate fulltimeGraduationDate;
/**
* 非全日制学历
*/
@ExcelProperty(value = "非全日制学历")
private String nonFulltimeEducation;
/**
* 非全日制毕业院校
*/
@ExcelProperty(value = "非全日制毕业院校")
private String nonFulltimeSchool;
/**
* 非全日制专业
*/
@ExcelProperty(value = "非全日制专业")
private String nonFulltimeMajor;
/**
* 非全日制毕业日期
*/
@ExcelProperty(value = "非全日制毕业日期")
private LocalDate nonFulltimeGraduationDate;
/**
* 外部个人履历
*/
@ExcelProperty(value = "外部个人履历")
private String externalResume;
/**
* 内部个人履历
*/
@ExcelProperty(value = "内部个人履历")
private String internalResume;
/**
* 合同形式
*/
@ExcelProperty(value = "合同形式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.HR_CONTRACT_FORM)
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_CONTRACT_FORM)
private String contractForm;
/**
* 是否缴纳社保
*/
@ExcelProperty(value = "是否缴纳社保", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
@Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO)
private String hasSocialSecurityPaid;
/**
* 是否缴纳公积金
*/
@ExcelProperty(value = "是否缴纳公积金", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
@Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO)
private String hasProvidentFundPaid;
/**
* 转正时间
*/
@ExcelProperty(value = "转正时间")
private LocalDate regularizationDate;
/**
* 奖励情况
*/
@ExcelProperty(value = "奖励情况")
private String rewardStatus;
/**
* 处罚情况
*/
@ExcelProperty(value = "处罚情况")
private String punishmentStatus;
}
...@@ -19,7 +19,6 @@ import java.io.Serializable; ...@@ -19,7 +19,6 @@ import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
/** /**
* 员工信息视图对象 employee_info * 员工信息视图对象 employee_info
* *
...@@ -158,34 +157,40 @@ public class EmployeeInfoVo implements TransPojo, Serializable { ...@@ -158,34 +157,40 @@ public class EmployeeInfoVo implements TransPojo, Serializable {
private String ageGroup; private String ageGroup;
/** /**
* 兼板块 * 兼板块
*/ */
@ExcelProperty(value = "兼板块") @ExcelProperty(value = "兼板块")
private String partTimePlate; private String concurrentPlate;
/** /**
* 兼一级部门 * 兼一级部门
*/ */
@ExcelProperty(value = "兼一级部门") @ExcelProperty(value = "兼一级部门")
private String partTimeFirstDept; private String concurrentFirstDept;
/** /**
* 兼二级部门 * 兼二级部门
*/ */
@ExcelProperty(value = "兼二级部门") @ExcelProperty(value = "兼二级部门")
private String partTimeSecondDept; private String concurrentSecondDept;
/** /**
* 兼三级部门 * 兼三级部门
*/ */
@ExcelProperty(value = "兼三级部门") @ExcelProperty(value = "兼三级部门")
private String partTimeThirdDept; private String concurrentThirdDept;
/** /**
* 兼岗位 * 兼岗位
*/ */
@ExcelProperty(value = "兼职岗位") @ExcelProperty(value = "兼岗岗位")
private String partTimePosition; private String concurrentPosition;
/**
* 兼岗岗位类型
*/
@ExcelProperty(value = "兼岗岗位类型")
private String concurrentPositionType;
/** /**
* 籍贯 * 籍贯
...@@ -451,6 +456,14 @@ public class EmployeeInfoVo implements TransPojo, Serializable { ...@@ -451,6 +456,14 @@ public class EmployeeInfoVo implements TransPojo, Serializable {
@Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO) @Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO)
private String hasProvidentFundPaid; private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
@ExcelProperty(value = "是否缴纳雇主险", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
@Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO)
private String hasEmployerInsurancePaid;
/** /**
* 试用期(月数) * 试用期(月数)
*/ */
...@@ -526,18 +539,66 @@ public class EmployeeInfoVo implements TransPojo, Serializable { ...@@ -526,18 +539,66 @@ public class EmployeeInfoVo implements TransPojo, Serializable {
@ExcelProperty(value = "介绍人") @ExcelProperty(value = "介绍人")
private String introducer; private String introducer;
/**
* 介绍人关系
*/
@ExcelProperty(value = "介绍人关系")
private String introducerRelation;
/** /**
* 工资发放地 * 工资发放地
*/ */
@ExcelProperty(value = "工资发放地") @ExcelProperty(value = "工资发放地")
private String salaryLocation; private String salaryLocation;
/**
* 编制所在地
*/
@ExcelProperty(value = "编制所在地")
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
@ExcelProperty(value = "成本费用所属")
private String costOfDept;
/**
* 成本费用细分
*/
@ExcelProperty(value = "成本费用细分")
private String costType;
/** /**
* 绩效比例 * 绩效比例
*/ */
@ExcelProperty(value = "绩效比例") @ExcelProperty(value = "绩效比例")
private String performanceRatio; private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
@ExcelProperty(value = "工装")
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
@ExcelProperty(value = "内部购房优惠")
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
@ExcelProperty(value = "安泰业主")
private String antaiHomeowners;
/**
* 安泰小区信息
*/
@ExcelProperty(value = "小区具体信息")
private String antaiCommunityInfo;
/** /**
* 员工状态 * 员工状态
*/ */
......
...@@ -42,6 +42,15 @@ public interface EmployeeFlowServ extends IService<EmployeeFlow> { ...@@ -42,6 +42,15 @@ public interface EmployeeFlowServ extends IService<EmployeeFlow> {
*/ */
EmployeeFlowVo queryById(Long id); EmployeeFlowVo queryById(Long id);
/**
* 根据员工id初始化
*
* @param type 类型
* @param employeeId 员工id
* @return 人事审批对象
*/
EmployeeFlowVo initByEmployeeId(String type, Long employeeId);
/** /**
* 新增人事审批对象 * 新增人事审批对象
* *
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.Response;
import com.anplus.hr.domain.vo.EmployeeFlowVo; import com.anplus.hr.domain.vo.EmployeeFlowVo;
import com.anplus.hr.domain.vo.EmployeeInfoResumeVo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.anplus.hr.domain.EmployeeInfo; import com.anplus.hr.domain.EmployeeInfo;
...@@ -85,6 +86,14 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> { ...@@ -85,6 +86,14 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> {
*/ */
EmployeeInfoVo infoDetail(Long id); EmployeeInfoVo infoDetail(Long id);
/**
* 导出简历用:员工信息详情
*
* @param id 主键
* @return 员工信息
*/
EmployeeInfoResumeVo infoDetailForResume(Long id);
/** /**
* 新增员工信息 * 新增员工信息
* *
...@@ -189,15 +198,15 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> { ...@@ -189,15 +198,15 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> {
} }
default String buildPartDeptNameStr(EmployeeInfoImportVo importVo) { default String buildPartDeptNameStr(EmployeeInfoImportVo importVo) {
StringBuilder builder = new StringBuilder(importVo.getPartTimePlate()); StringBuilder builder = new StringBuilder(importVo.getConcurrentPlate());
if (StrUtil.isNotBlank(importVo.getPartTimeFirstDept())) { if (StrUtil.isNotBlank(importVo.getConcurrentFirstDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeFirstDept()); builder.append(StrUtil.SLASH).append(importVo.getConcurrentFirstDept());
} }
if (StrUtil.isNotBlank(importVo.getPartTimeSecondDept())) { if (StrUtil.isNotBlank(importVo.getConcurrentSecondDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeSecondDept()); builder.append(StrUtil.SLASH).append(importVo.getConcurrentSecondDept());
} }
if (StrUtil.isNotBlank(importVo.getPartTimeThirdDept())) { if (StrUtil.isNotBlank(importVo.getConcurrentThirdDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeThirdDept()); builder.append(StrUtil.SLASH).append(importVo.getConcurrentThirdDept());
} }
return builder.toString(); return builder.toString();
} }
......
...@@ -16,8 +16,7 @@ import com.anplus.hr.domain.EmployeeFlow; ...@@ -16,8 +16,7 @@ import com.anplus.hr.domain.EmployeeFlow;
import com.anplus.hr.domain.EmployeeInfo; import com.anplus.hr.domain.EmployeeInfo;
import com.anplus.hr.domain.params.EmployeeFlowListParam; import com.anplus.hr.domain.params.EmployeeFlowListParam;
import com.anplus.hr.domain.params.EmployeeFlowParam; import com.anplus.hr.domain.params.EmployeeFlowParam;
import com.anplus.hr.domain.vo.EmployeeFlowVo; import com.anplus.hr.domain.vo.*;
import com.anplus.hr.domain.vo.SysAuditLogVo;
import com.anplus.hr.mapper.EmployeeFlowMapper; import com.anplus.hr.mapper.EmployeeFlowMapper;
import com.anplus.hr.mapper.EmployeeInfoMapper; import com.anplus.hr.mapper.EmployeeInfoMapper;
import com.anplus.hr.service.EmployeeAuditLogServ; import com.anplus.hr.service.EmployeeAuditLogServ;
...@@ -136,6 +135,38 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -136,6 +135,38 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
return employeeFlowVo; return employeeFlowVo;
} }
@Override
public EmployeeFlowVo initByEmployeeId(String type, Long employeeId) {
EmployeeFlowVo employeeFlowVo = new EmployeeFlowVo();
EmployeeInfo employeeInfo = employeeInfoMapper.selectById(employeeId);
employeeFlowVo.setEmployeeId(employeeId);
employeeFlowVo.setName(employeeInfo.getName());
employeeFlowVo.setDeptName(employeeInfo.getPlate() +
" / " + employeeInfo.getFirstLevelDepartment() +
" / " + Convert.toStr(employeeInfo.getSecondLevelDepartment()) +
" / " + Convert.toStr(employeeInfo.getThirdLevelDepartment()));
switch (type) {
case HrFlowTypeConstant.REGULARIZATION:
EmployeeFlowRegularApplyVo employeeFlowRegularApplyVo = MapstructUtils.convert(employeeFlowVo, EmployeeFlowRegularApplyVo.class);
employeeFlowRegularApplyVo = MapstructUtils.convert(employeeInfo, employeeFlowRegularApplyVo);
employeeFlowVo = employeeFlowRegularApplyVo;
break;
case HrFlowTypeConstant.TRANSFER:
EmployeeFlowTransferApplyVo employeeFlowTransferApplyVo = MapstructUtils.convert(employeeFlowVo, EmployeeFlowTransferApplyVo.class);
employeeFlowTransferApplyVo.setInternalResume(employeeInfo.getInternalResume());
employeeFlowVo = employeeFlowTransferApplyVo;
break;
case HrFlowTypeConstant.RENEWAL_CONTRACT:
EmployeeFlowRenewalContractApplyVo employeeFlowRenewalContractApplyVo = MapstructUtils.convert(employeeFlowVo, EmployeeFlowRenewalContractApplyVo.class);
employeeFlowRenewalContractApplyVo.setContractSigningStatus(employeeInfo.getContractSigningStatus());
employeeFlowVo = employeeFlowRenewalContractApplyVo;
break;
default:
break;
}
return employeeFlowVo;
}
/** /**
* 新增人事审批对象 * 新增人事审批对象
* *
...@@ -398,18 +429,18 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -398,18 +429,18 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
employeeInfo.setStatus(HrStatusEnum.REGULARIZATION.getStatus()); employeeInfo.setStatus(HrStatusEnum.REGULARIZATION.getStatus());
for (SysAuditLog auditLog : auditLogs) { for (SysAuditLog auditLog : auditLogs) {
switch (auditLog.getAuditField()) { switch (auditLog.getAuditField()) {
case "contractStartDate": // case "contractStartDate":
employeeInfo.setContractStartDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); // employeeInfo.setContractStartDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; // break;
case "contractEndDate": // case "contractEndDate":
employeeInfo.setContractEndDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); // employeeInfo.setContractEndDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; // break;
case "contractSigningStatus": // case "contractSigningStatus":
employeeInfo.setContractSigningStatus(auditLog.getAfterVal()); // employeeInfo.setContractSigningStatus(auditLog.getAfterVal());
break; // break;
case "contractEntity": // case "contractEntity":
employeeInfo.setContractEntity(auditLog.getAfterVal()); // employeeInfo.setContractEntity(auditLog.getAfterVal());
break; // break;
case "socialSecurityEntity": case "socialSecurityEntity":
employeeInfo.setSocialSecurityEntity(auditLog.getAfterVal()); employeeInfo.setSocialSecurityEntity(auditLog.getAfterVal());
break; break;
...@@ -422,6 +453,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -422,6 +453,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "hasProvidentFundPaid": case "hasProvidentFundPaid":
employeeInfo.setHasProvidentFundPaid(auditLog.getAfterVal()); employeeInfo.setHasProvidentFundPaid(auditLog.getAfterVal());
break; break;
case "hasEmployerInsurancePaid":
employeeInfo.setHasEmployerInsurancePaid(auditLog.getAfterVal());
break;
case "regularizationDate": case "regularizationDate":
employeeInfo.setRegularizationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); employeeInfo.setRegularizationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; break;
...@@ -431,15 +465,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -431,15 +465,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "employmentForm": case "employmentForm":
employeeInfo.setEmploymentForm(auditLog.getAfterVal()); employeeInfo.setEmploymentForm(auditLog.getAfterVal());
break; break;
case "contractForm": // case "contractForm":
employeeInfo.setContractForm(auditLog.getAfterVal()); // employeeInfo.setContractForm(auditLog.getAfterVal());
break; // break;
case "contractTerm": // case "contractTerm":
employeeInfo.setContractTerm(auditLog.getAfterVal()); // employeeInfo.setContractTerm(auditLog.getAfterVal());
break; // break;
case "contractExpirationReminder": // case "contractExpirationReminder":
employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); // employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; // break;
default: default:
break; break;
} }
...@@ -458,6 +492,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -458,6 +492,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "resignationReason": case "resignationReason":
employeeInfo.setResignationReason(auditLog.getAfterVal()); employeeInfo.setResignationReason(auditLog.getAfterVal());
break; break;
case "resignationCategory":
employeeInfo.setResignationCategory(auditLog.getAfterVal());
break;
case "resignationDate": case "resignationDate":
employeeInfo.setResignationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); employeeInfo.setResignationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; break;
...@@ -494,6 +531,21 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -494,6 +531,21 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "deptId": case "deptId":
employeeInfo.setDeptId(Convert.toLong(auditLog.getAfterVal())); employeeInfo.setDeptId(Convert.toLong(auditLog.getAfterVal()));
break; break;
case "performanceRatio":
employeeInfo.setPerformanceRatio(auditLog.getAfterVal());
break;
case "staffingLocation":
employeeInfo.setStaffingLocation(auditLog.getAfterVal());
break;
case "costOfDept":
employeeInfo.setCostOfDept(auditLog.getAfterVal());
break;
case "costType":
employeeInfo.setCostType(auditLog.getAfterVal());
break;
case "internalResume":
employeeInfo.setInternalResume(auditLog.getAfterVal());
break;
case "transferDate": case "transferDate":
transferDate = LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN); transferDate = LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN);
break; break;
...@@ -524,6 +576,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ ...@@ -524,6 +576,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "contractTerm": case "contractTerm":
employeeInfo.setContractTerm(auditLog.getAfterVal()); employeeInfo.setContractTerm(auditLog.getAfterVal());
break; break;
case "contractEntity":
employeeInfo.setContractEntity(auditLog.getAfterVal());
break;
case "socialSecurityEntity":
employeeInfo.setSocialSecurityEntity(auditLog.getAfterVal());
break;
case "providentFundEntity":
employeeInfo.setProvidentFundEntity(auditLog.getAfterVal());
break;
case "contractExpirationReminder": case "contractExpirationReminder":
employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN)); employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break; break;
......
...@@ -127,7 +127,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper, ...@@ -127,7 +127,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
for (EmployeeInfoResignImportVo importVo : successList) { for (EmployeeInfoResignImportVo importVo : successList) {
SysOss sysOss = employeeInfoServ.handleImageToUrl(excelProcessingResult, importVo); SysOss sysOss = employeeInfoServ.handleImageToUrl(excelProcessingResult, importVo);
Long leafDeptId = deptNamesIdMap.get(employeeInfoServ.buildDeptNameStr(importVo)); Long leafDeptId = deptNamesIdMap.get(employeeInfoServ.buildDeptNameStr(importVo));
Long partDeptId = deptNamesIdMap.get(employeeInfoServ.buildPartDeptNameStr(importVo)); Long concurrentDeptId = deptNamesIdMap.get(employeeInfoServ.buildPartDeptNameStr(importVo));
// if (leafDeptId == null) { // if (leafDeptId == null) {
// importVo.addError("部门不存在"); // importVo.addError("部门不存在");
// errorList.add(importVo); // errorList.add(importVo);
...@@ -136,7 +136,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper, ...@@ -136,7 +136,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
EmployeeInfo employeeInfo = MapstructUtils.convert(importVo, EmployeeInfo.class); EmployeeInfo employeeInfo = MapstructUtils.convert(importVo, EmployeeInfo.class);
employeeInfo.setStatus(HrStatusEnum.RESIGN.getStatus()); employeeInfo.setStatus(HrStatusEnum.RESIGN.getStatus());
employeeInfo.setDeptId(leafDeptId); employeeInfo.setDeptId(leafDeptId);
employeeInfo.setPartDeptId(partDeptId); employeeInfo.setConcurrentDeptId(concurrentDeptId);
if (sysOss != null) { if (sysOss != null) {
ossList.add(sysOss); ossList.add(sysOss);
ossEmployeeInfoMap.put(sysOss.getFileName(), employeeInfo); ossEmployeeInfoMap.put(sysOss.getFileName(), employeeInfo);
......
...@@ -53,6 +53,7 @@ public class EmployeeScheduleService { ...@@ -53,6 +53,7 @@ public class EmployeeScheduleService {
// 实现每月任务逻辑 // 实现每月任务逻辑
boolean existNewRegularReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>() boolean existNewRegularReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>()
.eq(EmployeeInfo::getStatus, HrStatusEnum.ENTRY.getStatus()) .eq(EmployeeInfo::getStatus, HrStatusEnum.ENTRY.getStatus())
.isNotNull(EmployeeInfo::getExpectedRegularDate)
.between(EmployeeInfo::getExpectedRegularDate, LocalDate.now(), LocalDate.now().plusMonths(1)) .between(EmployeeInfo::getExpectedRegularDate, LocalDate.now(), LocalDate.now().plusMonths(1))
); );
if (existNewRegularReminders) { if (existNewRegularReminders) {
...@@ -63,6 +64,7 @@ public class EmployeeScheduleService { ...@@ -63,6 +64,7 @@ public class EmployeeScheduleService {
} }
boolean existContractRenewalReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>() boolean existContractRenewalReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>()
.eq(EmployeeInfo::getStatus, HrStatusEnum.REGULARIZATION.getStatus()) .eq(EmployeeInfo::getStatus, HrStatusEnum.REGULARIZATION.getStatus())
.isNotNull(EmployeeInfo::getContractEndDate)
.between(EmployeeInfo::getContractEndDate, LocalDate.now(), LocalDate.now().plusMonths(1)) .between(EmployeeInfo::getContractEndDate, LocalDate.now(), LocalDate.now().plusMonths(1))
); );
if (existContractRenewalReminders) { if (existContractRenewalReminders) {
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<mapstruct-plus.version>1.4.8</mapstruct-plus.version> <mapstruct-plus.version>1.4.8</mapstruct-plus.version>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version> <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
<therapi-javadoc.version>0.15.0</therapi-javadoc.version> <therapi-javadoc.version>0.15.0</therapi-javadoc.version>
<binfast.version>1.2.7</binfast.version> <binfast.version>1.2.8</binfast.version>
<lombok.version>1.18.38</lombok.version> <lombok.version>1.18.38</lombok.version>
</properties> </properties>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment