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
eab12910
Commit
eab12910
authored
Jan 13, 2026
by
fangxinjiang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/MVP1.7.18' into MVP1.7.18
parents
6b4b282d
1188e096
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
123 additions
and
63 deletions
+123
-63
TEmployeePreLogServiceImpl.java
...ifu/archives/service/impl/TEmployeePreLogServiceImpl.java
+58
-28
ElectronicArchiveImportServiceImpl.java
...atch/service/impl/ElectronicArchiveImportServiceImpl.java
+50
-32
TElectronicArchiveDetailServiceImpl.java
...tch/service/impl/TElectronicArchiveDetailServiceImpl.java
+13
-1
TSocialFundInfoMapper.xml
...l-biz/src/main/resources/mapper/TSocialFundInfoMapper.xml
+2
-2
No files found.
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TEmployeePreLogServiceImpl.java
View file @
eab12910
...
...
@@ -215,7 +215,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
CONTRACT_IGNORE_FIELD
.
add
(
"internshipPeriodNum"
);
CONTRACT_IGNORE_FIELD
.
add
(
"tryPeriodNum"
);
CONTRACT_IGNORE_FIELD
.
add
(
"fundUpdateFlag"
);
CONTRACT_IGNORE_FIELD
.
add
(
"processStatus"
);
}
private
static
final
List
<
String
>
SOCIAL_IGNORE_FIELD
=
new
ArrayList
<>();
...
...
@@ -320,6 +319,8 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
List
<
TEmployeeInsurancePre
>
saveOrUpdateList
=
new
ArrayList
<>();
//加一个禁止编辑的判断
List
<
TEmployeeInsurancePre
>
unUpdateList
=
new
ArrayList
<>();
//删除的判断
List
<
TEmployeeInsurancePre
>
delInsuracneList
=
new
ArrayList
<>();
// 是否修改了商险
boolean
isModifyInsurance
=
false
;
TEmployeeInsurancePre
oldInsurance
;
...
...
@@ -343,7 +344,7 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
isModifyInsurance
=
true
;
detailList
.
add
(
detailInsuranceLog
);
}
if
(!
newInfo
.
getExitInsuranceInfoList
().
isEmpty
())
{
if
(
null
!=
newInfo
.
getExitInsuranceInfoList
()
&&
!
newInfo
.
getExitInsuranceInfoList
().
isEmpty
())
{
newInfo
.
getExitInsuranceInfoList
().
forEach
(
insurancePreVo
->
insurancePreVo
.
setRegisterId
(
empPreId
));
}
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
(),
daprInsurancesProperties
.
getAppId
()
...
...
@@ -404,6 +405,7 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
this
.
setLogBaseInfo
(
empPreId
,
newInsurance
,
null
,
user
,
differenceInsuranceKey
,
logId
,
detailInsuranceLog
);
isModifyInsurance
=
true
;
detailList
.
add
(
detailInsuranceLog
);
delInsuracneList
.
add
(
newInsurance
);
}
else
if
(
CommonConstants
.
FOUR_STRING
.
equals
(
newInsurance
.
getModelType
()))
{
// 4:不可编辑
unUpdateList
.
add
(
newInsurance
);
...
...
@@ -451,6 +453,34 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
.
in
(
TEmployeeContractPre:
:
getProcessStatus
,
Arrays
.
asList
(
"0"
,
"1"
,
"3"
,
"5"
,
"7"
,
"10"
,
"11"
))
.
eq
(
TEmployeeContractPre:
:
getId
,
contractOld
.
getId
()));
}
//是的场景删除合同待购买数据
if
(
newInfo
.
getServerItem
().
contains
(
"合同"
)
&&
Common
.
isNotNull
(
contractOld
)
&&
Common
.
isEmpty
(
employeeContractPre
)
&&
null
!=
newInfo
.
getContractUpdateFlag
()
&&
newInfo
.
getContractUpdateFlag
())
{
//记录操作记录
contractOld
.
setAttaList
(
null
);
detailEmpLog
=
new
TEmployeePreLogDetail
();
detailEmpLog
.
setModelType
(
CommonConstants
.
THREE_STRING
);
detailEmpLog
.
setType
(
CommonConstants
.
THREE_STRING
);
this
.
setLogBaseInfo
(
empPreId
,
contractOld
,
null
,
user
,
differenceContractKey
,
logId
,
detailEmpLog
);
detailList
.
add
(
detailEmpLog
);
if
(
Common
.
isNotNull
(
diffTitle
))
{
diffTitle
+=
"、合同信息"
;
}
else
{
diffTitle
=
"合同信息"
;
}
// 创建更新条件构造器
LambdaUpdateWrapper
<
TAttaInfo
>
updateWrapperContract
=
new
LambdaUpdateWrapper
<>();
// 设置更新条件和新值
updateWrapperContract
.
eq
(
TAttaInfo:
:
getDomainId
,
contractOld
.
getId
())
.
set
(
TAttaInfo:
:
getDomainId
,
CommonConstants
.
EMPTY_STRING
);
// 执行更新操作,清空附件的关联ID
attaInfoService
.
update
(
updateWrapperContract
);
//删除历史的合同待签订数据
contractPreService
.
remove
(
Wrappers
.<
TEmployeeContractPre
>
query
().
lambda
()
.
in
(
TEmployeeContractPre:
:
getProcessStatus
,
Arrays
.
asList
(
"0"
,
"1"
,
"3"
,
"5"
,
"7"
,
"10"
,
"11"
))
.
eq
(
TEmployeeContractPre:
:
getId
,
contractOld
.
getId
()));
}
if
(
newInfo
.
getServerItem
().
contains
(
"合同"
)
&&
contractOld
!=
null
&&
employeeContractPre
!=
null
&&
null
!=
newInfo
.
getContractUpdateFlag
()
&&
newInfo
.
getContractUpdateFlag
())
{
//1.9.11 huych 附件类型不比较差异
...
...
@@ -676,7 +706,7 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
(),
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/saveOrUpdateInsuranceList"
,
saveOrUpdateList
,
Boolean
.
class
,
SecurityConstants
.
FROM_IN
);
}
else
if
(
unUpdateList
.
isEmpty
()){
}
else
if
(
unUpdateList
.
isEmpty
()
||
!
delInsuracneList
.
isEmpty
()
){
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
(),
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/deleteInsuranceByPreId"
,
empPreId
,
Boolean
.
class
,
SecurityConstants
.
FROM_IN
);
...
...
@@ -750,6 +780,30 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
.
toInstant
());
}
}
/**
* @Description: 填充基本信息
* @Author: hgw
* @Date: 2025/4/8 10:49
* @return: void
**/
private
void
setLogBaseInfo
(
String
empPreId
,
Object
oldInfo
,
Object
newInfo
,
YifuUser
user
,
String
differenceKey
,
String
logId
,
TEmployeePreLogDetail
detailEmpLog
)
{
detailEmpLog
.
setPreId
(
empPreId
);
detailEmpLog
.
setPreLogId
(
logId
);
detailEmpLog
.
setDifferenceInfo
(
differenceKey
);
detailEmpLog
.
setCreateTime
(
LocalDateTime
.
now
());
if
(
Common
.
isNotNull
(
user
))
{
detailEmpLog
.
setCreateBy
(
user
.
getId
());
detailEmpLog
.
setCreateName
(
user
.
getNickname
());
}
if
(
Common
.
isNotNull
(
oldInfo
))
{
detailEmpLog
.
setOldInfo
(
JSON
.
toJSONString
(
oldInfo
,
features
));
}
if
(
Common
.
isNotNull
(
newInfo
))
{
detailEmpLog
.
setNewInfo
(
JSON
.
toJSONString
(
newInfo
,
features
));
}
}
@Override
public
void
saveUpdateInsurance
(
String
empPreId
,
EmployeeRegistrationPre
oldInfo
,
EmployeeRegistrationPre
newInfo
,
String
userId
,
String
nickName
,
Map
<
String
,
TEmployeeInsurancePre
>
oldMap
...
...
@@ -884,7 +938,7 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
attaInfoService
.
update
(
updateWrapperContract
);
//删除历史的合同待签订数据
contractPreService
.
remove
(
Wrappers
.<
TEmployeeContractPre
>
query
().
lambda
()
.
in
(
TEmployeeContractPre:
:
getProcessStatus
,
Arrays
.
asList
(
"0"
,
"1"
,
"3"
,
"5"
,
"7"
,
"10"
,
"11"
))
.
in
(
TEmployeeContractPre:
:
getProcessStatus
,
Arrays
.
asList
(
"0"
,
"1"
,
"3"
,
"5"
,
"7"
,
"10"
,
"11"
))
.
eq
(
TEmployeeContractPre:
:
getId
,
contractOld
.
getId
()));
}
...
...
@@ -1034,30 +1088,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
}
/**
* @Description: 填充基本信息
* @Author: hgw
* @Date: 2025/4/8 10:49
* @return: void
**/
private
void
setLogBaseInfo
(
String
empPreId
,
Object
oldInfo
,
Object
newInfo
,
YifuUser
user
,
String
differenceKey
,
String
logId
,
TEmployeePreLogDetail
detailEmpLog
)
{
detailEmpLog
.
setPreId
(
empPreId
);
detailEmpLog
.
setPreLogId
(
logId
);
detailEmpLog
.
setDifferenceInfo
(
differenceKey
);
detailEmpLog
.
setCreateTime
(
LocalDateTime
.
now
());
if
(
Common
.
isNotNull
(
user
))
{
detailEmpLog
.
setCreateBy
(
user
.
getId
());
detailEmpLog
.
setCreateName
(
user
.
getNickname
());
}
if
(
Common
.
isNotNull
(
oldInfo
))
{
detailEmpLog
.
setOldInfo
(
JSON
.
toJSONString
(
oldInfo
,
features
));
}
if
(
Common
.
isNotNull
(
newInfo
))
{
detailEmpLog
.
setNewInfo
(
JSON
.
toJSONString
(
newInfo
,
features
));
}
}
/**
* @Description: 填充基本信息
* @Author: huyc
...
...
yifu-batch/yifu-batch-biz/src/main/java/com/yifu/cloud/plus/v1/batch/service/impl/ElectronicArchiveImportServiceImpl.java
View file @
eab12910
...
...
@@ -47,6 +47,8 @@ import java.io.IOException;
import
java.io.InputStream
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -594,7 +596,7 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
}
else
{
// ZIP中存在该人员的文件夹,处理其附件(可能有多个文件夹)
List
<
String
>
materialTypes
=
new
ArrayList
<>();
List
<
String
>
failReasons
=
new
ArrayList
<>();
List
<
String
>
failReasons
=
new
ArrayList
<>();
// 遍历该人员的所有文件夹
for
(
File
personDir
:
personDirs
)
{
...
...
@@ -1232,43 +1234,59 @@ public class ElectronicArchiveImportServiceImpl implements ElectronicArchiveImpo
*/
private
Map
<
String
,
String
>
parseIdCardAndName
(
String
folderName
)
{
Map
<
String
,
String
>
result
=
new
HashMap
<>();
if
(
folderName
==
null
||
folderName
.
trim
().
isEmpty
())
{
return
result
;
}
// 尝试用-分隔
if
(
folderName
.
contains
(
"-"
)
||
folderName
.
contains
(
"—"
))
{
String
[]
parts
;
if
(
folderName
.
contains
(
"-"
))
{
parts
=
folderName
.
split
(
"-"
);
}
else
{
parts
=
folderName
.
split
(
"—"
);
}
// 统一处理全角和半角横线
folderName
=
folderName
.
replace
(
"—"
,
"-"
);
// 身份证正则表达式:18位,前17位为数字,最后一位可以是数字或X(大小写)
String
idCardPattern
=
"\\d{17}[\\dXx]"
;
// 情况1:包含分隔符"-"
if
(
folderName
.
contains
(
"-"
))
{
String
[]
parts
=
folderName
.
split
(
"-"
);
if
(
parts
.
length
==
2
)
{
// 判断哪个是身份证号(18位数字)
if
(
parts
[
0
].
matches
(
"\\d{18}"
))
{
result
.
put
(
"idCard"
,
parts
[
0
]);
result
.
put
(
"name"
,
parts
[
1
]);
}
else
if
(
parts
[
1
].
matches
(
"\\d{18}"
))
{
result
.
put
(
"name"
,
parts
[
0
]);
result
.
put
(
"idCard"
,
parts
[
1
]);
}
}
}
else
{
// 尝试提取18位身份证号
int
idCardStart
=
-
1
;
for
(
int
i
=
0
;
i
<=
folderName
.
length
()
-
18
;
i
++)
{
String
sub
=
folderName
.
substring
(
i
,
i
+
18
);
if
(
sub
.
matches
(
"\\d{18}"
))
{
idCardStart
=
i
;
break
;
String
part1
=
parts
[
0
].
trim
();
String
part2
=
parts
[
1
].
trim
();
if
(
part1
.
matches
(
idCardPattern
))
{
result
.
put
(
"idCard"
,
part1
.
toUpperCase
());
// 统一转为大写
result
.
put
(
"name"
,
part2
);
}
else
if
(
part2
.
matches
(
idCardPattern
))
{
result
.
put
(
"name"
,
part1
);
result
.
put
(
"idCard"
,
part2
.
toUpperCase
());
}
}
return
result
;
}
if
(
idCardStart
>=
0
)
{
String
idCard
=
folderName
.
substring
(
idCardStart
,
idCardStart
+
18
);
String
name
=
folderName
.
substring
(
0
,
idCardStart
)
+
folderName
.
substring
(
idCardStart
+
18
);
result
.
put
(
"idCard"
,
idCard
);
result
.
put
(
"name"
,
name
);
// 情况2:无分隔符,直接拼接
// 使用正则表达式查找身份证号
Pattern
pattern
=
Pattern
.
compile
(
idCardPattern
);
Matcher
matcher
=
pattern
.
matcher
(
folderName
);
if
(
matcher
.
find
())
{
String
idCard
=
matcher
.
group
().
toUpperCase
();
int
start
=
matcher
.
start
();
int
end
=
matcher
.
end
();
// 提取姓名部分(身份证前后部分合并)
String
name
;
if
(
start
==
0
)
{
// 身份证在开头
name
=
folderName
.
substring
(
end
).
trim
();
}
else
if
(
end
==
folderName
.
length
())
{
// 身份证在结尾
name
=
folderName
.
substring
(
0
,
start
).
trim
();
}
else
{
// 身份证在中间(理论上不应该出现,但处理一下)
name
=
(
folderName
.
substring
(
0
,
start
)
+
folderName
.
substring
(
end
)).
trim
();
}
result
.
put
(
"idCard"
,
idCard
);
result
.
put
(
"name"
,
name
);
}
return
result
;
...
...
yifu-batch/yifu-batch-biz/src/main/java/com/yifu/cloud/plus/v1/batch/service/impl/TElectronicArchiveDetailServiceImpl.java
View file @
eab12910
...
...
@@ -1361,6 +1361,19 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
return
R
.
failed
(
"电子档案明细不存在"
);
}
List
<
TTaskArchiveRelation
>
relationList
=
relationService
.
list
(
Wrappers
.<
TTaskArchiveRelation
>
lambdaQuery
()
.
eq
(
TTaskArchiveRelation:
:
getArchiveDetailId
,
id
));
if
(
Common
.
isNotNull
(
relationList
))
{
for
(
TTaskArchiveRelation
relation:
relationList
)
{
//查找是否存在任务
TElectronicArchiveTask
task
=
taskService
.
getById
(
relation
.
getTaskId
());
if
(
Common
.
isNotNull
(
task
)
&&
task
.
getStatus
().
equals
(
ArchiveConstants
.
TASK_STATUS_NOT_UPLOADED
))
{
return
R
.
failed
(
"该明细正在被待上传zip文件的任务使用,请先删除任务或者上传对应的zip文件,"
+
"任务编码:"
+
task
.
getTaskCode
());
}
}
}
// 2. 查询该明细下所有的附件(包括可用和不可用的)
List
<
TAttaInfo
>
attachments
=
attaInfoService
.
list
(
Wrappers
.<
TAttaInfo
>
lambdaQuery
()
.
eq
(
TAttaInfo:
:
getDomainId
,
id
)
...
...
@@ -1415,7 +1428,6 @@ public class TElectronicArchiveDetailServiceImpl extends ServiceImpl<TElectronic
}
// 7. 构建返回消息
YifuUser
user
=
SecurityUtils
.
getUser
();
String
resultMsg
=
String
.
format
(
"删除成功。明细:%s-%s-%s,附件删除成功:%d个"
,
detail
.
getDeptNo
(),
detail
.
getEmpName
(),
detail
.
getEmpIdcard
(),
attachmentSuccessCount
);
...
...
yifu-social/yifu-social-biz/src/main/resources/mapper/TSocialFundInfoMapper.xml
View file @
eab12910
...
...
@@ -1269,7 +1269,7 @@
<!-- 社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败 10 审核不通过)、派减(6待审核 7待办理 8办理成功 9 办理失败 11派减办理中 12 派减部分办理失败) -->
and a.social_status in ('0', '1', '2', '3', '4', '6', '7', '9', '11', '12')
<if
test=
"type != null and type = '1'"
>
and
a
.create_name not like '自动化%'
and
d
.create_name not like '自动化%'
</if>
</select>
<!--tSocialFundInfo简单分页查询-->
...
...
@@ -1296,7 +1296,7 @@
and a.fund_status in ('0', '1', '3', '5', '6', '8')
<if
test=
"type != null and type == '1'"
>
and
a
.create_name not like '自动化%'
and
d
.create_name not like '自动化%'
</if>
</select>
<select
id=
"selectSocialFundInfoCountByEmpIdcard"
resultType=
"java.lang.Long"
>
...
...
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