Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
dd107ff9
Commit
dd107ff9
authored
Mar 26, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改同步人员接口
parent
0a2b8d27
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
76 additions
and
83 deletions
+76
-83
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+1
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
...rtals/xhx/module/staff/service/impl/StaffServiceImpl.java
+62
-73
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java
...ava/com/mortals/xhx/module/staff/web/StaffController.java
+13
-5
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
dd107ff9
...
@@ -100,12 +100,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -100,12 +100,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
}
}
}
else
{
}
else
{
//todo 设备直连
//todo 设备直连
// deptService.syncDeptByDevice(null);
deptService
.
syncDeptByDevice
(
null
);
staffService
.
syncPersonsByDevices
(
null
);
staffService
.
syncPersonsByDevices
(
null
);
}
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
View file @
dd107ff9
...
@@ -505,6 +505,11 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
...
@@ -505,6 +505,11 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
public
Rest
<
Void
>
syncPersonsByDevices
(
Context
context
)
{
public
Rest
<
Void
>
syncPersonsByDevices
(
Context
context
)
{
log
.
info
(
"同步人员!"
);
log
.
info
(
"同步人员!"
);
//todo 门禁获取人员
//todo 门禁获取人员
StaffQuery
staffQuery
=
new
StaffQuery
();
staffQuery
.
setSource
(
1
);
staffQuery
.
setStatusNotList
(
Arrays
.
asList
(
StaffSatusEnum
.
离职
.
getValue
()));
Map
<
String
,
StaffEntity
>
staffCollect
=
this
.
find
(
staffQuery
).
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getWorkNum
(),
y
->
y
,
(
o
,
n
)
->
n
));
List
<
DoorEntity
>
doorEntities
=
doorService
.
find
(
new
DoorQuery
());
List
<
DoorEntity
>
doorEntities
=
doorService
.
find
(
new
DoorQuery
());
for
(
DoorEntity
doorEntity
:
doorEntities
)
{
for
(
DoorEntity
doorEntity
:
doorEntities
)
{
StaffReq
staffReq
=
new
StaffReq
();
StaffReq
staffReq
=
new
StaffReq
();
...
@@ -519,14 +524,7 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
...
@@ -519,14 +524,7 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
searchReq
.
setPageSize
(
size
);
searchReq
.
setPageSize
(
size
);
Rest
<
UserSearchInfo
>
rest
=
hikStaffService
.
getPersonList
(
searchReq
,
doorEntity
);
Rest
<
UserSearchInfo
>
rest
=
hikStaffService
.
getPersonList
(
searchReq
,
doorEntity
);
if
(
rest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
if
(
rest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
//做差集 更新本地用户为离职员工
//做差集 更新本地用户为离职员工
StaffQuery
staffQuery
=
new
StaffQuery
();
staffQuery
.
setSource
(
1
);
staffQuery
.
setStatusNotList
(
Arrays
.
asList
(
StaffSatusEnum
.
离职
.
getValue
()));
Map
<
String
,
StaffEntity
>
staffCollect
=
this
.
find
(
staffQuery
).
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getWorkNum
(),
y
->
y
,
(
o
,
n
)
->
n
));
UserInfoSearch
userInfoSearch
=
rest
.
getData
().
getUserInfoSearch
();
UserInfoSearch
userInfoSearch
=
rest
.
getData
().
getUserInfoSearch
();
List
<
UserInfoItem
>
userInfoList
=
userInfoSearch
.
getUserInfo
();
List
<
UserInfoItem
>
userInfoList
=
userInfoSearch
.
getUserInfo
();
for
(
UserInfoItem
userInfoItem
:
userInfoList
)
{
for
(
UserInfoItem
userInfoItem
:
userInfoList
)
{
...
@@ -539,96 +537,87 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
...
@@ -539,96 +537,87 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
staffCollect
.
remove
(
userInfoItem
.
getEmployeeNo
());
staffCollect
.
remove
(
userInfoItem
.
getEmployeeNo
());
}
}
StaffEntity
staffEntity
=
this
.
getExtCache
(
StrUtil
.
padPre
(
userInfoItem
.
getEmployeeNo
(),
8
,
"0"
));
StaffEntity
staffEntity
=
this
.
getExtCache
(
StrUtil
.
padPre
(
userInfoItem
.
getEmployeeNo
(),
8
,
"0"
));
DeptEntity
deptEntity
=
deptService
.
selectOne
(
new
DeptQuery
().
deptCode
(
userInfoItem
.
getBelongGroup
()));
//DeptEntity deptEntity = deptService.selectOne(new DeptQuery().deptCode(userInfoItem.getBelongGroup()));
//设置到默认部门
//判断本地数据是否为空
//判断本地数据是否为空
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
//新增员工信息
//新增员工信息
staffEntity
=
new
StaffEntity
();
staffEntity
=
new
StaffEntity
();
staffEntity
.
initAttrValue
();
staffEntity
.
initAttrValue
();
DeptQuery
deptQuery
=
new
DeptQuery
();
deptQuery
.
setParentId
(
0L
);
DeptEntity
deptEntity
=
deptService
.
selectOne
(
deptQuery
);
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
staffEntity
.
setDeptName
(
deptEntity
.
getDeptName
());
}
}
staffEntity
.
setName
(
userInfoItem
.
getName
());
staffEntity
.
setName
(
userInfoItem
.
getName
());
staffEntity
.
setDeptName
(
userInfoItem
.
getBelongGroup
());
staffEntity
.
setGender
(
"male"
.
equals
(
userInfoItem
.
getGender
())
?
1
:
2
);
staffEntity
.
setGender
(
"male"
.
equals
(
userInfoItem
.
getGender
())
?
1
:
2
);
staffEntity
.
setWorkNum
(
userInfoItem
.
getEmployeeNo
());
staffEntity
.
setWorkNum
(
userInfoItem
.
getEmployeeNo
());
staffEntity
.
setCreateUserId
(
1L
);
staffEntity
.
setCreateUserId
(
1L
);
staffEntity
.
setCreateTime
(
new
Date
());
staffEntity
.
setCreateTime
(
new
Date
());
this
.
save
(
staffEntity
);
this
.
save
(
staffEntity
);
}
else
{
//更新
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
}
staffEntity
.
setName
(
userInfoItem
.
getName
());
staffEntity
.
setDeptName
(
userInfoItem
.
getBelongGroup
());
staffEntity
.
setGender
(
"male"
.
equals
(
userInfoItem
.
getGender
())
?
1
:
2
);
staffEntity
.
setWorkNum
(
userInfoItem
.
getEmployeeNo
());
staffEntity
.
setUpdateUserId
(
1L
);
staffEntity
.
setUpdateTime
(
new
Date
());
this
.
update
(
staffEntity
);
}
}
}
}
if
(
staffCollect
.
size
()
>
0
)
{
//需要将此人员变更为离职
staffCollect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
key
=
item
.
getKey
();
if
(!
ObjectUtils
.
isEmpty
(
key
))
{
StaffEntity
staff
=
item
.
getValue
();
staff
.
setStatus
(
StaffSatusEnum
.
离职
.
getValue
());
staff
.
setUpdateTime
(
new
Date
());
staff
.
setUpdateUserId
(
1L
);
this
.
update
(
staff
);
//新增离职人员
StaffLeaveEntity
staffLeaveEntity
=
new
StaffLeaveEntity
();
staffLeaveEntity
.
initAttrValue
();
staffLeaveEntity
.
setStaffId
(
staff
.
getId
());
staffLeaveEntity
.
setStaffName
(
staff
.
getName
());
staffLeaveEntity
.
setGender
(
staff
.
getGender
());
staffLeaveEntity
.
setBirthday
(
staff
.
getBirthday
());
staffLeaveEntity
.
setPhotoPath
(
staff
.
getPhotoPath
());
staffLeaveEntity
.
setPhoneNumber
(
staff
.
getPhoneNumber
());
staffLeaveEntity
.
setIdCard
(
staff
.
getIdCard
());
staffLeaveEntity
.
setWorkNum
(
staff
.
getWorkNum
());
staffLeaveEntity
.
setPoliticalstatus
(
staff
.
getPoliticalstatus
());
staffLeaveEntity
.
setDeptId
(
staff
.
getDeptId
());
staffLeaveEntity
.
setDeptName
(
staff
.
getDeptName
());
staffLeaveEntity
.
setJobId
(
staff
.
getPositionId
());
staffLeaveEntity
.
setJobName
(
staff
.
getPositionName
());
staffLeaveEntity
.
setStaffType
(
staff
.
getStaffType
());
staffLeaveEntity
.
setStatus
(
StaffSatusEnum
.
离职
.
getValue
());
staffLeaveEntity
.
setLeaveDate
(
new
Date
());
staffLeaveEntity
.
setLeaveReason
(
""
);
staffLeaveEntity
.
setAuditStatus
(
AuditStatusEnum
.
通过
.
getValue
());
staffLeaveEntity
.
setCreateUserId
(
1L
);
staffLeaveEntity
.
setCreateTime
(
new
Date
());
StaffLeaveQuery
staffLeaveQuery
=
new
StaffLeaveQuery
();
staffLeaveQuery
.
setWorkNum
(
staff
.
getWorkNum
());
int
count
=
staffLeaveService
.
count
(
staffLeaveQuery
,
null
);
if
(
count
==
0
)
{
staffLeaveService
.
save
(
staffLeaveEntity
);
}
Long
[]
groudStaffIds
=
attendanceGroupStaffService
.
find
(
new
AttendanceGroupStaffQuery
().
staffId
(
staff
.
getId
())).
stream
().
map
(
m
->
m
.
getId
()).
toArray
(
Long
[]::
new
);
if
(!
ObjectUtils
.
isEmpty
(
groudStaffIds
))
{
attendanceGroupStaffService
.
remove
(
groudStaffIds
,
null
);
}
}
});
}
}
}
}
}
}
}
}
}
if
(
staffCollect
.
size
()
>
0
)
{
//需要将此人员变更为离职
staffCollect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
key
=
item
.
getKey
();
if
(!
ObjectUtils
.
isEmpty
(
key
))
{
StaffEntity
staff
=
item
.
getValue
();
staff
.
setStatus
(
StaffSatusEnum
.
离职
.
getValue
());
staff
.
setUpdateTime
(
new
Date
());
staff
.
setUpdateUserId
(
1L
);
this
.
update
(
staff
);
//新增离职人员
StaffLeaveEntity
staffLeaveEntity
=
new
StaffLeaveEntity
();
staffLeaveEntity
.
initAttrValue
();
staffLeaveEntity
.
setStaffId
(
staff
.
getId
());
staffLeaveEntity
.
setStaffName
(
staff
.
getName
());
staffLeaveEntity
.
setGender
(
staff
.
getGender
());
staffLeaveEntity
.
setBirthday
(
staff
.
getBirthday
());
staffLeaveEntity
.
setPhotoPath
(
staff
.
getPhotoPath
());
staffLeaveEntity
.
setPhoneNumber
(
staff
.
getPhoneNumber
());
staffLeaveEntity
.
setIdCard
(
staff
.
getIdCard
());
staffLeaveEntity
.
setWorkNum
(
staff
.
getWorkNum
());
staffLeaveEntity
.
setPoliticalstatus
(
staff
.
getPoliticalstatus
());
staffLeaveEntity
.
setDeptId
(
staff
.
getDeptId
());
staffLeaveEntity
.
setDeptName
(
staff
.
getDeptName
());
staffLeaveEntity
.
setJobId
(
staff
.
getPositionId
());
staffLeaveEntity
.
setJobName
(
staff
.
getPositionName
());
staffLeaveEntity
.
setStaffType
(
staff
.
getStaffType
());
staffLeaveEntity
.
setStatus
(
StaffSatusEnum
.
离职
.
getValue
());
staffLeaveEntity
.
setLeaveDate
(
new
Date
());
staffLeaveEntity
.
setLeaveReason
(
""
);
staffLeaveEntity
.
setAuditStatus
(
AuditStatusEnum
.
通过
.
getValue
());
staffLeaveEntity
.
setCreateUserId
(
1L
);
staffLeaveEntity
.
setCreateTime
(
new
Date
());
StaffLeaveQuery
staffLeaveQuery
=
new
StaffLeaveQuery
();
staffLeaveQuery
.
setWorkNum
(
staff
.
getWorkNum
());
int
count
=
staffLeaveService
.
count
(
staffLeaveQuery
,
null
);
if
(
count
==
0
)
{
staffLeaveService
.
save
(
staffLeaveEntity
);
}
Long
[]
groudStaffIds
=
attendanceGroupStaffService
.
find
(
new
AttendanceGroupStaffQuery
().
staffId
(
staff
.
getId
())).
stream
().
map
(
m
->
m
.
getId
()).
toArray
(
Long
[]::
new
);
if
(!
ObjectUtils
.
isEmpty
(
groudStaffIds
))
{
attendanceGroupStaffService
.
remove
(
groudStaffIds
,
null
);
}
}
});
}
return
Rest
.
ok
();
return
Rest
.
ok
();
}
}
@Override
@Override
public
Rest
<
Void
>
syncRegisterUsersPhotos
()
{
public
Rest
<
Void
>
syncRegisterUsersPhotos
()
{
List
<
StaffEntity
>
staffList
=
this
.
find
(
new
StaffQuery
().
source
(
1
)).
stream
()
List
<
StaffEntity
>
staffList
=
this
.
find
(
new
StaffQuery
().
source
(
1
)).
stream
()
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java
View file @
dd107ff9
...
@@ -33,6 +33,7 @@ import com.mortals.xhx.module.staff.model.vo.StaffCheckAuthorizePdu;
...
@@ -33,6 +33,7 @@ import com.mortals.xhx.module.staff.model.vo.StaffCheckAuthorizePdu;
import
com.mortals.xhx.module.staff.model.vo.StaffInfoVo
;
import
com.mortals.xhx.module.staff.model.vo.StaffInfoVo
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -70,6 +71,9 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
...
@@ -70,6 +71,9 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
@Autowired
@Autowired
private
AttendanceLeaveRecordService
leaveRecordService
;
private
AttendanceLeaveRecordService
leaveRecordService
;
@Value
(
"${hik.host:}"
)
protected
String
hikhost
;
public
StaffController
()
{
public
StaffController
()
{
super
.
setModuleDesc
(
"员工基本信息"
);
super
.
setModuleDesc
(
"员工基本信息"
);
...
@@ -227,11 +231,15 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
...
@@ -227,11 +231,15 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
JSONObject
jsonObject
=
new
JSONObject
();
JSONObject
jsonObject
=
new
JSONObject
();
String
busiDesc
=
this
.
getModuleDesc
()
+
"同步"
;
String
busiDesc
=
this
.
getModuleDesc
()
+
"同步"
;
try
{
try
{
//同步部门
if
(!
ObjectUtils
.
isEmpty
(
hikhost
))
{
deptService
.
syncDept
(
getContext
());
//同步部门
Rest
<
Void
>
rest
=
this
.
service
.
syncPersons
(
getContext
());
deptService
.
syncDept
(
getContext
());
if
(
rest
.
getCode
()
==
YesNoEnum
.
NO
.
getValue
())
{
Rest
<
Void
>
rest
=
this
.
service
.
syncPersons
(
getContext
());
throw
new
AppException
(
"同步异常!"
);
if
(
rest
.
getCode
()
==
YesNoEnum
.
NO
.
getValue
())
{
throw
new
AppException
(
"同步异常!"
);
}
}
else
{
this
.
service
.
syncPersonsByDevices
(
null
);
}
}
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
...
...
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