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
25386115
Commit
25386115
authored
Apr 19, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加每日接口同步考勤数据
parent
767dd507
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
45 deletions
+56
-45
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
...a/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
+54
-43
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
.../module/hik/person/service/impl/HikPersonServiceImpl.java
+2
-2
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
View file @
25386115
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.PageUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.common.Rest
;
...
...
@@ -65,58 +66,68 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
doorEventReq
.
setStartTime
(
todayStart
);
doorEventReq
.
setEndTime
(
todayEnd
);
doorEventReq
.
setPageNo
(
1
);
doorEventReq
.
setPageSize
(
1
000
);
doorEventReq
.
setPageSize
(
1
);
Rest
<
DoorEventDataInfo
>
doorEventsRest
=
hikDoorService
.
getDoorEvents
(
doorEventReq
);
log
.
info
(
"doorEventsRest:{} msg:{}"
,
doorEventsRest
.
getCode
(),
doorEventsRest
.
getMsg
());
if
(
doorEventsRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
//同步当前考勤数据
List
<
AttendanceRecordHikEntity
>
attRecords
=
doorEventsRest
.
getData
().
getList
().
stream
().
map
(
item
->
{
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
StaffEntity
staffCache
=
staffService
.
getExtCache
(
item
.
getJobNo
());
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
return
null
;
recordHikEntity
.
setStaffId
(
staffCache
.
getId
());
recordHikEntity
.
setStaffName
(
staffCache
.
getName
());
recordHikEntity
.
setWorkNum
(
staffCache
.
getWorkNum
());
recordHikEntity
.
setDeptId
(
staffCache
.
getDeptId
());
recordHikEntity
.
setDeptName
(
staffCache
.
getDeptName
());
recordHikEntity
.
setPositionId
(
staffCache
.
getPositionId
());
recordHikEntity
.
setPositionName
(
staffCache
.
getPositionName
());
recordHikEntity
.
setAttendanceDate
(
item
.
getEventTime
());
recordHikEntity
.
setAttendanceAddress
(
item
.
getDoorName
());
recordHikEntity
.
setEventSource
(
"门禁点"
);
recordHikEntity
.
setRemark
(
item
.
getEventId
());
recordHikEntity
.
setCreateTime
(
new
Date
());
recordHikEntity
.
setCreateUserName
(
"system"
);
recordHikEntity
.
setCreateUserId
(
1L
);
return
recordHikEntity
;
}).
collect
(
Collectors
.
toList
());
log
.
info
(
"attRecords size:{}"
,
attRecords
.
size
());
List
<
String
>
eventIds
=
attRecords
.
parallelStream
().
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toList
());
//查询当天考勤记录是否有重复的 有的 则不添加
AttendanceRecordHikQuery
recordHikQuery
=
new
AttendanceRecordHikQuery
();
recordHikQuery
.
setAttendanceDateStart
(
DateUtil
.
format
(
todayStart
,
"yyyy-MM-dd"
));
recordHikQuery
.
setAttendanceDateEnd
(
DateUtil
.
format
(
todayStart
,
"yyyy-MM-dd"
));
recordHikQuery
.
setRemarkList
(
eventIds
);
Set
<
String
>
eventIdSet
=
recordHikService
.
find
(
recordHikQuery
).
parallelStream
().
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toSet
());
List
<
AttendanceRecordHikEntity
>
saveRecordList
=
attRecords
.
stream
().
filter
(
f
->
!
eventIdSet
.
contains
(
f
.
getRemark
())).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
saveRecordList
))
{
recordHikService
.
save
(
saveRecordList
);
//分页获取考勤数据
Integer
total
=
doorEventsRest
.
getData
().
getTotal
();
int
pageCount
=
PageUtil
.
totalPage
(
total
,
1000
);
for
(
int
i
=
1
;
i
<=
pageCount
;
i
++)
{
doorEventReq
.
setPageNo
(
i
);
doorEventReq
.
setPageSize
(
1000
);
doorEventsRest
=
hikDoorService
.
getDoorEvents
(
doorEventReq
);
log
.
info
(
"doorEventsRest:{} msg:{},page:{}"
,
doorEventsRest
.
getCode
(),
doorEventsRest
.
getMsg
(),
doorEventReq
.
getPageNo
());
getDoorEvents
(
doorEventsRest
);
}
}
log
.
info
(
"saveRecordList size:{}"
,
saveRecordList
.
size
());
}
private
void
getDoorEvents
(
Rest
<
DoorEventDataInfo
>
doorEventsRest
)
{
//同步当前考勤数据
List
<
AttendanceRecordHikEntity
>
attRecords
=
doorEventsRest
.
getData
().
getList
().
stream
().
map
(
item
->
{
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
StaffEntity
staffCache
=
staffService
.
getExtCache
(
item
.
getJobNo
());
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
return
null
;
recordHikEntity
.
setStaffId
(
staffCache
.
getId
());
recordHikEntity
.
setStaffName
(
staffCache
.
getName
());
recordHikEntity
.
setWorkNum
(
staffCache
.
getWorkNum
());
recordHikEntity
.
setDeptId
(
staffCache
.
getDeptId
());
recordHikEntity
.
setDeptName
(
staffCache
.
getDeptName
());
recordHikEntity
.
setPositionId
(
staffCache
.
getPositionId
());
recordHikEntity
.
setPositionName
(
staffCache
.
getPositionName
());
recordHikEntity
.
setAttendanceDate
(
item
.
getEventTime
());
recordHikEntity
.
setAttendanceAddress
(
item
.
getDoorName
());
recordHikEntity
.
setEventSource
(
"门禁点"
);
recordHikEntity
.
setRemark
(
item
.
getEventId
());
recordHikEntity
.
setCreateTime
(
new
Date
());
recordHikEntity
.
setCreateUserName
(
"system"
);
recordHikEntity
.
setCreateUserId
(
1L
);
return
recordHikEntity
;
}).
collect
(
Collectors
.
toList
());
log
.
info
(
"attRecords size:{}"
,
attRecords
.
size
());
List
<
String
>
eventIds
=
attRecords
.
parallelStream
().
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toList
());
//查询当天考勤记录是否有重复的 有的 则不添加
AttendanceRecordHikQuery
recordHikQuery
=
new
AttendanceRecordHikQuery
();
recordHikQuery
.
setAttendanceDateStart
(
DateUtil
.
format
(
DateUtil
.
beginOfDay
(
new
Date
()),
"yyyy-MM-dd"
));
recordHikQuery
.
setAttendanceDateEnd
(
DateUtil
.
format
(
DateUtil
.
beginOfDay
(
new
Date
()),
"yyyy-MM-dd"
));
recordHikQuery
.
setRemarkList
(
eventIds
);
Set
<
String
>
eventIdSet
=
recordHikService
.
find
(
recordHikQuery
).
parallelStream
().
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toSet
());
List
<
AttendanceRecordHikEntity
>
saveRecordList
=
attRecords
.
stream
().
filter
(
f
->
!
eventIdSet
.
contains
(
f
.
getRemark
())).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
saveRecordList
))
{
recordHikService
.
save
(
saveRecordList
);
}
log
.
info
(
"saveRecordList size:{}"
,
saveRecordList
.
size
());
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
View file @
25386115
...
...
@@ -38,7 +38,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
personReq
),
null
,
null
,
"application/json"
);
HikApiRest
<
PersonDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
PersonDataInfo
>>()
{
});
if
(
rest
.
getCode
()
==
"0"
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"person error resp=>{}"
,
respJson
);
...
...
@@ -74,7 +74,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
orgListReq
),
null
,
null
,
"application/json"
);
HikApiRest
<
OrgDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
OrgDataInfo
>>()
{
});
if
(
rest
.
getCode
()
==
"0"
)
{
if
(
"0"
.
equals
(
rest
.
getCode
())
)
{
return
Rest
.
ok
(
rest
.
getData
());
}
else
{
log
.
info
(
"org list error resp=>{}"
,
respJson
);
...
...
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