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
2d879f6c
Commit
2d879f6c
authored
Aug 16, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化考勤计算
parent
ae73ba81
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
10 deletions
+21
-10
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
...tendance/service/impl/AttendanceRecordHikServiceImpl.java
+21
-10
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
View file @
2d879f6c
...
...
@@ -75,13 +75,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
@Override
public
void
addAttendanceRecord
(
AttendanceRecordHikEntity
hikEntity
,
Context
context
)
throws
Exception
{
List
<
AttendanceRecordHikEntity
>
hikEntityList
=
new
ArrayList
<>();
addAttendanceOtherRecordList
(
hikEntityList
,
context
);
addAttendanceOtherRecordList
(
hikEntityList
,
hikEntity
,
context
);
}
@Override
public
void
addAttendanceRecordByQuery
(
AttendanceRecordHikEntity
attendanceRecordHikQuery
,
Context
context
)
throws
Exception
{
List
<
AttendanceRecordHikEntity
>
hikEntityList
=
attendanceRecordHikService
.
find
(
attendanceRecordHikQuery
);
addAttendanceOtherRecordList
(
hikEntityList
,
context
);
addAttendanceOtherRecordList
(
hikEntityList
,
attendanceRecordHikQuery
,
context
);
}
@Override
...
...
@@ -99,7 +99,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
return
item
;
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
());
addAttendanceOtherRecordList
(
hikEntityList
,
context
);
addAttendanceOtherRecordList
(
hikEntityList
,
attendanceRecordHikQuery
,
context
);
}
private
Boolean
checkWorkByHoliday
(
String
dateStr
)
{
...
...
@@ -135,7 +135,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
public
void
addAttendanceOtherRecordList
(
List
<
AttendanceRecordHikEntity
>
hikEntityList
,
Context
context
)
throws
Exception
{
public
void
addAttendanceOtherRecordList
(
List
<
AttendanceRecordHikEntity
>
hikEntityList
,
AttendanceRecordHikEntity
attendanceRecordHikQuery
,
Context
context
)
throws
Exception
{
List
<
AttendanceRecordHikEntity
>
collect
=
hikEntityList
.
stream
().
sorted
(
Comparator
.
comparing
(
AttendanceRecordHikEntity:
:
getAttendanceDate
)).
collect
(
Collectors
.
toList
());
Map
<
Long
,
List
<
AttendanceRecordHikEntity
>>
listMap
=
collect
.
stream
().
collect
(
Collectors
.
groupingBy
(
AttendanceRecordHikEntity:
:
getStaffId
));
...
...
@@ -146,10 +146,19 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
Map
<
Long
,
AttendanceClassDetailEntity
>
classDetailEntityMap
=
attendanceClassDetailService
.
find
(
new
AttendanceClassDetailQuery
()).
parallelStream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getId
(),
y
->
y
,
(
o
,
n
)
->
n
));
Map
<
Long
,
List
<
AttendanceGroupFixedworkSpecialEntity
>>
fixedSpecialGroupMap
=
specialService
.
find
(
new
AttendanceGroupFixedworkSpecialEntity
()).
parallelStream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getFixedWorkId
()));
String
attendanceDateStart
=
attendanceRecordHikQuery
.
getAttendanceDateStart
();
String
attendanceDateEnd
=
attendanceRecordHikQuery
.
getAttendanceDateEnd
();
AttendanceRecordQuery
query
=
new
AttendanceRecordQuery
();
query
.
setAttendanceDateStart
(
attendanceDateStart
);
query
.
setAttendanceDateEnd
(
attendanceDateEnd
);
Map
<
Long
,
AttendanceRecordEntity
>
staffRecordMap
=
attendanceRecordService
.
find
(
query
).
parallelStream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getStaffId
(),
y
->
y
,
(
o
,
n
)
->
n
));
/* AttendanceLeaveRecordQuery leaveRecordQuery = new AttendanceLeaveRecordQuery();
leaveRecordQuery.setAuditResultList(Arrays.asList(1, 4));
Map<Long, List<AttendanceLeaveRecordEntity>> leaveRecordGroupMap = attendanceLeaveRecordService.find(leaveRecordQuery).parallelStream().collect(Collectors.groupingBy(x -> x.getLeavePersonId()));
*/
//获取日期
for
(
Map
.
Entry
<
Long
,
List
<
AttendanceRecordHikEntity
>>
itemEntry
:
listMap
.
entrySet
())
{
//按人员 todo 改为多线程并行计算
...
...
@@ -276,12 +285,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity
.
setAttendType
(
"现场打卡"
);
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery
query
=
new
AttendanceRecordQuery
();
/*
AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId());
query.setAttendanceDateStart(dateStr);
query.setAttendanceDateEnd(dateStr);
AttendanceRecordEntity
recordEntity
=
attendanceRecordService
.
selectOne
(
query
);
AttendanceRecordEntity recordEntity = attendanceRecordService.selectOne(query);*/
AttendanceRecordEntity
recordEntity
=
staffRecordMap
.
get
(
attendanceRecordEntity
.
getStaffId
());
if
(!
ObjectUtils
.
isEmpty
(
recordEntity
))
{
attendanceRecordEntity
.
setId
(
recordEntity
.
getId
());
attendanceRecordEntity
.
setUpdateTime
(
new
Date
());
...
...
@@ -293,6 +303,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
if
(!
ObjectUtils
.
isEmpty
(
saveList
))
{
log
.
info
(
"新增考勤记录数:"
+
saveList
.
size
());
attendanceRecordService
.
save
(
saveList
);
/* for (AttendanceRecordEntity attendanceRecordEntity : saveList) {
attendanceRecordService.save(attendanceRecordEntity, context);
...
...
@@ -300,6 +311,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
if
(!
ObjectUtils
.
isEmpty
(
updateList
))
{
log
.
info
(
"更新考勤记录数:"
+
updateList
.
size
());
attendanceRecordService
.
update
(
updateList
);
/* for (AttendanceRecordEntity attendanceRecordEntity : updateList) {
attendanceRecordService.update(attendanceRecordEntity, context);
...
...
@@ -308,7 +320,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
...
...
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