Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
an-plus-hr
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
anjia-hr
an-plus-hr
Commits
8d63cf30
Commit
8d63cf30
authored
Dec 04, 2025
by
刘斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 增加新字段,修改所有审批
parent
d0b7b557
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
1313 additions
and
185 deletions
+1313
-185
HrConstant.java
admin/src/main/java/com/anplus/hr/constant/HrConstant.java
+10
-0
EmployeeFlowCtrl.java
.../main/java/com/anplus/hr/controller/EmployeeFlowCtrl.java
+13
-0
EmployeeInfoCtrl.java
.../main/java/com/anplus/hr/controller/EmployeeInfoCtrl.java
+3
-2
EmployeeInfo.java
admin/src/main/java/com/anplus/hr/domain/EmployeeInfo.java
+67
-12
EmployeeBaseInfoParam.java
...va/com/anplus/hr/domain/params/EmployeeBaseInfoParam.java
+84
-0
EmployeeInfoListParam.java
...va/com/anplus/hr/domain/params/EmployeeInfoListParam.java
+60
-10
EmployeeInfoParam.java
...n/java/com/anplus/hr/domain/params/EmployeeInfoParam.java
+78
-17
EmployeeRegularApplyParam.java
...om/anplus/hr/domain/params/EmployeeRegularApplyParam.java
+27
-22
EmployeeRenewalContractApplyParam.java
...s/hr/domain/params/EmployeeRenewalContractApplyParam.java
+23
-2
EmployeeResignApplyParam.java
...com/anplus/hr/domain/params/EmployeeResignApplyParam.java
+8
-4
EmployeeTransferApplyParam.java
...m/anplus/hr/domain/params/EmployeeTransferApplyParam.java
+27
-0
EmployeeFlowEntryApplyVo.java
...ava/com/anplus/hr/domain/vo/EmployeeFlowEntryApplyVo.java
+27
-0
EmployeeFlowRegularApplyVo.java
...a/com/anplus/hr/domain/vo/EmployeeFlowRegularApplyVo.java
+53
-0
EmployeeFlowRenewalContractApplyVo.java
...plus/hr/domain/vo/EmployeeFlowRenewalContractApplyVo.java
+62
-0
EmployeeFlowTransferApplyVo.java
.../com/anplus/hr/domain/vo/EmployeeFlowTransferApplyVo.java
+25
-0
EmployeeFlowVo.java
...src/main/java/com/anplus/hr/domain/vo/EmployeeFlowVo.java
+2
-0
EmployeeInfoImportVo.java
...in/java/com/anplus/hr/domain/vo/EmployeeInfoImportVo.java
+137
-26
EmployeeInfoResignImportVo.java
...a/com/anplus/hr/domain/vo/EmployeeInfoResignImportVo.java
+12
-0
EmployeeInfoResignVo.java
...in/java/com/anplus/hr/domain/vo/EmployeeInfoResignVo.java
+9
-0
EmployeeInfoResumeVo.java
...in/java/com/anplus/hr/domain/vo/EmployeeInfoResumeVo.java
+315
-0
EmployeeInfoVo.java
...src/main/java/com/anplus/hr/domain/vo/EmployeeInfoVo.java
+77
-16
EmployeeFlowServ.java
...src/main/java/com/anplus/hr/service/EmployeeFlowServ.java
+9
-0
EmployeeInfoServ.java
...src/main/java/com/anplus/hr/service/EmployeeInfoServ.java
+16
-7
EmployeeFlowServImpl.java
...java/com/anplus/hr/service/impl/EmployeeFlowServImpl.java
+84
-23
EmployeeInfoResignServImpl.java
...om/anplus/hr/service/impl/EmployeeInfoResignServImpl.java
+2
-2
EmployeeInfoServImpl.java
...java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
+80
-41
EmployeeScheduleService.java
...a/com/anplus/hr/service/impl/EmployeeScheduleService.java
+2
-0
pom.xml
pom.xml
+1
-1
No files found.
admin/src/main/java/com/anplus/hr/constant/HrConstant.java
View file @
8d63cf30
...
...
@@ -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"
;
}
admin/src/main/java/com/anplus/hr/controller/EmployeeFlowCtrl.java
View file @
8d63cf30
...
...
@@ -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
));
}
/**
* 新增人事审批对象
*/
...
...
admin/src/main/java/com/anplus/hr/controller/EmployeeInfoCtrl.java
View file @
8d63cf30
...
...
@@ -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
)
{
EmployeeInfo
Vo
vo
=
employeeInfoServ
.
infoDetail
(
id
);
public
List
<
EmployeeInfo
Resume
Vo
>
export
(
@PathVariable
Long
id
)
{
EmployeeInfo
ResumeVo
vo
=
employeeInfoServ
.
infoDetailForResume
(
id
);
return
List
.
of
(
vo
);
}
...
...
admin/src/main/java/com/anplus/hr/domain/EmployeeInfo.java
View file @
8d63cf30
...
...
@@ -111,34 +111,39 @@ public class EmployeeInfo extends TenantModel {
private
String
ageGroup
;
/**
* 兼
职
板块
* 兼
岗
板块
*/
private
String
partTime
Plate
;
private
String
concurrent
Plate
;
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
private
String
partTime
FirstDept
;
private
String
concurrent
FirstDept
;
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
private
String
partTime
SecondDept
;
private
String
concurrent
SecondDept
;
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
private
String
partTime
ThirdDept
;
private
String
concurrent
ThirdDept
;
/**
* 兼
职
部门ID
* 兼
岗
部门ID
*/
private
Long
par
tDeptId
;
private
Long
concurren
tDeptId
;
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
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
;
/**
* 离职时间
*/
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeBaseInfoParam.java
View file @
8d63cf30
...
...
@@ -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
*/
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeInfoListParam.java
View file @
8d63cf30
...
...
@@ -104,29 +104,34 @@ public class EmployeeInfoListParam extends PageQueryParam {
private
String
ageGroup
;
/**
* 兼
职
板块
* 兼
岗
板块
*/
private
String
partTime
Plate
;
private
String
concurrent
Plate
;
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
private
String
partTime
FirstDept
;
private
String
concurrent
FirstDept
;
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
private
String
partTime
SecondDept
;
private
String
concurrent
SecondDept
;
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
private
String
partTime
ThirdDept
;
private
String
concurrent
ThirdDept
;
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
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
;
/**
* 离职时间
*/
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeInfoParam.java
View file @
8d63cf30
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
partTime
Plate
;
// @NotBlank(message = "兼
岗
板块不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
concurrent
Plate
;
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
// @NotBlank(message = "兼
职
一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
partTime
FirstDept
;
// @NotBlank(message = "兼
岗
一级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
concurrent
FirstDept
;
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
// @NotBlank(message = "兼
职
二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
partTime
SecondDept
;
// @NotBlank(message = "兼
岗
二级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
concurrent
SecondDept
;
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
// @NotBlank(message = "兼
职
三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
partTime
ThirdDept
;
// @NotBlank(message = "兼
岗
三级部门不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
concurrent
ThirdDept
;
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
// @NotBlank(message = "兼
职
岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
partTime
Position
;
// @NotBlank(message = "兼
岗
岗位不能为空", groups = { AddGroup.class, EditGroup.class })
private
String
concurrent
Position
;
/**
* 兼
职部门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
;
/**
* 离职时间
*/
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeRegularApplyParam.java
View file @
8d63cf30
...
...
@@ -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
;
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeRenewalContractApplyParam.java
View file @
8d63cf30
...
...
@@ -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
;
}
admin/src/main/java/com/anplus/hr/domain/params/EmployeeResignApplyParam.java
View file @
8d63cf30
...
...
@@ -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
resign
ation
Date
;
/**
* 最后结薪日
...
...
@@ -45,7 +49,7 @@ public class EmployeeResignApplyParam {
/**
* 离职原因
*/
private
String
resignReason
;
private
String
resign
ation
Reason
;
private
String
remark
;
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeTransferApplyParam.java
View file @
8d63cf30
...
...
@@ -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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFlowEntryApplyVo.java
0 → 100644
View file @
8d63cf30
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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFlowRegularApplyVo.java
0 → 100644
View file @
8d63cf30
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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFlowRenewalContractApplyVo.java
0 → 100644
View file @
8d63cf30
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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFlowTransferApplyVo.java
0 → 100644
View file @
8d63cf30
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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFlowVo.java
View file @
8d63cf30
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
;
/**
...
...
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeInfoImportVo.java
View file @
8d63cf30
...
...
@@ -145,34 +145,40 @@ public class EmployeeInfoImportVo extends ExcelBaseEntity implements Serializabl
private
String
ageGroup
;
/**
* 兼
职
板块
* 兼
岗
板块
*/
@ExcelProperty
(
value
=
"兼
职
板块"
)
private
String
partTime
Plate
;
@ExcelProperty
(
value
=
"兼
岗
板块"
)
private
String
concurrent
Plate
;
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
@ExcelProperty
(
value
=
"兼
职
一级部门"
)
private
String
partTime
FirstDept
;
@ExcelProperty
(
value
=
"兼
岗
一级部门"
)
private
String
concurrent
FirstDept
;
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
@ExcelProperty
(
value
=
"兼
职
二级部门"
)
private
String
partTime
SecondDept
;
@ExcelProperty
(
value
=
"兼
岗
二级部门"
)
private
String
concurrent
SecondDept
;
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
@ExcelProperty
(
value
=
"兼
职
三级部门"
)
private
String
partTime
ThirdDept
;
@ExcelProperty
(
value
=
"兼
岗
三级部门"
)
private
String
concurrent
ThirdDept
;
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
@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
set
PartTimePlate
(
String
partTime
Plate
)
{
this
.
partTimePlate
=
partTimePlate
==
null
?
null
:
partTime
Plate
.
trim
();
public
void
set
ConcurrentPlate
(
String
concurrent
Plate
)
{
this
.
concurrentPlate
=
concurrentPlate
==
null
?
null
:
concurrent
Plate
.
trim
();
}
public
void
set
PartTimeFirstDept
(
String
partTime
FirstDept
)
{
this
.
partTimeFirstDept
=
partTimeFirstDept
==
null
?
null
:
partTime
FirstDept
.
trim
();
public
void
set
ConcurrentFirstDept
(
String
concurrent
FirstDept
)
{
this
.
concurrentFirstDept
=
concurrentFirstDept
==
null
?
null
:
concurrent
FirstDept
.
trim
();
}
public
void
set
PartTimeSecondDept
(
String
partTime
SecondDept
)
{
this
.
partTimeSecondDept
=
partTimeSecondDept
==
null
?
null
:
partTime
SecondDept
.
trim
();
public
void
set
ConcurrentSecondDept
(
String
concurrent
SecondDept
)
{
this
.
concurrentSecondDept
=
concurrentSecondDept
==
null
?
null
:
concurrent
SecondDept
.
trim
();
}
public
void
set
PartTimeThirdDept
(
String
partTime
ThirdDept
)
{
this
.
partTimeThirdDept
=
partTimeThirdDept
==
null
?
null
:
partTime
ThirdDept
.
trim
();
public
void
set
ConcurrentThirdDept
(
String
concurrent
ThirdDept
)
{
this
.
concurrentThirdDept
=
concurrentThirdDept
==
null
?
null
:
concurrent
ThirdDept
.
trim
();
}
public
void
set
PartTimePosition
(
String
partTime
Position
)
{
this
.
partTimePosition
=
partTimePosition
==
null
?
null
:
partTime
Position
.
trim
();
public
void
set
ConcurrentPosition
(
String
concurrent
Position
)
{
this
.
concurrentPosition
=
concurrentPosition
==
null
?
null
:
concurrent
Position
.
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;
// }
...
...
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeInfoResignImportVo.java
View file @
8d63cf30
...
...
@@ -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
();
}
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeInfoResignVo.java
View file @
8d63cf30
...
...
@@ -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
;
/**
* 离职时间
*/
...
...
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeInfoResumeVo.java
0 → 100644
View file @
8d63cf30
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
;
}
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeInfoVo.java
View file @
8d63cf30
...
...
@@ -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
partTime
Plate
;
@ExcelProperty
(
value
=
"兼
岗
板块"
)
private
String
concurrent
Plate
;
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
@ExcelProperty
(
value
=
"兼
职
一级部门"
)
private
String
partTime
FirstDept
;
@ExcelProperty
(
value
=
"兼
岗
一级部门"
)
private
String
concurrent
FirstDept
;
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
@ExcelProperty
(
value
=
"兼
职
二级部门"
)
private
String
partTime
SecondDept
;
@ExcelProperty
(
value
=
"兼
岗
二级部门"
)
private
String
concurrent
SecondDept
;
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
@ExcelProperty
(
value
=
"兼
职
三级部门"
)
private
String
partTime
ThirdDept
;
@ExcelProperty
(
value
=
"兼
岗
三级部门"
)
private
String
concurrent
ThirdDept
;
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
@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
;
/**
* 员工状态
*/
...
...
admin/src/main/java/com/anplus/hr/service/EmployeeFlowServ.java
View file @
8d63cf30
...
...
@@ -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
);
/**
* 新增人事审批对象
*
...
...
admin/src/main/java/com/anplus/hr/service/EmployeeInfoServ.java
View file @
8d63cf30
...
...
@@ -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
.
get
PartTime
Plate
());
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
PartTime
FirstDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
PartTime
FirstDept
());
StringBuilder
builder
=
new
StringBuilder
(
importVo
.
get
Concurrent
Plate
());
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
Concurrent
FirstDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
Concurrent
FirstDept
());
}
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
PartTime
SecondDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
PartTime
SecondDept
());
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
Concurrent
SecondDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
Concurrent
SecondDept
());
}
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
PartTime
ThirdDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
PartTime
ThirdDept
());
if
(
StrUtil
.
isNotBlank
(
importVo
.
get
Concurrent
ThirdDept
()))
{
builder
.
append
(
StrUtil
.
SLASH
).
append
(
importVo
.
get
Concurrent
ThirdDept
());
}
return
builder
.
toString
();
}
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeFlowServImpl.java
View file @
8d63cf30
...
...
@@ -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
;
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeInfoResignServImpl.java
View file @
8d63cf30
...
...
@@ -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
par
tDeptId
=
deptNamesIdMap
.
get
(
employeeInfoServ
.
buildPartDeptNameStr
(
importVo
));
Long
concurren
tDeptId
=
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
.
set
PartDeptId
(
par
tDeptId
);
employeeInfo
.
set
ConcurrentDeptId
(
concurren
tDeptId
);
if
(
sysOss
!=
null
)
{
ossList
.
add
(
sysOss
);
ossEmployeeInfoMap
.
put
(
sysOss
.
getFileName
(),
employeeInfo
);
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
View file @
8d63cf30
This diff is collapsed.
Click to expand it.
admin/src/main/java/com/anplus/hr/service/impl/EmployeeScheduleService.java
View file @
8d63cf30
...
...
@@ -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
)
{
...
...
pom.xml
View file @
8d63cf30
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment