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
a55e0959
Commit
a55e0959
authored
Dec 05, 2025
by
刘斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 增加家庭成员3
parent
e0fee223
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
149 additions
and
32 deletions
+149
-32
EmployeeInfoParam.java
...n/java/com/anplus/hr/domain/params/EmployeeInfoParam.java
+6
-0
EmployeeFamilyMembersVo.java
...java/com/anplus/hr/domain/vo/EmployeeFamilyMembersVo.java
+7
-2
EmployeeFamilyMembersMapper.java
...ava/com/anplus/hr/mapper/EmployeeFamilyMembersMapper.java
+5
-0
EmployeeInfoResignServImpl.java
...om/anplus/hr/service/impl/EmployeeInfoResignServImpl.java
+4
-8
EmployeeInfoServImpl.java
...java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
+30
-22
EmployeeFamilyMembersCmdExe.java
.../hr/service/impl/command/EmployeeFamilyMembersCmdExe.java
+97
-0
No files found.
admin/src/main/java/com/anplus/hr/domain/params/EmployeeInfoParam.java
View file @
a55e0959
...
...
@@ -15,6 +15,7 @@ import top.binfast.common.excel.annotion.ExcelDictFormat;
import
top.binfast.common.excel.converters.ExcelDictConvert
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* 员工信息业务对象 employee_info
...
...
@@ -554,6 +555,11 @@ public class EmployeeInfoParam {
*/
private
String
antaiCommunityInfo
;
/**
* 家庭成员
*/
private
List
<
EmployeeFamilyMembersParam
>
familyMembers
;
/**
* 离职类型
*/
...
...
admin/src/main/java/com/anplus/hr/domain/vo/EmployeeFamilyMembersVo.java
View file @
a55e0959
package
com
.
anplus
.
hr
.
domain
.
vo
;
import
com.anplus.hr.constant.HrConstant
;
import
com.anplus.hr.domain.EmployeeFamilyMembers
;
import
cn.idev.excel.annotation.ExcelIgnoreUnannotated
;
import
cn.idev.excel.annotation.ExcelProperty
;
import
cn.idev.excel.annotation.ExcelIgnore
;
import
org.dromara.core.trans.anno.Trans
;
import
org.dromara.core.trans.constant.TransType
;
import
org.dromara.core.trans.vo.TransPojo
;
import
top.binfast.common.excel.annotion.ExcelDictFormat
;
import
top.binfast.common.excel.converters.ExcelDictConvert
;
import
io.github.linpeilie.annotations.AutoMapper
;
...
...
@@ -23,7 +27,7 @@ import java.io.Serializable;
@Data
@ExcelIgnoreUnannotated
@AutoMapper
(
target
=
EmployeeFamilyMembers
.
class
)
public
class
EmployeeFamilyMembersVo
implements
Serializable
{
public
class
EmployeeFamilyMembersVo
implements
TransPojo
,
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -73,7 +77,8 @@ public class EmployeeFamilyMembersVo implements Serializable {
* 是否为紧急联系人
*/
@ExcelProperty
(
value
=
"是否为紧急联系人"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
dictType
=
"SYS_YES_NO"
)
@ExcelDictFormat
(
dictType
=
HrConstant
.
SYS_YES_NO
)
@Trans
(
type
=
TransType
.
DICTIONARY
,
key
=
HrConstant
.
SYS_YES_NO
)
private
String
emergencyFlag
;
...
...
admin/src/main/java/com/anplus/hr/mapper/EmployeeFamilyMembersMapper.java
View file @
a55e0959
...
...
@@ -21,4 +21,9 @@ public interface EmployeeFamilyMembersMapper extends BinBaseMapper<EmployeeFamil
.
eq
(
EmployeeFamilyMembers:
:
getEmployeeId
,
employeeId
));
}
default
int
deleteByEmployeeId
(
Long
employeeId
)
{
return
delete
(
new
LambdaUpdateWrapper
<
EmployeeFamilyMembers
>()
.
eq
(
EmployeeFamilyMembers:
:
getEmployeeId
,
employeeId
));
}
}
admin/src/main/java/com/anplus/hr/service/impl/EmployeeInfoResignServImpl.java
View file @
a55e0959
...
...
@@ -8,15 +8,14 @@ import com.anplus.hr.domain.EmployeeFamilyMembers;
import
com.anplus.hr.domain.EmployeeInfo
;
import
com.anplus.hr.domain.params.EmployeeInfoListParam
;
import
com.anplus.hr.domain.params.EmployeeInfoParam
;
import
com.anplus.hr.domain.vo.EmployeeFamilyMembersVo
;
import
com.anplus.hr.domain.vo.EmployeeInfoResignImportVo
;
import
com.anplus.hr.domain.vo.EmployeeInfoResignVo
;
import
com.anplus.hr.domain.vo.EmployeeInfoVo
;
import
com.anplus.hr.mapper.EmployeeFamilyMembersMapper
;
import
com.anplus.hr.mapper.EmployeeInfoMapper
;
import
com.anplus.hr.service.EmployeeInfoResignServ
;
import
com.anplus.hr.service.EmployeeInfoServ
;
import
com.anplus.hr.service.EmployeeSysDeptServ
;
import
com.anplus.hr.service.impl.command.EmployeeFamilyMembersCmdExe
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -52,7 +51,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
private
final
EmployeeInfoServ
employeeInfoServ
;
private
final
TransService
transService
;
private
final
SysOssMapper
sysOssMapper
;
private
final
EmployeeFamilyMembers
Mapper
employeeFamilyMembersMapper
;
private
final
EmployeeFamilyMembers
CmdExe
familyMembersCmdExe
;
private
final
EmployeeAsyncService
employeeAsyncService
;
private
final
EmployeeSysDeptServ
employeeSysDeptServ
;
...
...
@@ -171,7 +170,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
}
}
}
employeeFamilyMembersMapper
.
insert
(
familyMembersList
);
familyMembersCmdExe
.
insertBatch
(
familyMembersList
);
}
}
StringBuilder
message
;
...
...
@@ -202,10 +201,7 @@ public class EmployeeInfoResignServImpl extends ServiceImpl<EmployeeInfoMapper,
employeeAsyncService
.
matchingUrl
(
employeeInfoVo
);
}
}
List
<
EmployeeFamilyMembers
>
familyMembers
=
employeeFamilyMembersMapper
.
selectByEmployeeId
(
employeeInfo
.
getId
());
if
(
CollUtil
.
isNotEmpty
(
familyMembers
))
{
employeeInfoVo
.
setFamilyMembers
(
MapstructUtils
.
convert
(
familyMembers
,
EmployeeFamilyMembersVo
.
class
));
}
familyMembersCmdExe
.
setFamilyMembersData
(
employeeInfoVo
);
transService
.
transOne
(
employeeInfoVo
);
return
employeeInfoVo
;
}
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
View file @
a55e0959
...
...
@@ -17,13 +17,16 @@ import com.anplus.hr.domain.EmployeeFamilyMembers;
import
com.anplus.hr.domain.EmployeeFlow
;
import
com.anplus.hr.domain.EmployeeInfo
;
import
com.anplus.hr.domain.params.*
;
import
com.anplus.hr.domain.vo.*
;
import
com.anplus.hr.mapper.EmployeeFamilyMembersMapper
;
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.mapper.EmployeeInfoMapper
;
import
com.anplus.hr.service.EmployeeAuditLogServ
;
import
com.anplus.hr.service.EmployeeFlowServ
;
import
com.anplus.hr.service.EmployeeInfoServ
;
import
com.anplus.hr.service.EmployeeSysDeptServ
;
import
com.anplus.hr.service.impl.command.EmployeeFamilyMembersCmdExe
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
...
...
@@ -35,6 +38,7 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.dromara.trans.service.impl.TransService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
top.binfast.app.biz.sysapi.bean.model.oss.SysOss
;
import
top.binfast.app.biz.sysapi.bean.vo.sysOss.SysOssVo
;
...
...
@@ -78,7 +82,7 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
private
final
OssService
ossService
;
private
final
SysOssServ
sysOssServ
;
private
final
SysOssMapper
sysOssMapper
;
private
final
EmployeeFamilyMembers
Mapper
employeeFamilyMembersMapper
;
private
final
EmployeeFamilyMembers
CmdExe
familyMembersCmdExe
;
private
final
EmployeeAsyncService
employeeAsyncService
;
/**
...
...
@@ -319,7 +323,7 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
}
}
}
employeeFamilyMembersMapper
.
insert
(
familyMembersList
);
familyMembersCmdExe
.
insertBatch
(
familyMembersList
);
}
// EmployeeDeptCheckAndSaveParam checkAndSaveParam =
// new EmployeeDeptCheckAndSaveParam(deptNameGroups, SecurityUtils.getCurrentUserId(), SecurityUtils.getTenantId());
...
...
@@ -392,7 +396,9 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
@Override
public
EmployeeInfoVo
queryById
(
Long
id
)
{
EmployeeInfo
employeeInfo
=
employeeInfoMapper
.
selectById
(
id
);
return
MapstructUtils
.
convert
(
employeeInfo
,
EmployeeInfoVo
.
class
);
EmployeeInfoVo
employeeInfoVo
=
MapstructUtils
.
convert
(
employeeInfo
,
EmployeeInfoVo
.
class
);
familyMembersCmdExe
.
setFamilyMembersData
(
employeeInfoVo
);
return
employeeInfoVo
;
}
/**
...
...
@@ -412,10 +418,7 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
employeeAsyncService
.
matchingUrl
(
employeeInfoVo
);
}
}
List
<
EmployeeFamilyMembers
>
familyMembers
=
employeeFamilyMembersMapper
.
selectByEmployeeId
(
employeeInfo
.
getId
());
if
(
CollUtil
.
isNotEmpty
(
familyMembers
))
{
employeeInfoVo
.
setFamilyMembers
(
MapstructUtils
.
convert
(
familyMembers
,
EmployeeFamilyMembersVo
.
class
));
}
familyMembersCmdExe
.
setFamilyMembersData
(
employeeInfoVo
);
transService
.
transOne
(
employeeInfoVo
);
return
employeeInfoVo
;
}
...
...
@@ -442,6 +445,7 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
* @return 是否新增成功
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
insertByParam
(
EmployeeInfoParam
param
)
{
EmployeeInfo
employeeInfo
=
MapstructUtils
.
convert
(
param
,
EmployeeInfo
.
class
);
initDefaultEmployeeInfo
(
employeeInfo
);
...
...
@@ -454,7 +458,12 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
// employeeDeptServ.checkAndSaveDept(checkAndSaveParam);
employeeInfo
.
setEntryApplyStatus
(
HrFlowEnum
.
DRAFT
.
getStatus
());
employeeInfo
.
setStatus
(
HrStatusEnum
.
DRAFT
.
getStatus
());
return
this
.
save
(
employeeInfo
);
familyMembersCmdExe
.
updateEmergencyInfo
(
param
.
getFamilyMembers
(),
employeeInfo
);
boolean
flag
=
this
.
save
(
employeeInfo
);
if
(
flag
)
{
familyMembersCmdExe
.
insertByEmployee
(
param
.
getFamilyMembers
(),
employeeInfo
);
}
return
flag
;
}
private
void
initDefaultEmployeeInfo
(
EmployeeInfo
employeeInfo
)
{
...
...
@@ -473,10 +482,16 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
* @return 是否修改成功
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
updateByParam
(
EmployeeInfoParam
param
)
{
EmployeeInfo
employeeInfo
=
MapstructUtils
.
convert
(
param
,
EmployeeInfo
.
class
);
EmployeeInfoCalcUtils
.
calcYearsOfService
(
employeeInfo
);
return
this
.
updateById
(
employeeInfo
);
familyMembersCmdExe
.
updateEmergencyInfo
(
param
.
getFamilyMembers
(),
employeeInfo
);
boolean
flag
=
this
.
updateById
(
employeeInfo
);
if
(
flag
)
{
familyMembersCmdExe
.
updateByEmployee
(
param
.
getFamilyMembers
(),
employeeInfo
);
}
return
flag
;
}
/**
...
...
@@ -486,24 +501,17 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
* @return 是否插入成功
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
insertBaseInfoForH5
(
EmployeeBaseInfoParam
param
)
{
EmployeeInfo
employeeInfo
=
MapstructUtils
.
convert
(
param
,
EmployeeInfo
.
class
);
// 更新员工年龄组
EmployeeInfoCalcUtils
.
calcAgeGroup
(
employeeInfo
);
employeeInfo
.
setEntryApplyStatus
(
HrFlowEnum
.
DRAFT
.
getStatus
());
employeeInfo
.
setStatus
(
HrStatusEnum
.
DRAFT
.
getStatus
());
familyMembersCmdExe
.
updateEmergencyInfo
(
param
.
getFamilyMembers
(),
employeeInfo
);
boolean
flag
=
this
.
save
(
employeeInfo
);
if
(
flag
&&
CollUtil
.
isNotEmpty
(
param
.
getFamilyMembers
()))
{
List
<
EmployeeFamilyMembersParam
>
familyMembers
=
param
.
getFamilyMembers
();
for
(
EmployeeFamilyMembersParam
familyMember
:
familyMembers
)
{
familyMember
.
setEmployeeId
(
employeeInfo
.
getId
());
if
(
HrEmployeeConstants
.
YES
.
equals
(
familyMember
.
getEmergencyFlag
()))
{
employeeInfo
.
setEmergencyContact
(
familyMember
.
getName
());
employeeInfo
.
setEmergencyContactPhone
(
familyMember
.
getContact
());
}
}
List
<
EmployeeFamilyMembers
>
employeeFamilyMembers
=
MapstructUtils
.
convert
(
familyMembers
,
EmployeeFamilyMembers
.
class
);
employeeFamilyMembersMapper
.
insert
(
employeeFamilyMembers
);
if
(
flag
)
{
familyMembersCmdExe
.
insertByEmployee
(
param
.
getFamilyMembers
(),
employeeInfo
);
}
return
flag
;
}
...
...
admin/src/main/java/com/anplus/hr/service/impl/command/EmployeeFamilyMembersCmdExe.java
0 → 100644
View file @
a55e0959
package
com
.
anplus
.
hr
.
service
.
impl
.
command
;
import
cn.hutool.core.collection.CollUtil
;
import
com.anplus.hr.constant.HrEmployeeConstants
;
import
com.anplus.hr.domain.EmployeeFamilyMembers
;
import
com.anplus.hr.domain.EmployeeInfo
;
import
com.anplus.hr.domain.params.EmployeeFamilyMembersParam
;
import
com.anplus.hr.domain.vo.EmployeeFamilyMembersVo
;
import
com.anplus.hr.domain.vo.EmployeeInfoVo
;
import
com.anplus.hr.mapper.EmployeeFamilyMembersMapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.extension.toolkit.SqlHelper
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.trans.service.impl.TransService
;
import
org.springframework.stereotype.Component
;
import
top.binfast.common.core.util.MapstructUtils
;
import
java.util.List
;
/**
* @author 刘斌
* @date 2025/12/4 16:41
*/
@RequiredArgsConstructor
@Component
public
class
EmployeeFamilyMembersCmdExe
{
private
final
EmployeeFamilyMembersMapper
employeeFamilyMembersMapper
;
private
final
TransService
transService
;
/**
* 更新紧急联系人等
*/
public
void
updateEmergencyInfo
(
List
<
EmployeeFamilyMembersParam
>
familyMembers
,
EmployeeInfo
employeeInfo
)
{
if
(
CollUtil
.
isEmpty
(
familyMembers
))
{
return
;
}
for
(
EmployeeFamilyMembersParam
familyMember
:
familyMembers
)
{
if
(
HrEmployeeConstants
.
YES
.
equals
(
familyMember
.
getEmergencyFlag
()))
{
employeeInfo
.
setEmergencyContact
(
familyMember
.
getName
());
employeeInfo
.
setEmergencyContactPhone
(
familyMember
.
getContact
());
}
}
}
/**
* 批量插入
*/
public
boolean
insertByEmployee
(
List
<
EmployeeFamilyMembersParam
>
familyMembers
,
EmployeeInfo
employeeInfo
)
{
if
(
CollUtil
.
isEmpty
(
familyMembers
))
{
return
false
;
}
Long
employeeId
=
employeeInfo
.
getId
();
Long
tenantId
=
employeeInfo
.
getTenantId
();
List
<
EmployeeFamilyMembers
>
employeeFamilyMembers
=
MapstructUtils
.
convert
(
familyMembers
,
EmployeeFamilyMembers
.
class
);
for
(
EmployeeFamilyMembers
employeeFamilyMember
:
employeeFamilyMembers
)
{
employeeFamilyMember
.
setEmployeeId
(
employeeId
);
employeeFamilyMember
.
setTenantId
(
tenantId
);
}
return
SqlHelper
.
retBool
(
employeeFamilyMembersMapper
.
insertOrUpdate
(
employeeFamilyMembers
));
}
/**
* 批量更新
*/
public
boolean
updateByEmployee
(
List
<
EmployeeFamilyMembersParam
>
familyMembers
,
EmployeeInfo
employeeInfo
)
{
if
(
CollUtil
.
isEmpty
(
familyMembers
))
{
return
false
;
}
Long
employeeId
=
employeeInfo
.
getId
();
boolean
exists
=
employeeFamilyMembersMapper
.
exists
(
new
LambdaUpdateWrapper
<
EmployeeFamilyMembers
>()
.
eq
(
EmployeeFamilyMembers:
:
getEmployeeId
,
employeeId
));
if
(
exists
)
{
employeeFamilyMembersMapper
.
deleteByEmployeeId
(
employeeId
);
}
return
insertByEmployee
(
familyMembers
,
employeeInfo
);
}
/**
* 根据员工id赋值家庭成员信息
*/
public
void
setFamilyMembersData
(
EmployeeInfoVo
employeeInfoVo
)
{
List
<
EmployeeFamilyMembers
>
familyMembers
=
employeeFamilyMembersMapper
.
selectByEmployeeId
(
employeeInfoVo
.
getId
());
if
(
CollUtil
.
isNotEmpty
(
familyMembers
))
{
List
<
EmployeeFamilyMembersVo
>
familyMembersVos
=
MapstructUtils
.
convert
(
familyMembers
,
EmployeeFamilyMembersVo
.
class
);
transService
.
transBatch
(
familyMembersVos
);
employeeInfoVo
.
setFamilyMembers
(
familyMembersVos
);
}
}
/**
* 批量插入导入数据
*/
public
void
insertBatch
(
List
<
EmployeeFamilyMembers
>
list
)
{
employeeFamilyMembersMapper
.
insert
(
list
);
}
}
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