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
97ae2ca4
Commit
97ae2ca4
authored
Jan 09, 2024
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考勤汇总任务优化
parent
55415e8b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
13 deletions
+48
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
...om/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
+1
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
...le/attendance/service/impl/AttendanceStatServiceImpl.java
+47
-13
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
View file @
97ae2ca4
...
@@ -42,6 +42,7 @@ public class AttendanceSummaryTaskImpl implements ITaskExcuteService {
...
@@ -42,6 +42,7 @@ public class AttendanceSummaryTaskImpl implements ITaskExcuteService {
query
.
setSummaryTimeEnd
(
DateUtils
.
getStrDate
(
now
.
getTime
()));
query
.
setSummaryTimeEnd
(
DateUtils
.
getStrDate
(
now
.
getTime
()));
now
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
19
);
now
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
19
);
query
.
setSummaryTimeStart
(
DateUtils
.
getStrDate
(
now
.
getTime
()));
query
.
setSummaryTimeStart
(
DateUtils
.
getStrDate
(
now
.
getTime
()));
log
.
info
(
"考勤汇总时间:"
+
DateUtils
.
getDateTime
(
now
.
getTime
(),
"yyyy-MM-dd HH:mm:ss"
));
//重新汇总最近20天的考勤数据
//重新汇总最近20天的考勤数据
cacheService
.
lpush
(
KEY_ATTENDANCE_STAT_CACHE
,
query
);
cacheService
.
lpush
(
KEY_ATTENDANCE_STAT_CACHE
,
query
);
}
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
View file @
97ae2ca4
...
@@ -40,10 +40,7 @@ import org.springframework.util.ObjectUtils;
...
@@ -40,10 +40,7 @@ import org.springframework.util.ObjectUtils;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.util.Arrays
;
import
java.util.*
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* AttendanceStatService
* AttendanceStatService
...
@@ -221,6 +218,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -221,6 +218,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
//汇总当前日期假期余额
//汇总当前日期假期余额
List
<
VacationBalanceSummaryVo
>
vacationBalanceSummaryVoList
=
attendanceSummaryDao
.
getVacationBalanceSummary
(
query
);
List
<
VacationBalanceSummaryVo
>
vacationBalanceSummaryVoList
=
attendanceSummaryDao
.
getVacationBalanceSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
vacationBalanceSummaryVoList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
vacationBalanceSummaryVoList
))
{
List
<
AttendanceStatEntity
>
insertList
=
new
ArrayList
<>();
List
<
AttendanceStatEntity
>
updateList
=
new
ArrayList
<>();
for
(
VacationBalanceSummaryVo
item
:
vacationBalanceSummaryVoList
)
{
for
(
VacationBalanceSummaryVo
item
:
vacationBalanceSummaryVoList
)
{
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
//离职状态时判断当前汇总日期是否在离职后
//离职状态时判断当前汇总日期是否在离职后
...
@@ -251,19 +250,27 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -251,19 +250,27 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
attendanceStatEntity
.
setCreateTime
(
new
Date
());
attendanceStatEntity
.
setCreateTime
(
new
Date
());
attendanceStatEntity
.
setCreateUserId
(
1
l
);
attendanceStatEntity
.
setCreateUserId
(
1
l
);
attendanceStatEntity
.
setGoTimes
(
1
);
//默认当天全勤
attendanceStatEntity
.
setGoTimes
(
1
);
//默认当天全勤
this
.
dao
.
insert
(
attendanceStatEntity
);
//this.dao.insert(attendanceStatEntity);
insertList
.
add
(
attendanceStatEntity
);
}
else
{
}
else
{
//BeanUtils.copyProperties(item, temp, BeanUtil.getNullPropertyNames(item));
//BeanUtils.copyProperties(item, temp, BeanUtil.getNullPropertyNames(item));
temp
.
setUpdateTime
(
new
Date
());
//temp.setUpdateTime(new Date());
this
.
dao
.
update
(
temp
);
//this.dao.update(temp);
//updateList.add(temp);
}
}
}
}
if
(
insertList
.
size
()>
0
){
this
.
dao
.
insertBatch
(
insertList
);
}
}
}
log
.
info
(
"完成汇总当前日期假期余额....."
);
log
.
info
(
"完成汇总当前日期假期余额....."
);
//汇总当前日期异常考勤
//汇总当前日期异常考勤
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
List
<
AttendanceStatEntity
>
updateList
=
new
ArrayList
<>();
List
<
AttendanceStaffStatEntity
>
addStaffStat
=
new
ArrayList
<>();
List
<
AttendanceStaffStatEntity
>
updateStaffStat
=
new
ArrayList
<>();
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
//离职状态时判断当前汇总日期是否在离职后
//离职状态时判断当前汇总日期是否在离职后
...
@@ -285,7 +292,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -285,7 +292,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
if
(
item
.
getMorningTimes
()
>
0
)
{
if
(
item
.
getMorningTimes
()
>
0
)
{
temp
.
setNonCompliancePunch
(
new
BigDecimal
(
item
.
getMorningTimes
()));
temp
.
setNonCompliancePunch
(
new
BigDecimal
(
item
.
getMorningTimes
()));
}
}
this
.
dao
.
update
(
temp
);
//this.dao.update(temp);
updateList
.
add
(
temp
);
}
}
String
attendanceSummary
=
""
;
String
attendanceSummary
=
""
;
if
(
item
.
getMorningTimes
()
>
0
)
{
if
(
item
.
getMorningTimes
()
>
0
)
{
...
@@ -322,18 +330,32 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -322,18 +330,32 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
if
(
staffStatTemp
!=
null
)
{
if
(
staffStatTemp
!=
null
)
{
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setUpdateTime
(
new
Date
());
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
//attendanceStaffStatService.update(staffStat);
updateStaffStat
.
add
(
staffStat
);
}
else
{
}
else
{
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateUserId
(
1
l
);
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
//attendanceStaffStatService.save(staffStat);
addStaffStat
.
add
(
staffStat
);
}
}
}
}
if
(
updateList
.
size
()>
0
){
this
.
dao
.
updateBatch
(
updateList
);
}
if
(
addStaffStat
.
size
()>
0
){
attendanceStaffStatService
.
save
(
addStaffStat
);
}
if
(
updateStaffStat
.
size
()>
0
){
attendanceStaffStatService
.
update
(
updateStaffStat
);
}
}
}
log
.
info
(
"完成汇总当前日期异常考勤....."
);
log
.
info
(
"完成汇总当前日期异常考勤....."
);
//汇总当前日期请假情况
//汇总当前日期请假情况
List
<
LeaveSummaryVo
>
leaveSummaryVoList
=
attendanceSummaryDao
.
getLeaveSummary
(
query
);
List
<
LeaveSummaryVo
>
leaveSummaryVoList
=
attendanceSummaryDao
.
getLeaveSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
leaveSummaryVoList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
leaveSummaryVoList
))
{
List
<
AttendanceStatEntity
>
updateList
=
new
ArrayList
<>();
List
<
AttendanceStaffStatEntity
>
addStaffStat
=
new
ArrayList
<>();
List
<
AttendanceStaffStatEntity
>
updateStaffStat
=
new
ArrayList
<>();
BigDecimal
day
=
new
BigDecimal
(
3600
*
8
);
//一天按8小时折算
BigDecimal
day
=
new
BigDecimal
(
3600
*
8
);
//一天按8小时折算
BigDecimal
oneDay
=
new
BigDecimal
(
1
);
BigDecimal
oneDay
=
new
BigDecimal
(
1
);
for
(
LeaveSummaryVo
item
:
leaveSummaryVoList
)
{
for
(
LeaveSummaryVo
item
:
leaveSummaryVoList
)
{
...
@@ -453,7 +475,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -453,7 +475,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
temp
.
setOtherDays
(
leaveTime
);
temp
.
setOtherDays
(
leaveTime
);
break
;
break
;
}
}
this
.
dao
.
update
(
temp
);
//this.dao.update(temp);
updateList
.
add
(
temp
);
}
}
AttendanceStaffStatEntity
staffStat
=
new
AttendanceStaffStatEntity
();
AttendanceStaffStatEntity
staffStat
=
new
AttendanceStaffStatEntity
();
...
@@ -464,13 +487,24 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -464,13 +487,24 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
if
(
staffStatTemp
!=
null
)
{
if
(
staffStatTemp
!=
null
)
{
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setUpdateTime
(
new
Date
());
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
//attendanceStaffStatService.update(staffStat);
updateStaffStat
.
add
(
staffStat
);
}
else
{
}
else
{
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateUserId
(
1
l
);
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
//attendanceStaffStatService.save(staffStat);
addStaffStat
.
add
(
staffStat
);
}
}
}
}
if
(
updateList
.
size
()>
0
){
this
.
dao
.
updateBatch
(
updateList
);
}
if
(
addStaffStat
.
size
()>
0
){
attendanceStaffStatService
.
save
(
addStaffStat
);
}
if
(
updateStaffStat
.
size
()>
0
){
attendanceStaffStatService
.
update
(
updateStaffStat
);
}
}
}
log
.
info
(
"完成汇总当前日期请假情况....."
);
log
.
info
(
"完成汇总当前日期请假情况....."
);
log
.
info
(
"日期:"
+
query
.
getSummaryTime
()
+
",考勤汇总执行完成,耗时:"
+
(
System
.
currentTimeMillis
()
-
currentTime
)
+
"毫秒...."
);
log
.
info
(
"日期:"
+
query
.
getSummaryTime
()
+
",考勤汇总执行完成,耗时:"
+
(
System
.
currentTimeMillis
()
-
currentTime
)
+
"毫秒...."
);
...
...
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