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
1259cd2d
Commit
1259cd2d
authored
Aug 15, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试多线程优化考勤计算
parent
9298d6ee
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
137 additions
and
149 deletions
+137
-149
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
...tendance/service/impl/AttendanceRecordHikServiceImpl.java
+136
-148
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
...-manager/src/test/java/com/mortals/httpclient/system.http
+1
-1
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
View file @
1259cd2d
...
...
@@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.util.ThreadPool
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.module.attendance.model.*
;
import
com.mortals.xhx.module.attendance.service.*
;
...
...
@@ -154,173 +153,162 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
for
(
Map
.
Entry
<
Long
,
List
<
AttendanceRecordHikEntity
>>
itemEntry
:
listMap
.
entrySet
())
{
//按人员 todo 改为多线程并行计算
List
<
AttendanceRecordEntity
>
saveList
=
new
ArrayList
<>();
List
<
AttendanceRecordEntity
>
updateList
=
new
ArrayList
<>();
Long
staffId
=
itemEntry
.
getKey
();
List
<
AttendanceRecordHikEntity
>
recordHikEntityList
=
itemEntry
.
getValue
();
Map
<
String
,
List
<
AttendanceRecordHikEntity
>>
dateRecordMap
=
recordHikEntityList
.
stream
().
collect
(
Collectors
.
groupingBy
(
hikEntity
->
DateUtil
.
formatDate
(
hikEntity
.
getAttendanceDate
())));
for
(
Map
.
Entry
<
String
,
List
<
AttendanceRecordHikEntity
>>
dateEntry
:
dateRecordMap
.
entrySet
())
{
//按每日
String
dateStr
=
dateEntry
.
getKey
();
List
<
AttendanceRecordHikEntity
>
recordHikEntities
=
dateEntry
.
getValue
();
if
(
ObjectUtils
.
isEmpty
(
recordHikEntities
))
continue
;
AttendanceRecordHikEntity
item
=
recordHikEntities
.
get
(
0
);
AttendanceRecordEntity
attendanceRecordEntity
=
new
AttendanceRecordEntity
();
attendanceRecordEntity
.
initAttrValue
();
Runnable
runnable
=
new
Runnable
()
{
@Override
public
void
run
()
{
List
<
AttendanceRecordEntity
>
saveList
=
new
ArrayList
<>();
List
<
AttendanceRecordEntity
>
updateList
=
new
ArrayList
<>();
Long
staffId
=
itemEntry
.
getKey
();
List
<
AttendanceRecordHikEntity
>
recordHikEntityList
=
itemEntry
.
getValue
();
Map
<
String
,
List
<
AttendanceRecordHikEntity
>>
dateRecordMap
=
recordHikEntityList
.
stream
().
collect
(
Collectors
.
groupingBy
(
hikEntity
->
DateUtil
.
formatDate
(
hikEntity
.
getAttendanceDate
())));
for
(
Map
.
Entry
<
String
,
List
<
AttendanceRecordHikEntity
>>
dateEntry
:
dateRecordMap
.
entrySet
())
{
//按每日
String
dateStr
=
dateEntry
.
getKey
();
List
<
AttendanceRecordHikEntity
>
recordHikEntities
=
dateEntry
.
getValue
();
if
(
ObjectUtils
.
isEmpty
(
recordHikEntities
))
continue
;
AttendanceRecordHikEntity
item
=
recordHikEntities
.
get
(
0
);
AttendanceRecordEntity
attendanceRecordEntity
=
new
AttendanceRecordEntity
();
attendanceRecordEntity
.
initAttrValue
();
attendanceRecordEntity
.
setStaffId
(
item
.
getStaffId
());
attendanceRecordEntity
.
setStaffName
(
item
.
getStaffName
());
attendanceRecordEntity
.
setDeptId
(
item
.
getDeptId
());
attendanceRecordEntity
.
setDeptName
(
item
.
getDeptName
());
attendanceRecordEntity
.
setPositionId
(
item
.
getPositionId
());
attendanceRecordEntity
.
setPositionName
(
item
.
getPositionName
());
attendanceRecordEntity
.
setWorkNum
(
item
.
getWorkNum
());
attendanceRecordEntity
.
setAttendanceDate
(
item
.
getAttendanceDate
());
attendanceRecordEntity
.
setCreateTime
(
item
.
getAttendanceDate
());
attendanceRecordEntity
.
setCreateUserId
(
attendanceRecordHikService
.
getContextUserId
(
context
));
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
staffId
.
toString
());
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
//log.info("staffEntity is null ,staffId:{}", staffId);
continue
;
}
attendanceRecordEntity
.
setStaffId
(
item
.
getStaffId
());
attendanceRecordEntity
.
setStaffName
(
item
.
getStaffName
());
attendanceRecordEntity
.
setDeptId
(
item
.
getDeptId
());
attendanceRecordEntity
.
setDeptName
(
item
.
getDeptName
());
attendanceRecordEntity
.
setPositionId
(
item
.
getPositionId
());
attendanceRecordEntity
.
setPositionName
(
item
.
getPositionName
());
attendanceRecordEntity
.
setWorkNum
(
item
.
getWorkNum
());
attendanceRecordEntity
.
setAttendanceDate
(
item
.
getAttendanceDate
());
attendanceRecordEntity
.
setCreateTime
(
item
.
getAttendanceDate
());
attendanceRecordEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
staffId
.
toString
());
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
//log.info("staffEntity is null ,staffId:{}", staffId);
continue
;
}
attendanceRecordEntity
.
setSalaId
(
staffEntity
.
getSalaId
());
attendanceRecordEntity
.
setSalaName
(
staffEntity
.
getSalaName
());
attendanceRecordEntity
.
setSalaId
(
staffEntity
.
getSalaId
());
attendanceRecordEntity
.
setSalaName
(
staffEntity
.
getSalaName
());
//通过员工id查询考勤组人员信息
// List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffId));
List
<
AttendanceGroupStaffEntity
>
attendanceGroupStaffEntities
=
groupStaffMap
.
getOrDefault
(
staffId
,
new
ArrayList
<>(
0
));
//过滤重复考勤组与人员
attendanceGroupStaffEntities
=
attendanceGroupStaffEntities
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getGroupId
()
+
"#"
+
x
.
getStaffId
(),
y
->
y
,
(
o
,
n
)
->
n
)).
values
().
stream
().
collect
(
Collectors
.
toList
());
List
<
AttendanceRecordDetailEntity
>
detailEntityList
=
new
ArrayList
<>();
if
(!
ObjectUtils
.
isEmpty
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
==
1
)
{
//查询考勤组
//AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
AttendanceGroupEntity
attendanceGroupEntity
=
groupMap
.
get
(
attendanceGroupStaffEntities
.
get
(
0
).
getGroupId
());
attendanceRecordEntity
.
setAttendanceGroupId
(
attendanceGroupEntity
==
null
?
0L
:
attendanceGroupEntity
.
getId
());
attendanceRecordEntity
.
setAttendanceGroupName
(
attendanceGroupEntity
==
null
?
""
:
attendanceGroupEntity
.
getGroupName
());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
AttendanceWorkAbstract
workAbstract
=
AttendanceWorkAbstract
.
newType
(
attendanceGroupEntity
.
getType
());
CommonData
commonData
=
new
CommonData
();
commonData
.
setContext
(
context
);
commonData
.
setAttendanceGroupEntity
(
attendanceGroupEntity
);
commonData
.
setAttendanceRecordEntity
(
attendanceRecordEntity
);
commonData
.
setAttendanceDate
(
attendanceRecordEntity
.
getAttendanceDate
());
commonData
.
setDetailEntityList
(
detailEntityList
);
commonData
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
commonData
.
setDateStr
(
dateStr
);
commonData
.
setClassEntityMap
(
classEntityMap
);
commonData
.
setRecordHikEntities
(
recordHikEntities
);
commonData
.
setFixedSpecialGroupMap
(
fixedSpecialGroupMap
);
commonData
.
setClassDetailEntityMap
(
classDetailEntityMap
);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract
.
doHandleWork
(
commonData
);
}
//通过员工id查询考勤组人员信息
// List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffId));
List
<
AttendanceGroupStaffEntity
>
attendanceGroupStaffEntities
=
groupStaffMap
.
getOrDefault
(
staffId
,
new
ArrayList
<>(
0
));
//过滤重复考勤组与人员
attendanceGroupStaffEntities
=
attendanceGroupStaffEntities
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getGroupId
()
+
"#"
+
x
.
getStaffId
(),
y
->
y
,
(
o
,
n
)
->
n
)).
values
().
stream
().
collect
(
Collectors
.
toList
());
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
>
1
)
{
for
(
AttendanceGroupStaffEntity
groupStaffEntity
:
attendanceGroupStaffEntities
)
{
detailEntityList
=
new
ArrayList
<>();
//多考勤组 todo 暂时和单一覆盖
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, groupStaffEntity, context);
//查询考勤组
// AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(groupStaffEntity.getGroupId(), context);
AttendanceGroupEntity
attendanceGroupEntity
=
groupMap
.
get
(
groupStaffEntity
.
getGroupId
());
List
<
AttendanceRecordDetailEntity
>
detailEntityList
=
new
ArrayList
<>();
if
(!
ObjectUtils
.
isEmpty
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
==
1
)
{
//查询考勤组
//AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
AttendanceGroupEntity
attendanceGroupEntity
=
groupMap
.
get
(
attendanceGroupStaffEntities
.
get
(
0
).
getGroupId
());
attendanceRecordEntity
.
setAttendanceGroupId
(
attendanceGroupEntity
==
null
?
0L
:
attendanceGroupEntity
.
getId
());
attendanceRecordEntity
.
setAttendanceGroupName
(
attendanceGroupEntity
==
null
?
""
:
attendanceGroupEntity
.
getGroupName
());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
AttendanceWorkAbstract
workAbstract
=
AttendanceWorkAbstract
.
newType
(
attendanceGroupEntity
.
getType
());
CommonData
commonData
=
new
CommonData
();
commonData
.
setContext
(
context
);
commonData
.
setAttendanceGroupEntity
(
attendanceGroupEntity
);
commonData
.
setAttendanceRecordEntity
(
attendanceRecordEntity
);
commonData
.
setAttendanceDate
(
attendanceRecordEntity
.
getAttendanceDate
());
commonData
.
setDetailEntityList
(
detailEntityList
);
commonData
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
commonData
.
setDateStr
(
dateStr
);
commonData
.
setClassEntityMap
(
classEntityMap
);
commonData
.
setRecordHikEntities
(
recordHikEntities
);
commonData
.
setFixedSpecialGroupMap
(
fixedSpecialGroupMap
);
commonData
.
setClassDetailEntityMap
(
classDetailEntityMap
);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract
.
doHandleWork
(
commonData
);
}
attendanceRecordEntity
.
setAttendanceGroupId
(
attendanceGroupEntity
==
null
?
0L
:
attendanceGroupEntity
.
getId
());
attendanceRecordEntity
.
setAttendanceGroupName
(
attendanceGroupEntity
==
null
?
""
:
attendanceGroupEntity
.
getGroupName
());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
AttendanceWorkAbstract
workAbstract
=
AttendanceWorkAbstract
.
newType
(
attendanceGroupEntity
.
getType
());
CommonData
commonData
=
new
CommonData
();
commonData
.
setContext
(
context
);
commonData
.
setAttendanceGroupEntity
(
attendanceGroupEntity
);
commonData
.
setAttendanceRecordEntity
(
attendanceRecordEntity
);
commonData
.
setDetailEntityList
(
detailEntityList
);
commonData
.
setAttendanceDate
(
attendanceRecordEntity
.
getAttendanceDate
());
commonData
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
commonData
.
setDateStr
(
dateStr
);
commonData
.
setClassEntityMap
(
classEntityMap
);
commonData
.
setRecordHikEntities
(
recordHikEntities
);
commonData
.
setFixedSpecialGroupMap
(
fixedSpecialGroupMap
);
commonData
.
setClassDetailEntityMap
(
classDetailEntityMap
);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract
.
doHandleWork
(
commonData
);
}
}
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
>
1
)
{
for
(
AttendanceGroupStaffEntity
groupStaffEntity
:
attendanceGroupStaffEntities
)
{
detailEntityList
=
new
ArrayList
<>();
//多考勤组 todo 暂时和单一覆盖
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, groupStaffEntity, context);
//查询考勤组
// AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(groupStaffEntity.getGroupId(), context);
AttendanceGroupEntity
attendanceGroupEntity
=
groupMap
.
get
(
groupStaffEntity
.
getGroupId
());
attendanceRecordEntity
.
setAttendanceGroupId
(
attendanceGroupEntity
==
null
?
0L
:
attendanceGroupEntity
.
getId
());
attendanceRecordEntity
.
setAttendanceGroupName
(
attendanceGroupEntity
==
null
?
""
:
attendanceGroupEntity
.
getGroupName
());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
AttendanceWorkAbstract
workAbstract
=
AttendanceWorkAbstract
.
newType
(
attendanceGroupEntity
.
getType
());
CommonData
commonData
=
new
CommonData
();
commonData
.
setContext
(
context
);
commonData
.
setAttendanceGroupEntity
(
attendanceGroupEntity
);
commonData
.
setAttendanceRecordEntity
(
attendanceRecordEntity
);
commonData
.
setDetailEntityList
(
detailEntityList
);
commonData
.
setAttendanceDate
(
attendanceRecordEntity
.
getAttendanceDate
());
commonData
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
commonData
.
setDateStr
(
dateStr
);
commonData
.
setClassEntityMap
(
classEntityMap
);
commonData
.
setRecordHikEntities
(
recordHikEntities
);
commonData
.
setFixedSpecialGroupMap
(
fixedSpecialGroupMap
);
commonData
.
setClassDetailEntityMap
(
classDetailEntityMap
);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract
.
doHandleWork
(
commonData
);
}
if
(!
ObjectUtils
.
isEmpty
(
detailEntityList
))
{
attendanceRecordEntity
.
setAttendanceRecordDetailList
(
detailEntityList
);
//判断签到 只要存在一次正常打卡详细记录 就判断签到
attendanceRecordEntity
.
setSignInResult
(
YesNoEnum
.
YES
.
getValue
());
for
(
AttendanceRecordDetailEntity
detailEntity
:
detailEntityList
)
{
if
(
GoWorkResultEnum
.
缺卡
.
getValue
()
==
detailEntity
.
getGoWorkResult
()
||
GoWorkResultEnum
.
迟到
.
getValue
()
==
detailEntity
.
getOffWorkResult
())
{
attendanceRecordEntity
.
setSignInResult
(
YesNoEnum
.
NO
.
getValue
());
break
;
}
}
attendanceRecordEntity
.
setSignOutResult
(
YesNoEnum
.
YES
.
getValue
());
for
(
AttendanceRecordDetailEntity
detailEntity
:
detailEntityList
)
{
if
(
OffWorkResultEnum
.
缺卡
.
getValue
()
==
detailEntity
.
getOffWorkResult
()
||
OffWorkResultEnum
.
早退
.
getValue
()
==
detailEntity
.
getOffWorkResult
())
{
attendanceRecordEntity
.
setSignOutResult
(
YesNoEnum
.
NO
.
getValue
());
break
;
}
}
if
(!
ObjectUtils
.
isEmpty
(
detailEntityList
))
{
attendanceRecordEntity
.
setAttendanceRecordDetailList
(
detailEntityList
);
//判断签到 只要存在一次正常打卡详细记录 就判断签到
attendanceRecordEntity
.
setSignInResult
(
YesNoEnum
.
YES
.
getValue
());
for
(
AttendanceRecordDetailEntity
detailEntity
:
detailEntityList
)
{
if
(
GoWorkResultEnum
.
缺卡
.
getValue
()
==
detailEntity
.
getGoWorkResult
()
||
GoWorkResultEnum
.
迟到
.
getValue
()
==
detailEntity
.
getOffWorkResult
())
{
attendanceRecordEntity
.
setSignInResult
(
YesNoEnum
.
NO
.
getValue
());
break
;
}
}
attendanceRecordEntity
.
setSignOutResult
(
YesNoEnum
.
YES
.
getValue
());
for
(
AttendanceRecordDetailEntity
detailEntity
:
detailEntityList
)
{
if
(
OffWorkResultEnum
.
缺卡
.
getValue
()
==
detailEntity
.
getOffWorkResult
()
||
OffWorkResultEnum
.
早退
.
getValue
()
==
detailEntity
.
getOffWorkResult
())
{
attendanceRecordEntity
.
setSignOutResult
(
YesNoEnum
.
NO
.
getValue
());
break
;
}
}
if
(
YesNoEnum
.
YES
.
getValue
()
==
attendanceRecordEntity
.
getSignInResult
()
&&
YesNoEnum
.
YES
.
getValue
()
==
attendanceRecordEntity
.
getSignOutResult
())
{
attendanceRecordEntity
.
setPunchResult
(
YesNoEnum
.
YES
.
getValue
());
}
else
{
attendanceRecordEntity
.
setPunchResult
(
YesNoEnum
.
NO
.
getValue
());
}
if
(
YesNoEnum
.
YES
.
getValue
()
==
attendanceRecordEntity
.
getSignInResult
()
&&
YesNoEnum
.
YES
.
getValue
()
==
attendanceRecordEntity
.
getSignOutResult
())
{
attendanceRecordEntity
.
setPunchResult
(
YesNoEnum
.
YES
.
getValue
());
}
else
{
attendanceRecordEntity
.
setPunchResult
(
YesNoEnum
.
NO
.
getValue
());
}
attendanceRecordEntity
.
setAttendType
(
"现场打卡"
);
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery
query
=
new
AttendanceRecordQuery
();
query
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
query
.
setAttendanceDateStart
(
dateStr
);
query
.
setAttendanceDateEnd
(
dateStr
);
attendanceRecordEntity
.
setAttendType
(
"现场打卡"
);
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
AttendanceRecordQuery
query
=
new
AttendanceRecordQuery
();
query
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
query
.
setAttendanceDateStart
(
dateStr
);
query
.
setAttendanceDateEnd
(
dateStr
);
AttendanceRecordEntity
recordEntity
=
attendanceRecordService
.
selectOne
(
query
);
if
(!
ObjectUtils
.
isEmpty
(
recordEntity
))
{
attendanceRecordEntity
.
setId
(
recordEntity
.
getId
());
attendanceRecordEntity
.
setUpdateTime
(
new
Date
());
attendanceRecordEntity
.
setUpdateUserId
(
attendanceRecordHikService
.
getContextUserId
(
context
));
updateList
.
add
(
attendanceRecordEntity
);
}
else
{
saveList
.
add
(
attendanceRecordEntity
);
}
}
AttendanceRecordEntity
recordEntity
=
attendanceRecordService
.
selectOne
(
query
);
if
(!
ObjectUtils
.
isEmpty
(
recordEntity
))
{
attendanceRecordEntity
.
setId
(
recordEntity
.
getId
());
attendanceRecordEntity
.
setUpdateTime
(
new
Date
());
attendanceRecordEntity
.
setUpdateUserId
(
this
.
getContextUserId
(
context
));
updateList
.
add
(
attendanceRecordEntity
);
}
else
{
saveList
.
add
(
attendanceRecordEntity
);
}
if
(!
ObjectUtils
.
isEmpty
(
saveList
))
{
attendanceRecordService
.
save
(
saveList
);
}
}
if
(!
ObjectUtils
.
isEmpty
(
saveList
))
{
attendanceRecordService
.
save
(
saveList
);
/* for (AttendanceRecordEntity attendanceRecordEntity : saveList) {
attendanceRecordService.save(attendanceRecordEntity, context);
}*/
}
}
if
(!
ObjectUtils
.
isEmpty
(
updateList
))
{
attendanceRecordService
.
update
(
updateList
);
if
(!
ObjectUtils
.
isEmpty
(
updateList
))
{
attendanceRecordService
.
update
(
updateList
);
/* for (AttendanceRecordEntity attendanceRecordEntity : updateList) {
attendanceRecordService.update(attendanceRecordEntity, context);
}*/
}
}
};
ThreadPool
.
getInstance
().
execute
(
runnable
);
}
}
}
...
...
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
View file @
1259cd2d
...
...
@@ -37,7 +37,7 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json
{
"attendanceDateStart": "2024-07-
0
1",
"attendanceDateStart": "2024-07-
2
1",
"attendanceDateEnd": "2024-08-15"
}
...
...
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