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
ccfdbde4
Commit
ccfdbde4
authored
Nov 21, 2025
by
刘斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 增加部门换成,完善变动日志
parent
b00ed09c
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
95 additions
and
19 deletions
+95
-19
RefreshDeptCacheAspect.java
...ain/java/com/anplus/hr/config/RefreshDeptCacheAspect.java
+1
-0
EmployeeChangeLogTypeConstant.java
...com/anplus/hr/constant/EmployeeChangeLogTypeConstant.java
+23
-3
HrCacheConstants.java
...rc/main/java/com/anplus/hr/constant/HrCacheConstants.java
+6
-1
EmployeeInfoCtrl.java
.../main/java/com/anplus/hr/controller/EmployeeInfoCtrl.java
+3
-2
EmployeeChangeLog.java
...src/main/java/com/anplus/hr/domain/EmployeeChangeLog.java
+11
-1
EmployeeTransferApplyParam.java
...m/anplus/hr/domain/params/EmployeeTransferApplyParam.java
+8
-0
EmployeeChangeLogServ.java
...ain/java/com/anplus/hr/service/EmployeeChangeLogServ.java
+1
-1
EmployeeSysDeptServ.java
.../main/java/com/anplus/hr/service/EmployeeSysDeptServ.java
+8
-0
EmployeeChangeLogServImpl.java
...com/anplus/hr/service/impl/EmployeeChangeLogServImpl.java
+11
-6
EmployeeFlowServImpl.java
...java/com/anplus/hr/service/impl/EmployeeFlowServImpl.java
+14
-5
EmployeeInfoServImpl.java
...java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
+2
-0
EmployeeSysDeptServImpl.java
...a/com/anplus/hr/service/impl/EmployeeSysDeptServImpl.java
+7
-0
No files found.
admin/src/main/java/com/anplus/hr/config/RefreshDeptCacheAspect.java
View file @
ccfdbde4
...
...
@@ -48,6 +48,7 @@ public class RefreshDeptCacheAspect {
// 清除部门缓存
CacheUtils
.
evict
(
HrCacheConstants
.
DEPT_AND_PARENT_NAME
,
deptId
+
""
);
}
CacheUtils
.
clear
(
HrCacheConstants
.
DEPT_AND_CHILD_TREE
);
}
catch
(
Exception
e
)
{
log
.
error
(
"清除部门缓存异常"
,
e
);
...
...
admin/src/main/java/com/anplus/hr/constant/EmployeeChangeLogTypeConstant.java
View file @
ccfdbde4
...
...
@@ -6,13 +6,33 @@ package com.anplus.hr.constant;
*/
public
interface
EmployeeChangeLogTypeConstant
{
/**
* 入职
*/
String
Entry
=
"1"
;
/**
* 离职
*/
String
Resign
=
"2"
;
String
Transfer
=
"3"
;
/**
* 调配-转入
*/
String
TransferIn
=
"3"
;
String
Regularization
=
"4"
;
/**
* 调配-转出
*/
String
TransferOut
=
"4"
;
String
RenewalContract
=
"5"
;
/**
* 转正
*/
String
Regularization
=
"5"
;
/**
* 续签
*/
String
RenewalContract
=
"6"
;
}
admin/src/main/java/com/anplus/hr/constant/HrCacheConstants.java
View file @
ccfdbde4
...
...
@@ -7,7 +7,12 @@ package com.anplus.hr.constant;
public
interface
HrCacheConstants
{
/**
* 部门
及以下权限
* 部门
祖级名称计划
*/
String
DEPT_AND_PARENT_NAME
=
"dept_and_parent_name#30d"
;
/**
* 部门树
*/
String
DEPT_AND_CHILD_TREE
=
"dept_and_child_tree#30d"
;
}
admin/src/main/java/com/anplus/hr/controller/EmployeeInfoCtrl.java
View file @
ccfdbde4
...
...
@@ -9,6 +9,7 @@ import com.anplus.hr.domain.params.*;
import
com.anplus.hr.domain.vo.EmployeeInfoImportVo
;
import
com.anplus.hr.domain.vo.EmployeeInfoVo
;
import
com.anplus.hr.service.EmployeeInfoServ
;
import
com.anplus.hr.service.EmployeeSysDeptServ
;
import
jakarta.annotation.Resource
;
import
jakarta.validation.constraints.Min
;
import
jakarta.validation.constraints.NotEmpty
;
...
...
@@ -46,7 +47,7 @@ public class EmployeeInfoCtrl {
@Resource
private
EmployeeInfoServ
employeeInfoServ
;
@Resource
private
SysDeptServ
deptService
;
private
EmployeeSysDeptServ
employeeSysDeptServ
;
/**
* 查询员工信息列表
...
...
@@ -225,6 +226,6 @@ public class EmployeeInfoCtrl {
@SaCheckPermission
(
"employee:info:export"
)
@GetMapping
(
"/deptTree"
)
public
MultiResponse
<
SysDeptDTO
>
deptTree
(
SysDeptParam
dept
)
{
return
MultiResponse
.
of
(
deptService
.
selectDeptTreeList
(
dept
));
return
MultiResponse
.
of
(
employeeSysDeptServ
.
selectDeptTreeForEmployee
(
dept
));
}
}
\ No newline at end of file
admin/src/main/java/com/anplus/hr/domain/EmployeeChangeLog.java
View file @
ccfdbde4
...
...
@@ -32,7 +32,17 @@ public class EmployeeChangeLog extends TenantModel {
private
String
type
;
/**
* 板块
* 申请编号
*/
private
String
applyCode
;
/**
* 板块ID
*/
private
Long
plateId
;
/**
* 板块名称
*/
private
String
plate
;
...
...
admin/src/main/java/com/anplus/hr/domain/params/EmployeeTransferApplyParam.java
View file @
ccfdbde4
...
...
@@ -4,6 +4,8 @@ import jakarta.validation.constraints.NotBlank;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
import
java.time.LocalDate
;
/**
* @author 刘斌
* @date 2025/10/31 17:07
...
...
@@ -43,5 +45,11 @@ public class EmployeeTransferApplyParam {
@NotNull
(
message
=
"部门id不能为空"
)
private
Long
deptId
;
/**
* 调配时间
*/
@NotNull
(
message
=
"调配时间不能为空"
)
private
LocalDate
transferDate
;
private
String
remark
;
}
admin/src/main/java/com/anplus/hr/service/EmployeeChangeLogServ.java
View file @
ccfdbde4
...
...
@@ -51,7 +51,7 @@ public interface EmployeeChangeLogServ extends IService<EmployeeChangeLog> {
* @param changeType 变更类型
* @return 是否新增成功
*/
Boolean
insertByEmployee
(
EmployeeInfo
employeeInfo
,
String
changeType
,
LocalDate
changeDat
e
);
Boolean
insertByEmployee
(
EmployeeInfo
employeeInfo
,
LocalDate
changeDate
,
String
changeTyp
e
);
/**
* 新增员工异动记录
...
...
admin/src/main/java/com/anplus/hr/service/EmployeeSysDeptServ.java
View file @
ccfdbde4
package
com
.
anplus
.
hr
.
service
;
import
top.binfast.app.biz.sysapi.bean.params.sysDept.SysDeptParam
;
import
top.binfast.app.biz.sysapi.bean.vo.sysDept.SysDeptDTO
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -16,6 +19,11 @@ public interface EmployeeSysDeptServ {
*/
List
<
String
>
selectDeptNameAncestorsById
(
Long
deptId
);
/**
* 查询部门树结构
*/
List
<
SysDeptDTO
>
selectDeptTreeForEmployee
(
SysDeptParam
param
);
Map
<
String
,
Long
>
selectJoinDeptNames
();
/**
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeChangeLogServImpl.java
View file @
ccfdbde4
...
...
@@ -21,8 +21,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
top.binfast.app.biz.sysapi.bean.
model.auth.SysDept
;
import
top.binfast.app.biz.sys
api.dao.auth.SysDeptMapper
;
import
top.binfast.app.biz.sysapi.bean.
vo.sysDept.SysDeptDTO
;
import
top.binfast.app.biz.sys
biz.service.SysDeptServ
;
import
top.binfast.common.core.util.MapstructUtils
;
import
top.binfast.common.mybatis.util.QueryUtil
;
...
...
@@ -40,7 +40,7 @@ import java.util.List;
public
class
EmployeeChangeLogServImpl
extends
ServiceImpl
<
EmployeeChangeLogMapper
,
EmployeeChangeLog
>
implements
EmployeeChangeLogServ
{
private
final
EmployeeChangeLogMapper
employeeChangeLogMapper
;
private
final
SysDept
Mapper
sysDeptMapper
;
private
final
SysDept
Serv
sysDeptServ
;
private
final
EmployeeSysDeptServ
employeeSysDeptServ
;
/**
...
...
@@ -104,17 +104,20 @@ public class EmployeeChangeLogServImpl extends ServiceImpl<EmployeeChangeLogMapp
}
@Override
public
Boolean
insertByEmployee
(
EmployeeInfo
employeeInfo
,
String
changeType
,
LocalDate
changeDat
e
)
{
SysDept
childDept
=
sysDeptMapper
.
selec
tById
(
employeeInfo
.
getDeptId
());
public
Boolean
insertByEmployee
(
EmployeeInfo
employeeInfo
,
LocalDate
changeDate
,
String
changeTyp
e
)
{
SysDept
DTO
childDept
=
sysDeptServ
.
selectDep
tById
(
employeeInfo
.
getDeptId
());
List
<
String
>
split
=
StrUtil
.
splitTrim
(
childDept
.
getNodePath
(),
'/'
);
if
(
split
.
size
()
<
2
)
{
return
true
;
}
Long
parentDeptId
=
split
.
stream
().
map
(
Convert:
:
toLong
).
filter
(
t
->
t
>
0
).
findFirst
().
get
();
SysDept
parentDept
=
sysDeptMapper
.
selectById
(
parentDeptId
);
SysDeptDTO
parentDept
=
sysDeptServ
.
selectDeptById
(
parentDeptId
);
// List<EmployeeChangeLog> changeLogList = new ArrayList<>();
// for (String changeType : changeTypes) {
EmployeeChangeLog
changeLog
=
new
EmployeeChangeLog
();
changeLog
.
setEmployeeId
(
employeeInfo
.
getId
());
changeLog
.
setDeptId
(
employeeInfo
.
getDeptId
());
changeLog
.
setPlateId
(
parentDeptId
);
changeLog
.
setPlate
(
parentDept
.
getName
());
changeLog
.
setType
(
changeType
);
changeLog
.
setChangeDate
(
changeDate
!=
null
?
changeDate
:
LocalDate
.
now
());
...
...
@@ -131,6 +134,8 @@ public class EmployeeChangeLogServImpl extends ServiceImpl<EmployeeChangeLogMapp
changeLog
.
setResignYearsOfServiceType
(
hrResignYearsOfServiceTypeEnum
.
getCode
());
}
}
// changeLogList.add(changeLog);
// }
return
this
.
save
(
changeLog
);
}
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeFlowServImpl.java
View file @
ccfdbde4
...
...
@@ -45,6 +45,7 @@ import top.binfast.daemon.workflow.domain.event.ProcessEvent;
import
top.binfast.daemon.workflow.domain.event.ProcessTaskEvent
;
import
top.binfast.daemon.workflow.service.WorkflowService
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -298,7 +299,7 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
employeeInfo
.
setEntryDate
(
LocalDateTimeUtil
.
parseDate
(
auditLog
.
getAfterVal
(),
DatePattern
.
NORM_DATE_PATTERN
));
}
}
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
EmployeeChangeLogTypeConstant
.
Entry
,
employeeInfo
.
getEntryDate
()
);
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
employeeInfo
.
getEntryDate
(),
EmployeeChangeLogTypeConstant
.
Entry
);
break
;
case
HrFlowTypeConstant
.
REGULARIZATION_CODE
:
// 转正流程结束
...
...
@@ -352,7 +353,7 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
break
;
}
}
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
EmployeeChangeLogTypeConstant
.
Regularization
,
employeeInfo
.
getRegularizationDate
()
);
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
employeeInfo
.
getRegularizationDate
(),
EmployeeChangeLogTypeConstant
.
Regularization
);
break
;
case
HrFlowTypeConstant
.
RESIGN_CODE
:
// 离职流程结束
...
...
@@ -376,11 +377,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
break
;
}
}
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
EmployeeChangeLogTypeConstant
.
Resign
,
employeeInfo
.
getResignationDate
()
);
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
employeeInfo
.
getResignationDate
(),
EmployeeChangeLogTypeConstant
.
Resign
);
break
;
case
HrFlowTypeConstant
.
TRANSFER_CODE
:
// 调配流程结束
EmployeeInfo
oldEmployeeInfo
=
new
EmployeeInfo
();
oldEmployeeInfo
.
setId
(
employeeInfo
.
getId
());
oldEmployeeInfo
.
setDeptId
(
employeeInfo
.
getDeptId
());
employeeInfo
.
setTransferApplyStatus
(
HrFlowEnum
.
FINISH
.
getStatus
());
LocalDate
transferDate
=
null
;
for
(
SysAuditLog
auditLog
:
auditLogs
)
{
switch
(
auditLog
.
getAuditField
())
{
case
"plate"
:
...
...
@@ -398,11 +403,15 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
case
"deptId"
:
employeeInfo
.
setDeptId
(
Convert
.
toLong
(
auditLog
.
getAfterVal
()));
break
;
case
"transferDate"
:
transferDate
=
LocalDateTimeUtil
.
parseDate
(
auditLog
.
getAfterVal
(),
DatePattern
.
NORM_DATE_PATTERN
);
break
;
default
:
break
;
}
}
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
EmployeeChangeLogTypeConstant
.
Transfer
,
null
);
employeeChangeLogServ
.
insertByEmployee
(
oldEmployeeInfo
,
transferDate
,
EmployeeChangeLogTypeConstant
.
TransferOut
);
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
transferDate
,
EmployeeChangeLogTypeConstant
.
TransferIn
);
break
;
case
HrFlowTypeConstant
.
RENEWAL_CONTRACT
:
// 续签流程结束
...
...
@@ -431,7 +440,7 @@ public class EmployeeFlowServImpl extends ServiceImpl<EmployeeFlowMapper, Employ
break
;
}
}
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
EmployeeChangeLogTypeConstant
.
RenewalContract
,
employeeInfo
.
getContractStartDate
()
);
employeeChangeLogServ
.
insertByEmployee
(
employeeInfo
,
employeeInfo
.
getContractStartDate
(),
EmployeeChangeLogTypeConstant
.
RenewalContract
);
break
;
default
:
{
// 其他流程结束
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeInfoServImpl.java
View file @
ccfdbde4
...
...
@@ -509,6 +509,8 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
"三级部门"
,
param
.
getThirdLevelDepartment
(),
list
);
employeeAuditLogServ
.
initAuditLog
(
"调职申请"
,
"deptId"
,
"部门序号"
,
Convert
.
toStr
(
param
.
getDeptId
()),
list
);
employeeAuditLogServ
.
initAuditLog
(
"调职申请"
,
"transferDate"
,
"调配时间"
,
Convert
.
toStr
(
param
.
getTransferDate
()),
list
);
employeeAuditLogServ
.
saveAuditLogs
(
list
);
String
logIds
=
LambdaUtil
.
join
(
list
,
(
item
)
->
item
.
getId
()
+
StrUtil
.
EMPTY
,
StrUtil
.
COMMA
);
...
...
admin/src/main/java/com/anplus/hr/service/impl/EmployeeSysDeptServImpl.java
View file @
ccfdbde4
...
...
@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
top.binfast.app.biz.sysapi.bean.model.auth.SysDept
;
import
top.binfast.app.biz.sysapi.bean.params.sysDept.SysDeptParam
;
import
top.binfast.app.biz.sysapi.bean.vo.sysDept.SysDeptDTO
;
import
top.binfast.app.biz.sysapi.dao.auth.SysDeptMapper
;
import
top.binfast.app.biz.sysbiz.service.SysDeptServ
;
...
...
@@ -45,6 +46,12 @@ public class EmployeeSysDeptServImpl implements EmployeeSysDeptServ {
return
LambdaUtil
.
mapToList
(
deptNameList
,
SysDept:
:
getName
);
}
@Cacheable
(
cacheNames
=
HrCacheConstants
.
DEPT_AND_CHILD_TREE
,
key
=
"'"
+
HrCacheConstants
.
DEPT_AND_CHILD_TREE
+
"'"
)
@Override
public
List
<
SysDeptDTO
>
selectDeptTreeForEmployee
(
SysDeptParam
param
)
{
return
sysDeptServ
.
selectDeptTreeList
(
param
);
}
@Override
public
Map
<
String
,
Long
>
selectJoinDeptNames
()
{
Map
<
String
,
Long
>
result
=
new
HashMap
<>();
...
...
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