Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
fangxinjiang
yifu-mvp
Commits
47656659
Commit
47656659
authored
Mar 05, 2026
by
fangxinjiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
合同续签待办-fxj
parent
68c9bc03
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
250 additions
and
40 deletions
+250
-40
ContractAlertConfirmResVo.java
...d/plus/v1/yifu/archives/vo/ContractAlertConfirmResVo.java
+132
-0
ContractAlertConfirmVo.java
...loud/plus/v1/yifu/archives/vo/ContractAlertConfirmVo.java
+19
-0
TEmployeeAutoRegistCheckVo.java
.../plus/v1/yifu/archives/vo/TEmployeeAutoRegistCheckVo.java
+1
-1
TEmployeeContractPreNewVo.java
...d/plus/v1/yifu/archives/vo/TEmployeeContractPreNewVo.java
+1
-1
TEmployeeContractPreNewServiceImpl.java
...ives/service/impl/TEmployeeContractPreNewServiceImpl.java
+97
-38
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/ContractAlertConfirmResVo.java
0 → 100644
View file @
47656659
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.write.style.HeadFontStyle
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author fxj
* @Date 2022/7/1
* @Description
* @Version 1.0
*/
@Data
public
class
ContractAlertConfirmResVo
implements
Serializable
{
@ExcelAttribute
(
name
=
"项目名称"
)
@Schema
(
description
=
"项目名称"
)
@ExcelProperty
(
"项目名称"
)
private
String
deptName
;
@ExcelAttribute
(
name
=
"项目编码"
)
@Schema
(
description
=
"项目编码"
)
@ExcelProperty
(
"项目编码"
)
private
String
deptNo
;
/**
* 主键
*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@ExcelAttribute
(
name
=
"主键"
)
@Schema
(
description
=
"主键"
)
@ExcelIgnore
private
String
id
;
/**
* 员工名称
*/
@ExcelAttribute
(
name
=
"员工名称"
)
@Schema
(
description
=
"员工名称"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"员工名称"
)
private
String
empName
;
/**
* 身份证号
*/
@ExcelAttribute
(
name
=
"身份证号"
)
@Schema
(
description
=
"身份证号"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"身份证号"
)
private
String
empIdcard
;
/**
* 上一份合同起止日期
*/
@Schema
(
description
=
"上一份合同起止日期"
)
private
String
lastContractEndAndStart
;
/**
* 就职岗位
*/
@ExcelAttribute
(
name
=
"就职岗位"
)
@Schema
(
description
=
"就职岗位"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"就职岗位"
)
private
String
post
;
/**
* 合同类型
*/
@ExcelAttribute
(
name
=
"合同类型"
)
@Schema
(
description
=
"合同类型"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"合同类型"
)
private
String
contractType
;
/**
* 签署甲方
*/
@ExcelAttribute
(
name
=
"签署甲方"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"签署甲方不能超过50个字符"
)
@ExcelProperty
(
"签署甲方"
)
@Schema
(
description
=
"签署甲方"
)
private
String
signatory
;
/**
* 签署方式
*/
@ExcelAttribute
(
name
=
"签署方式"
,
maxLength
=
32
)
@ExcelProperty
(
"签署方式"
)
@Schema
(
description
=
"签署方式1线下签0电子签"
)
private
String
signType
;
/**
* 合同开始日期
*/
@ExcelAttribute
(
name
=
"合同开始日期"
)
@Schema
(
description
=
"合同开始日期"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"合同开始日期"
)
private
Date
contractStart
;
/**
* 合同截止日期
*/
@ExcelAttribute
(
name
=
"合同截止日期"
)
@Schema
(
description
=
"合同截止日期"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"合同截止日期"
)
private
Date
contractEnd
;
/**
* 合同ID
*/
@ExcelAttribute
(
name
=
"合同ID"
,
isExport
=
false
)
@Schema
(
description
=
"合同ID"
)
@ExcelIgnore
private
String
contractId
;
@ExcelAttribute
(
name
=
"错误信息"
)
@Schema
(
description
=
"错误信息"
)
@ExcelProperty
(
"错误信息"
)
private
String
errorMsg
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/ContractAlertConfirmVo.java
View file @
47656659
...
...
@@ -125,4 +125,23 @@ public class ContractAlertConfirmVo implements Serializable {
@ExcelIgnore
private
String
contractId
;
@ExcelAttribute
(
name
=
"项目名称"
)
@Schema
(
description
=
"项目名称"
)
@ExcelProperty
(
"项目名称"
)
private
String
deptName
;
@ExcelAttribute
(
name
=
"项目编码"
)
@Schema
(
description
=
"项目编码"
)
@ExcelProperty
(
"项目编码"
)
private
String
deptNo
;
@ExcelAttribute
(
name
=
"错误信息"
)
@Schema
(
description
=
"错误信息"
)
@ExcelProperty
(
"错误信息"
)
private
String
errorMsg
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TEmployeeAutoRegistCheckVo.java
View file @
47656659
...
...
@@ -48,6 +48,6 @@ public class TEmployeeAutoRegistCheckVo implements Serializable {
private
String
errorMsg
;
//反馈文件要求
ContractAlertConfirmVo
confirmVo
;
ContractAlertConfirm
Res
Vo
confirmVo
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TEmployeeContractPreNewVo.java
View file @
47656659
...
...
@@ -725,6 +725,6 @@ public class TEmployeeContractPreNewVo extends TEmployeeContractPreNew implement
* @Author fxj
* @Description 批量确认返回对象
**/
private
List
<
ContractAlertConfirmVo
>
confirmVos
;
private
List
<
ContractAlertConfirm
Res
Vo
>
confirmVos
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TEmployeeContractPreNewServiceImpl.java
View file @
47656659
...
...
@@ -364,95 +364,130 @@ public class TEmployeeContractPreNewServiceImpl extends ServiceImpl<TEmployeeCon
String
innitError
=
null
;
String
preId
=
null
;
//已合同Id 组建map
Map
<
String
,
ContractAlertConfirmVo
>
confirmMap
=
null
;
List
<
ContractAlertConfirmVo
>
confirmVos
=
preVo
.
getConfirmVos
();
Map
<
String
,
ContractAlertConfirm
Res
Vo
>
confirmMap
=
null
;
List
<
ContractAlertConfirm
Res
Vo
>
confirmVos
=
preVo
.
getConfirmVos
();
if
(
null
!=
confirmVos
&&
confirmVos
.
size
()
>
0
){
confirmMap
=
confirmVos
.
stream
().
filter
(
v
->
v
.
getContractId
()
!=
null
)
.
collect
(
Collectors
.
toMap
(
ContractAlertConfirmVo:
:
getContractId
,
v
->
v
));
.
collect
(
Collectors
.
toMap
(
ContractAlertConfirm
Res
Vo:
:
getContractId
,
v
->
v
));
}
if
(
null
==
confirmMap
){
confirmMap
=
new
HashMap
<>();
}
ContractAlertConfirmResVo
temp
=
null
;
TEmployeeContractPreNewVo
preVoTemp
=
null
;
for
(
TEmployeeContractInfo
contract
:
contractList
){
preVoTemp
=
new
TEmployeeContractPreNewVo
();
BeanCopyUtils
.
copyProperties
(
preVo
,
preVoTemp
);
alert
=
alertMap
.
get
(
contract
.
getId
());
if
(
null
==
alert
){
checkVo
=
new
TEmployeeAutoRegistCheckVo
();
checkVo
.
setEmployeeName
(
contract
.
getEmpName
());
checkVo
.
setEmpIdcard
(
contract
.
getEmpIdcard
());
checkVo
.
setDeptName
(
preVo
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
.
getDeptNo
());
checkVo
.
setDeptName
(
preVo
Temp
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
Temp
.
getDeptNo
());
checkVo
.
setType
(
"合同"
);
checkVo
.
setErrorMsg
(
"未找到合同续签待办信息"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
pre
=
new
TEmployeeContractPreNew
();
BeanCopyUtils
.
copyProperties
(
preVoTemp
,
pre
);
preId
=
preMap
.
get
(
contract
.
getId
());
if
(
Common
.
isNotNull
(
preId
)){
checkVo
=
new
TEmployeeAutoRegistCheckVo
();
checkVo
.
setEmployeeName
(
contract
.
getEmpName
());
checkVo
.
setEmpIdcard
(
contract
.
getEmpIdcard
());
checkVo
.
setDeptName
(
preVo
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
.
getDeptNo
());
checkVo
.
setDeptName
(
preVo
Temp
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
Temp
.
getDeptNo
());
checkVo
.
setType
(
"合同"
);
checkVo
.
setErrorMsg
(
"已确认,请勿重复确认"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
//初始化数据
innitError
=
initDateInfo
(
preVo
,
contract
);
innitError
=
initDateInfo
(
preVo
Temp
,
contract
);
if
(
Common
.
isNotNull
(
innitError
)){
checkVo
=
new
TEmployeeAutoRegistCheckVo
();
checkVo
.
setEmployeeName
(
contract
.
getEmpName
());
checkVo
.
setEmpIdcard
(
contract
.
getEmpIdcard
());
checkVo
.
setDeptName
(
preVo
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
.
getDeptNo
());
checkVo
.
setDeptName
(
preVo
Temp
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
Temp
.
getDeptNo
());
checkVo
.
setType
(
"合同"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
.
setErrorMsg
(
innitError
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);;
errorList
.
add
(
checkVo
);
continue
;
}
//判断两个合同时间是否重合
if
(
LocalDateUtil
.
hasOverlap
(
contract
.
getContractStart
(),
contract
.
getContractEnd
(),
preVo
.
getContractStart
(),
preVo
.
getContractEnd
())){
if
(
LocalDateUtil
.
hasOverlap
(
contract
.
getContractStart
(),
contract
.
getContractEnd
(),
preVo
Temp
.
getContractStart
(),
preVoTemp
.
getContractEnd
())){
checkVo
=
new
TEmployeeAutoRegistCheckVo
();
checkVo
.
setEmployeeName
(
contract
.
getEmpName
());
checkVo
.
setEmpIdcard
(
contract
.
getEmpIdcard
());
checkVo
.
setDeptName
(
preVo
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
.
getDeptNo
());
checkVo
.
setDeptName
(
preVo
Temp
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
Temp
.
getDeptNo
());
checkVo
.
setType
(
"合同"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
.
setErrorMsg
(
EmployeeConstants
.
DATA_CONTRACT_OVERLAP
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
//如果电子签是系统自动撤销对应的签署方式必须更新为 线下签,
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
preVo
.
getSignType
())){
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
preVo
Temp
.
getSignType
())){
preNew
=
baseMapper
.
selectOne
(
Wrappers
.<
TEmployeeContractPreNew
>
query
().
lambda
()
.
eq
(
TEmployeeContractPreNew:
:
getContractId
,
contract
.
getId
()).
last
(
CommonConstants
.
LAST_ONE_SQL
));
if
(
null
!=
preNew
&&
CommonConstants
.
ELEVEN_STRING
.
equals
(
preNew
.
getProcessStatus
())){
checkVo
=
new
TEmployeeAutoRegistCheckVo
();
checkVo
.
setEmployeeName
(
contract
.
getEmpName
());
checkVo
.
setEmpIdcard
(
contract
.
getEmpIdcard
());
checkVo
.
setDeptName
(
preVo
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
.
getDeptNo
());
checkVo
.
setDeptName
(
preVo
Temp
.
getDeptName
());
checkVo
.
setDeptNo
(
preVo
Temp
.
getDeptNo
());
checkVo
.
setType
(
"合同"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
.
setErrorMsg
(
EmployeeConstants
.
DATA_CONTRACT_CANCEL_MUST_OFFLINE_SIGN
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
}
//初始化岗位名称
TAutoContractScheme
scheme
=
contractSchemeMapper
.
selectById
(
preVo
.
getConfigId
());
if
(
Common
.
isNotNull
(
preVo
.
getConfigId
())
&&
"固定岗位"
.
equals
(
preVo
.
getPost
())
&&
null
!=
scheme
){
preVo
.
setPost
(
scheme
.
getPost
());
TAutoContractScheme
scheme
=
contractSchemeMapper
.
selectById
(
preVo
Temp
.
getConfigId
());
if
(
Common
.
isNotNull
(
preVo
Temp
.
getConfigId
())
&&
"固定岗位"
.
equals
(
preVoTemp
.
getPost
())
&&
null
!=
scheme
){
preVo
Temp
.
setPost
(
scheme
.
getPost
());
}
else
{
//等于上一份合同的岗位明细
preVo
.
setPost
(
contract
.
getPost
());
preVo
Temp
.
setPost
(
contract
.
getPost
());
}
//处理预计发起时间
TAutoContractRuleInfo
rule
=
null
;
...
...
@@ -469,8 +504,14 @@ public class TEmployeeContractPreNewServiceImpl extends ServiceImpl<TEmployeeCon
// 解析合同结束日期
LocalDate
contractEndDate
=
parseContractEndDate
(
contract
.
getContractEnd
());
if
(
null
==
contractEndDate
)
{
checkVo
=
buildErrorCheckVo
(
contract
,
preVo
,
"合同结束日期解析失败"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
=
buildErrorCheckVo
(
contract
,
preVoTemp
,
"合同结束日期解析失败"
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
...
...
@@ -478,8 +519,14 @@ public class TEmployeeContractPreNewServiceImpl extends ServiceImpl<TEmployeeCon
// 计算预计发起日期
LocalDate
reminderDate
=
calculateReminderDate
(
rule
.
getRenewalDateType
(),
contractEndDate
);
if
(
null
==
reminderDate
)
{
checkVo
=
buildErrorCheckVo
(
contract
,
preVo
,
"预计发起时间初始化失败"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
=
buildErrorCheckVo
(
contract
,
preVoTemp
,
"预计发起时间初始化失败"
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
...
...
@@ -489,30 +536,42 @@ public class TEmployeeContractPreNewServiceImpl extends ServiceImpl<TEmployeeCon
reminderDate
=
adjustToNearestWorkday
(
reminderDate
);
}
// 检查电子签是否超期(和续签的合同开始日期进行比较)
if
(
null
!=
preVo
.
getContractStart
()
&&
CommonConstants
.
ZERO_STRING
.
equals
(
preVo
.
getSignType
())){
LocalDate
contractStartDateNew
=
parseContractEndDate
(
preVo
.
getContractStart
());
if
(
null
!=
preVo
Temp
.
getContractStart
()
&&
CommonConstants
.
ZERO_STRING
.
equals
(
preVoTemp
.
getSignType
())){
LocalDate
contractStartDateNew
=
parseContractEndDate
(
preVo
Temp
.
getContractStart
());
if
(
null
==
contractEndDate
)
{
checkVo
=
buildErrorCheckVo
(
contract
,
preVo
,
"续签合同开始日期解析失败"
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
=
buildErrorCheckVo
(
contract
,
preVoTemp
,
"续签合同开始日期解析失败"
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
if
(
reminderDate
.
isAfter
(
contractStartDateNew
.
plusMonths
(
1
)))
{
checkVo
=
buildErrorCheckVo
(
contract
,
preVo
,
EmployeeConstants
.
DATA_CONTRACT_EXPECTED_SIGN_TIME_ERROR
);
checkVo
.
setConfirmVo
(
confirmMap
.
get
(
contract
.
getId
()));
checkVo
=
buildErrorCheckVo
(
contract
,
preVoTemp
,
EmployeeConstants
.
DATA_CONTRACT_EXPECTED_SIGN_TIME_ERROR
);
temp
=
confirmMap
.
get
(
contract
.
getId
());
if
(
null
!=
temp
){
temp
.
setDeptNo
(
alert
.
getProjectNo
());
temp
.
setDeptName
(
alert
.
getProject
());
temp
.
setErrorMsg
(
checkVo
.
getErrorMsg
());
}
checkVo
.
setConfirmVo
(
temp
);
errorList
.
add
(
checkVo
);
continue
;
}
}
// 设置预计发起时间
preVo
.
setExpectedCollectionTime
(
DateUtil
.
getDateByLocalDate
(
reminderDate
));
preVo
Temp
.
setExpectedCollectionTime
(
DateUtil
.
getDateByLocalDate
(
reminderDate
));
}
}
pre
=
new
TEmployeeContractPreNew
();
BeanCopyUtils
.
copyProperties
(
preVo
,
pre
);
BeanCopyUtils
.
copyProperties
(
preVo
Temp
,
pre
);
pre
.
setContractId
(
contract
.
getId
());
pre
.
setProcessStatus
(
CommonConstants
.
ONE_STRING
);
if
(
null
!=
alert
){
...
...
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