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

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

parent d0b7b557
......@@ -90,4 +90,14 @@ public interface HrConstant {
* 员工异动类型
*/
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 {
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;
import com.anplus.hr.domain.params.*;
import com.anplus.hr.domain.vo.EmployeeFlowVo;
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.service.EmployeeInfoServ;
import com.anplus.hr.service.EmployeeSysDeptServ;
......@@ -83,8 +84,8 @@ public class EmployeeInfoCtrl {
@SaCheckPermission("employee:info:export")
@PinSysLog(value = "员工信息", businessType = BusinessType.EXPORT)
@PostMapping("/export/{id}")
public List<EmployeeInfoVo> export(@PathVariable Long id) {
EmployeeInfoVo vo = employeeInfoServ.infoDetail(id);
public List<EmployeeInfoResumeVo> export(@PathVariable Long id) {
EmployeeInfoResumeVo vo = employeeInfoServ.infoDetailForResume(id);
return List.of(vo);
}
......
......@@ -111,34 +111,39 @@ public class EmployeeInfo extends TenantModel {
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 {
*/
private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/**
* 试用期(月数)
*/
......@@ -415,21 +425,66 @@ public class EmployeeInfo extends TenantModel {
*/
private String introducer;
/**
* 介绍人关系
*/
private String introducerRelation;
/**
* 工资发放地
*/
private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/**
* 绩效比例
*/
private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/**
* 离职类型
*/
private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/**
* 离职时间
*/
......
......@@ -111,6 +111,90 @@ public class EmployeeBaseInfoParam {
@NotBlank(message = "户口所在地不能为空")
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
*/
......
......@@ -104,29 +104,34 @@ public class EmployeeInfoListParam extends PageQueryParam {
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 {
*/
private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/**
* 试用期(月数)
*/
......@@ -398,16 +408,56 @@ public class EmployeeInfoListParam extends PageQueryParam {
*/
private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/**
* 绩效比例
*/
private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/**
* 离职类型
*/
private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/**
* 离职时间
*/
......
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 io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
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.EditGroup;
import top.binfast.common.excel.annotion.ExcelDictFormat;
import top.binfast.common.excel.converters.ExcelDictConvert;
import java.time.LocalDate;
......@@ -134,39 +140,44 @@ public class EmployeeInfoParam {
private String ageGroup;
/**
* 兼板块
* 兼板块
*/
// @NotBlank(message = "兼板块不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimePlate;
// @NotBlank(message = "兼板块不能为空", groups = { AddGroup.class, EditGroup.class })
private String concurrentPlate;
/**
* 兼一级部门
* 兼一级部门
*/
// @NotBlank(message = "兼一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeFirstDept;
// @NotBlank(message = "兼一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String concurrentFirstDept;
/**
* 兼二级部门
* 兼二级部门
*/
// @NotBlank(message = "兼二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeSecondDept;
// @NotBlank(message = "兼二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String concurrentSecondDept;
/**
* 兼三级部门
* 兼三级部门
*/
// @NotBlank(message = "兼三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimeThirdDept;
// @NotBlank(message = "兼三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private String concurrentThirdDept;
/**
* 兼岗位
* 兼岗位
*/
// @NotBlank(message = "兼岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private String partTimePosition;
// @NotBlank(message = "兼岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private String concurrentPosition;
/**
* 兼职部门ID
* 兼岗岗位类型
*/
private Long partDeptId;
private String concurrentPositionType;
/**
* 兼岗部门ID
*/
private Long concurrentDeptId;
/**
* 籍贯
......@@ -414,6 +425,11 @@ public class EmployeeInfoParam {
// @NotBlank(message = "是否缴纳公积金不能为空", groups = { AddGroup.class, EditGroup.class })
private String hasProvidentFundPaid;
/**
* 是否缴纳雇主险
*/
private String hasEmployerInsurancePaid;
/**
* 试用期(月数)
*/
......@@ -486,24 +502,69 @@ public class EmployeeInfoParam {
// @NotBlank(message = "介绍人不能为空", groups = { AddGroup.class, EditGroup.class })
private String introducer;
/**
* 介绍人关系
*/
private String introducerRelation;
/**
* 工资发放地
*/
// @NotBlank(message = "工资发放地不能为空", groups = { AddGroup.class, EditGroup.class })
private String salaryLocation;
/**
* 编制所在地
*/
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
private String costOfDept;
/**
* 成本费用细分
*/
private String costType;
/**
* 绩效比例
*/
// @NotNull(message = "绩效比例不能为空", groups = { AddGroup.class, EditGroup.class })
private String performanceRatio;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
private String workwearDetail;
/**
* 内部购房优惠(是,否)
*/
private String internalPurchaseDiscounts;
/**
* 安泰业主(是,否)
*/
private String antaiHomeowners;
/**
* 安泰小区信息
*/
private String antaiCommunityInfo;
/**
* 离职类型
*/
// @NotBlank(message = "离职类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String resignationType;
/**
* 离职类别
*/
private String resignationCategory;
/**
* 离职时间
*/
......
......@@ -15,8 +15,8 @@ import java.time.LocalDate;
* 员工类型:转正员工
* 用工形式:正式工
* 合同形式:新签
* 劳动合同期限:开始时间-结束时间
* 合同到期提醒:结束时间减一个月
* 劳动合同期限:开始时间-结束时间(废弃!)
* 合同到期提醒:结束时间减一个月(废弃!)
*/
@Data
public class EmployeeRegularApplyParam {
......@@ -29,27 +29,32 @@ public class EmployeeRegularApplyParam {
@NotBlank(message = "员工不能为空")
private Long employeeId;
/**
* 劳动合同开始时间
*/
@NotNull(message = "劳动合同开始时间")
private LocalDate contractStartDate;
/**
* 劳动合同截止时间
*/
@NotNull(message = "劳动合同截止时间")
private LocalDate contractEndDate;
/**
* 劳动合同签订情况
*/
private String contractSigningStatus;
// /**
// * 劳动合同开始时间
// */
// @NotNull(message = "劳动合同开始时间")
// private LocalDate contractStartDate;
//
// /**
// * 劳动合同截止时间
// */
// @NotNull(message = "劳动合同截止时间")
// private LocalDate contractEndDate;
//
// /**
// * 劳动合同签订情况
// */
// private String contractSigningStatus;
//
// /**
// * 合同主体
// */
// private String contractEntity;
/**
* 合同主体
* 转正时间
*/
private String contractEntity;
private LocalDate regularizationDate;
/**
* 社保主体
......@@ -72,9 +77,9 @@ public class EmployeeRegularApplyParam {
private String hasProvidentFundPaid;
/**
* 转正时间
* 是否缴纳雇主险
*/
private LocalDate regularizationDate;
private String hasEmployerInsurancePaid;
private String remark;
......
......@@ -12,7 +12,6 @@ import java.time.LocalDate;
* @date 2025/11/18 11:36
*
* !!!需要自动填写的字段!!!
* 劳动合同期限:开始时间-结束时间
* 合同到期提醒:结束时间减一个月
*/
@Data
......@@ -26,6 +25,12 @@ public class EmployeeRenewalContractApplyParam {
@NotBlank(message = "员工不能为空")
private Long employeeId;
/**
* 劳动合同期限
*/
@NotBlank(message = "劳动合同期限不能为空")
private String contractTerm;
/**
* 合同形式
*/
......@@ -41,7 +46,7 @@ public class EmployeeRenewalContractApplyParam {
/**
* 劳动合同截止时间
*/
@NotNull(message = "劳动合同截止时间不能为空")
// @NotNull(message = "劳动合同截止时间不能为空")
private LocalDate contractEndDate;
/**
......@@ -49,6 +54,22 @@ public class EmployeeRenewalContractApplyParam {
*/
private String contractSigningStatus;
/**
* 合同主体
*/
@NotBlank(message = "合同主体不能为空")
private String contractEntity;
/**
* 社保主体
*/
private String socialSecurityEntity;
/**
* 公积金主体
*/
private String providentFundEntity;
private String remark;
}
......@@ -3,8 +3,6 @@ package com.anplus.hr.domain.params;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import top.binfast.common.core.validate.AddGroup;
import top.binfast.common.core.validate.EditGroup;
import java.time.LocalDate;
......@@ -30,11 +28,17 @@ public class EmployeeResignApplyParam {
@NotBlank(message = "离职类型不能为空")
private String resignationType;
/**
* 离职类别
*/
@NotBlank(message = "离职类别不能为空")
private String resignationCategory;
/**
* 离职时间
*/
@NotNull(message = "离职时间不能为空")
private LocalDate resignDate;
private LocalDate resignationDate;
/**
* 最后结薪日
......@@ -45,7 +49,7 @@ public class EmployeeResignApplyParam {
/**
* 离职原因
*/
private String resignReason;
private String resignationReason;
private String remark;
......
......@@ -57,5 +57,32 @@ public class EmployeeTransferApplyParam {
@NotNull(message = "调配时间不能为空")
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;
}
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;
import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.anplus.hr.domain.EmployeeFlow;
......@@ -68,6 +69,7 @@ public class EmployeeFlowVo implements Serializable {
/**
* 审计内容
*/
@ExcelIgnore
private List<SysAuditLogVo> auditLogList;
/**
......
......@@ -145,34 +145,40 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
private String ageGroup;
/**
* 兼板块
* 兼板块
*/
@ExcelProperty(value = "兼板块")
private String partTimePlate;
@ExcelProperty(value = "兼板块")
private String concurrentPlate;
/**
* 兼一级部门
* 兼一级部门
*/
@ExcelProperty(value = "兼一级部门")
private String partTimeFirstDept;
@ExcelProperty(value = "兼一级部门")
private String concurrentFirstDept;
/**
* 兼二级部门
* 兼二级部门
*/
@ExcelProperty(value = "兼二级部门")
private String partTimeSecondDept;
@ExcelProperty(value = "兼二级部门")
private String concurrentSecondDept;
/**
* 兼三级部门
* 兼三级部门
*/
@ExcelProperty(value = "兼三级部门")
private String partTimeThirdDept;
@ExcelProperty(value = "兼三级部门")
private String concurrentThirdDept;
/**
* 兼岗位
* 兼岗位
*/
@ExcelProperty(value = "兼职岗位")
private String partTimePosition;
@ExcelProperty(value = "兼岗岗位")
private String concurrentPosition;
/**
* 兼岗岗位类型
*/
@ExcelProperty(value = "兼岗岗位类型")
private String concurrentPositionType;
/**
* 籍贯
......@@ -436,6 +442,13 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
@ExcelDictFormat(dictType = HrConstant.SYS_YES_NO)
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
@ExcelProperty(value = "介绍人")
private String introducer;
/**
* 介绍人关系
*/
@ExcelProperty(value = "介绍人关系")
private String introducerRelation;
/**
* 工资发放地
*/
@ExcelProperty(value = "工资发放地")
private String salaryLocation;
/**
* 编制所在地
*/
@ExcelProperty(value = "编制所在地")
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
@ExcelProperty(value = "成本费用所属")
private String costOfDept;
/**
* 成本费用细分
*/
@ExcelProperty(value = "成本费用细分")
private String costType;
/**
* 绩效比例
*/
@ExcelProperty(value = "绩效比例")
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) {
this.plate = plate == null ? null : plate.trim();
......@@ -575,24 +642,24 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
this.ageGroup = ageGroup == null ? null : ageGroup.trim();
}
public void setPartTimePlate(String partTimePlate) {
this.partTimePlate = partTimePlate == null ? null : partTimePlate.trim();
public void setConcurrentPlate(String concurrentPlate) {
this.concurrentPlate = concurrentPlate == null ? null : concurrentPlate.trim();
}
public void setPartTimeFirstDept(String partTimeFirstDept) {
this.partTimeFirstDept = partTimeFirstDept == null ? null : partTimeFirstDept.trim();
public void setConcurrentFirstDept(String concurrentFirstDept) {
this.concurrentFirstDept = concurrentFirstDept == null ? null : concurrentFirstDept.trim();
}
public void setPartTimeSecondDept(String partTimeSecondDept) {
this.partTimeSecondDept = partTimeSecondDept == null ? null : partTimeSecondDept.trim();
public void setConcurrentSecondDept(String concurrentSecondDept) {
this.concurrentSecondDept = concurrentSecondDept == null ? null : concurrentSecondDept.trim();
}
public void setPartTimeThirdDept(String partTimeThirdDept) {
this.partTimeThirdDept = partTimeThirdDept == null ? null : partTimeThirdDept.trim();
public void setConcurrentThirdDept(String concurrentThirdDept) {
this.concurrentThirdDept = concurrentThirdDept == null ? null : concurrentThirdDept.trim();
}
public void setPartTimePosition(String partTimePosition) {
this.partTimePosition = partTimePosition == null ? null : partTimePosition.trim();
public void setConcurrentPosition(String concurrentPosition) {
this.concurrentPosition = concurrentPosition == null ? null : concurrentPosition.trim();
}
public void setNativePlace(String nativePlace) {
......@@ -778,7 +845,51 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
public void setPerformanceRatio(String performanceRatio) {
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) {
// this.deptId = deptId;
// }
......
......@@ -34,6 +34,14 @@ public class EmployeeInfoResignImportVo extends EmployeeInfoImportVo {
@ExcelDictFormat(dictType = HrConstant.HR_RESIGNATION_TYPE)
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 {
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 {
@Trans(type = TransType.DICTIONARY, key = HrConstant.HR_RESIGNATION_TYPE)
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;
import java.time.LocalDate;
/**
* 员工信息视图对象 employee_info
*
......@@ -158,34 +157,40 @@ public class EmployeeInfoVo implements TransPojo, Serializable {
private String ageGroup;
/**
* 兼板块
* 兼板块
*/
@ExcelProperty(value = "兼板块")
private String partTimePlate;
@ExcelProperty(value = "兼板块")
private String concurrentPlate;
/**
* 兼一级部门
* 兼一级部门
*/
@ExcelProperty(value = "兼一级部门")
private String partTimeFirstDept;
@ExcelProperty(value = "兼一级部门")
private String concurrentFirstDept;
/**
* 兼二级部门
* 兼二级部门
*/
@ExcelProperty(value = "兼二级部门")
private String partTimeSecondDept;
@ExcelProperty(value = "兼二级部门")
private String concurrentSecondDept;
/**
* 兼三级部门
* 兼三级部门
*/
@ExcelProperty(value = "兼三级部门")
private String partTimeThirdDept;
@ExcelProperty(value = "兼三级部门")
private String concurrentThirdDept;
/**
* 兼岗位
* 兼岗位
*/
@ExcelProperty(value = "兼职岗位")
private String partTimePosition;
@ExcelProperty(value = "兼岗岗位")
private String concurrentPosition;
/**
* 兼岗岗位类型
*/
@ExcelProperty(value = "兼岗岗位类型")
private String concurrentPositionType;
/**
* 籍贯
......@@ -451,6 +456,14 @@ public class EmployeeInfoVo implements TransPojo, Serializable {
@Trans(type = TransType.DICTIONARY, key = HrConstant.SYS_YES_NO)
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 {
@ExcelProperty(value = "介绍人")
private String introducer;
/**
* 介绍人关系
*/
@ExcelProperty(value = "介绍人关系")
private String introducerRelation;
/**
* 工资发放地
*/
@ExcelProperty(value = "工资发放地")
private String salaryLocation;
/**
* 编制所在地
*/
@ExcelProperty(value = "编制所在地")
private String staffingLocation;
/**
* 成本费用所属(写部门)
*/
@ExcelProperty(value = "成本费用所属")
private String costOfDept;
/**
* 成本费用细分
*/
@ExcelProperty(value = "成本费用细分")
private String costType;
/**
* 绩效比例
*/
@ExcelProperty(value = "绩效比例")
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> {
*/
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;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
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.extension.service.IService;
import com.anplus.hr.domain.EmployeeInfo;
......@@ -85,6 +86,14 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> {
*/
EmployeeInfoVo infoDetail(Long id);
/**
* 导出简历用:员工信息详情
*
* @param id 主键
* @return 员工信息
*/
EmployeeInfoResumeVo infoDetailForResume(Long id);
/**
* 新增员工信息
*
......@@ -189,15 +198,15 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> {
}
default String buildPartDeptNameStr(EmployeeInfoImportVo importVo) {
StringBuilder builder = new StringBuilder(importVo.getPartTimePlate());
if (StrUtil.isNotBlank(importVo.getPartTimeFirstDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeFirstDept());
StringBuilder builder = new StringBuilder(importVo.getConcurrentPlate());
if (StrUtil.isNotBlank(importVo.getConcurrentFirstDept())) {
builder.append(StrUtil.SLASH).append(importVo.getConcurrentFirstDept());
}
if (StrUtil.isNotBlank(importVo.getPartTimeSecondDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeSecondDept());
if (StrUtil.isNotBlank(importVo.getConcurrentSecondDept())) {
builder.append(StrUtil.SLASH).append(importVo.getConcurrentSecondDept());
}
if (StrUtil.isNotBlank(importVo.getPartTimeThirdDept())) {
builder.append(StrUtil.SLASH).append(importVo.getPartTimeThirdDept());
if (StrUtil.isNotBlank(importVo.getConcurrentThirdDept())) {
builder.append(StrUtil.SLASH).append(importVo.getConcurrentThirdDept());
}
return builder.toString();
}
......
......@@ -16,8 +16,7 @@ import com.anplus.hr.domain.EmployeeFlow;
import com.anplus.hr.domain.EmployeeInfo;
import com.anplus.hr.domain.params.EmployeeFlowListParam;
import com.anplus.hr.domain.params.EmployeeFlowParam;
import com.anplus.hr.domain.vo.EmployeeFlowVo;
import com.anplus.hr.domain.vo.SysAuditLogVo;
import com.anplus.hr.domain.vo.*;
import com.anplus.hr.mapper.EmployeeFlowMapper;
import com.anplus.hr.mapper.EmployeeInfoMapper;
import com.anplus.hr.service.EmployeeAuditLogServ;
......@@ -136,6 +135,38 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
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
employeeInfo.setStatus(HrStatusEnum.REGULARIZATION.getStatus());
for (SysAuditLog auditLog : auditLogs) {
switch (auditLog.getAuditField()) {
case "contractStartDate":
employeeInfo.setContractStartDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
case "contractEndDate":
employeeInfo.setContractEndDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
case "contractSigningStatus":
employeeInfo.setContractSigningStatus(auditLog.getAfterVal());
break;
case "contractEntity":
employeeInfo.setContractEntity(auditLog.getAfterVal());
break;
// case "contractStartDate":
// employeeInfo.setContractStartDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
// break;
// case "contractEndDate":
// employeeInfo.setContractEndDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
// break;
// case "contractSigningStatus":
// employeeInfo.setContractSigningStatus(auditLog.getAfterVal());
// break;
// case "contractEntity":
// employeeInfo.setContractEntity(auditLog.getAfterVal());
// break;
case "socialSecurityEntity":
employeeInfo.setSocialSecurityEntity(auditLog.getAfterVal());
break;
......@@ -422,6 +453,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "hasProvidentFundPaid":
employeeInfo.setHasProvidentFundPaid(auditLog.getAfterVal());
break;
case "hasEmployerInsurancePaid":
employeeInfo.setHasEmployerInsurancePaid(auditLog.getAfterVal());
break;
case "regularizationDate":
employeeInfo.setRegularizationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
......@@ -431,15 +465,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "employmentForm":
employeeInfo.setEmploymentForm(auditLog.getAfterVal());
break;
case "contractForm":
employeeInfo.setContractForm(auditLog.getAfterVal());
break;
case "contractTerm":
employeeInfo.setContractTerm(auditLog.getAfterVal());
break;
case "contractExpirationReminder":
employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
// case "contractForm":
// employeeInfo.setContractForm(auditLog.getAfterVal());
// break;
// case "contractTerm":
// employeeInfo.setContractTerm(auditLog.getAfterVal());
// break;
// case "contractExpirationReminder":
// employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
// break;
default:
break;
}
......@@ -458,6 +492,9 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "resignationReason":
employeeInfo.setResignationReason(auditLog.getAfterVal());
break;
case "resignationCategory":
employeeInfo.setResignationCategory(auditLog.getAfterVal());
break;
case "resignationDate":
employeeInfo.setResignationDate(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
......@@ -494,6 +531,21 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "deptId":
employeeInfo.setDeptId(Convert.toLong(auditLog.getAfterVal()));
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":
transferDate = LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN);
break;
......@@ -524,6 +576,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case "contractTerm":
employeeInfo.setContractTerm(auditLog.getAfterVal());
break;
case "contractEntity":
employeeInfo.setContractEntity(auditLog.getAfterVal());
break;
case "socialSecurityEntity":
employeeInfo.setSocialSecurityEntity(auditLog.getAfterVal());
break;
case "providentFundEntity":
employeeInfo.setProvidentFundEntity(auditLog.getAfterVal());
break;
case "contractExpirationReminder":
employeeInfo.setContractExpirationReminder(LocalDateTimeUtil.parseDate(auditLog.getAfterVal(), DatePattern.NORM_DATE_PATTERN));
break;
......
......@@ -127,7 +127,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
for (EmployeeInfoResignImportVo importVo : successList) {
SysOss sysOss = employeeInfoServ.handleImageToUrl(excelProcessingResult, 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) {
// importVo.addError("部门不存在");
// errorList.add(importVo);
......@@ -136,7 +136,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
EmployeeInfo employeeInfo = MapstructUtils.convert(importVo, EmployeeInfo.class);
employeeInfo.setStatus(HrStatusEnum.RESIGN.getStatus());
employeeInfo.setDeptId(leafDeptId);
employeeInfo.setPartDeptId(partDeptId);
employeeInfo.setConcurrentDeptId(concurrentDeptId);
if (sysOss != null) {
ossList.add(sysOss);
ossEmployeeInfoMap.put(sysOss.getFileName(), employeeInfo);
......
......@@ -53,6 +53,7 @@ public class EmployeeScheduleService {
// 实现每月任务逻辑
boolean existNewRegularReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>()
.eq(EmployeeInfo::getStatus, HrStatusEnum.ENTRY.getStatus())
.isNotNull(EmployeeInfo::getExpectedRegularDate)
.between(EmployeeInfo::getExpectedRegularDate, LocalDate.now(), LocalDate.now().plusMonths(1))
);
if (existNewRegularReminders) {
......@@ -63,6 +64,7 @@ public class EmployeeScheduleService {
}
boolean existContractRenewalReminders = employeeInfoMapper.exists(new LambdaUpdateWrapper<EmployeeInfo>()
.eq(EmployeeInfo::getStatus, HrStatusEnum.REGULARIZATION.getStatus())
.isNotNull(EmployeeInfo::getContractEndDate)
.between(EmployeeInfo::getContractEndDate, LocalDate.now(), LocalDate.now().plusMonths(1))
);
if (existContractRenewalReminders) {
......
......@@ -18,7 +18,7 @@
<mapstruct-plus.version>1.4.8</mapstruct-plus.version>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.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>
</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