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
fc7c18e6
Commit
fc7c18e6
authored
Dec 05, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加绩效考核分数初始化任务;考勤汇总任务汇总前20天的数据;自动核查当天的异常考勤数据,核查时判断当天是否处于请假状态
parent
a8eff47c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
267 additions
and
62 deletions
+267
-62
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
...om/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
+19
-16
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/StaffPerformInitDataTaskImpl.java
...mortals/xhx/daemon/task/StaffPerformInitDataTaskImpl.java
+133
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
...dule/attendance/service/AttendanceRecordErrorService.java
+15
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
...ndance/service/impl/AttendanceRecordErrorServiceImpl.java
+51
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
...le/attendance/service/impl/AttendanceStatServiceImpl.java
+44
-40
db/add.sql
db/add.sql
+5
-1
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
View file @
fc7c18e6
...
...
@@ -4,13 +4,18 @@ import com.mortals.framework.exception.AppException;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery
;
import
com.mortals.xhx.module.attendance.service.AttendanceRecordErrorService
;
import
com.mortals.xhx.module.attendance.service.AttendanceStatService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Calendar
;
import
java.util.Date
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_ATTENDANCE_STAT_CACHE
;
/**
...
...
@@ -20,27 +25,25 @@ import static com.mortals.xhx.common.key.RedisKey.KEY_ATTENDANCE_STAT_CACHE;
@Service
(
"AttendanceSummaryTask"
)
public
class
AttendanceSummaryTaskImpl
implements
ITaskExcuteService
{
@Autowired
private
AttendanceStatService
attendanceStatService
;
@Autowired
private
ICacheService
cacheService
;
private
static
String
SUMMARY_TASK_KEY
=
"attendanceSummaryTask:run"
;
@Autowired
private
AttendanceRecordErrorService
attendanceRecordErrorService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
// try {
// String verify = cacheService.get(SUMMARY_TASK_KEY
);
// if(StringUtils.isNotEmpty(verify)&&verify.equals("true")){
// Thread.sleep(600*1000);
// }
// cacheService.set(SUMMARY_TASK_KEY,"true",600);
// attendanceStatService.doAttendanceSummary(null
);
// cacheService.expire(SUMMARY_TASK_KEY,1
);
// }catch (Exception e){
//
// }
cacheService
.
lpush
(
KEY_ATTENDANCE_STAT_CACHE
,
new
AttendanceSummaryQuery
()
);
//考勤汇总前先自动处理前一天的异常考勤数据
Calendar
now
=
Calendar
.
getInstance
(
);
now
.
setTime
(
new
Date
());
now
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
1
);
//默认查前一天数据
attendanceRecordErrorService
.
doAutoProcess
(
now
.
getTime
());
AttendanceSummaryQuery
query
=
new
AttendanceSummaryQuery
(
);
query
.
setSummaryTimeEnd
(
DateUtils
.
getStrDate
(
now
.
getTime
())
);
now
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
19
);
query
.
setSummaryTimeStart
(
DateUtils
.
getStrDate
(
now
.
getTime
()));
//重新汇总最近20天的考勤数据
cacheService
.
lpush
(
KEY_ATTENDANCE_STAT_CACHE
,
query
);
}
@Override
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/StaffPerformInitDataTaskImpl.java
0 → 100644
View file @
fc7c18e6
package
com.mortals.xhx.daemon.task
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.xhx.module.holiday.model.HolidayEntity
;
import
com.mortals.xhx.module.holiday.model.HolidayQuery
;
import
com.mortals.xhx.module.holiday.service.HolidayService
;
import
com.mortals.xhx.module.staff.model.*
;
import
com.mortals.xhx.module.staff.service.StaffPerformStatService
;
import
com.mortals.xhx.module.staff.service.StaffPerformSummaryService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
/**
* 员工绩效数据初始化任务
*/
@Slf4j
@Service
(
"StaffPerformInitDataTask"
)
public
class
StaffPerformInitDataTaskImpl
implements
ITaskExcuteService
{
@Autowired
private
StaffPerformStatService
staffPerformStatService
;
@Autowired
private
StaffPerformSummaryService
staffPerformSummaryService
;
@Autowired
private
HolidayService
holidayService
;
@Autowired
private
StaffService
staffService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
boolean
isReturn
=
false
;
Calendar
calendar
=
Calendar
.
getInstance
();
int
year
=
calendar
.
get
(
Calendar
.
YEAR
);
int
month
=
calendar
.
get
(
Calendar
.
MONTH
)+
1
;
int
dayOfMonth
=
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
String
dateStr
=
DateUtils
.
getStrDate
(
calendar
.
getTime
());
//判断是否为特定节假日
HolidayQuery
holidayQuery
=
new
HolidayQuery
();
holidayQuery
.
setStartTimeStart
(
dateStr
);
holidayQuery
.
setStartTimeEnd
(
dateStr
);
HolidayEntity
holidayEntity
=
holidayService
.
selectOne
(
holidayQuery
);
if
(
holidayEntity
!=
null
){
if
(
holidayEntity
.
getWorkorholiday
()==
0
){
//特定节假日
isReturn
=
true
;
}
}
else
{
//判断是否为周末
int
dayOfWeek
=
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
);
if
(
dayOfWeek
==
Calendar
.
SATURDAY
||
dayOfWeek
==
Calendar
.
SUNDAY
)
{
isReturn
=
true
;
}
}
BigDecimal
totalScore
=
new
BigDecimal
(
100
);
List
<
StaffEntity
>
allStaff
=
staffService
.
getAllList
();
if
(!
isReturn
)
{
//非节假日非周末才做绩效初始化
if
(
CollectionUtils
.
isNotEmpty
(
allStaff
))
{
List
<
StaffPerformStatEntity
>
list
=
new
ArrayList
<>();
allStaff
.
stream
().
forEach
(
item
->
{
StaffPerformStatEntity
statEntity
=
new
StaffPerformStatEntity
();
statEntity
.
initAttrValue
();
statEntity
.
setStaffId
(
item
.
getId
());
statEntity
.
setStaffName
(
item
.
getName
());
statEntity
.
setYear
(
year
);
statEntity
.
setMonth
(
month
);
statEntity
.
setDay
(
dayOfMonth
);
statEntity
.
setTotalScore
(
totalScore
);
statEntity
.
setCreateUserId
(
1
l
);
statEntity
.
setCreateTime
(
new
Date
());
StaffPerformStatQuery
tempQuery
=
new
StaffPerformStatQuery
();
tempQuery
.
setStaffId
(
statEntity
.
getStaffId
());
tempQuery
.
setYear
(
statEntity
.
getYear
());
tempQuery
.
setMonth
(
statEntity
.
getMonth
());
tempQuery
.
setDay
(
statEntity
.
getDay
());
StaffPerformStatEntity
temp
=
staffPerformStatService
.
selectOne
(
tempQuery
);
if
(
temp
==
null
)
{
list
.
add
(
statEntity
);
}
});
staffPerformStatService
.
save
(
list
);
}
}
if
(
dayOfMonth
==
1
){
//月初第一天初始化绩效汇总信息
if
(
CollectionUtils
.
isNotEmpty
(
allStaff
))
{
List
<
StaffPerformSummaryEntity
>
summaryList
=
new
ArrayList
<>();
allStaff
.
stream
().
forEach
(
item
->
{
StaffPerformSummaryEntity
staffPerformSummaryEntity
=
new
StaffPerformSummaryEntity
();
staffPerformSummaryEntity
.
initAttrValue
();
staffPerformSummaryEntity
.
setStaffId
(
item
.
getId
());
staffPerformSummaryEntity
.
setStaffName
(
item
.
getName
());
staffPerformSummaryEntity
.
setDeptId
(
item
.
getDeptId
());
staffPerformSummaryEntity
.
setDeptName
(
item
.
getDeptName
());
staffPerformSummaryEntity
.
setYear
(
year
);
staffPerformSummaryEntity
.
setMonth
(
month
);
staffPerformSummaryEntity
.
setTotalScore
(
totalScore
);
staffPerformSummaryEntity
.
setCreateUserId
(
1
l
);
staffPerformSummaryEntity
.
setCreateTime
(
new
Date
());
StaffPerformSummaryQuery
summaryQuery
=
new
StaffPerformSummaryQuery
();
summaryQuery
.
setStaffId
(
staffPerformSummaryEntity
.
getStaffId
());
summaryQuery
.
setYear
(
staffPerformSummaryEntity
.
getYear
());
summaryQuery
.
setMonth
(
staffPerformSummaryEntity
.
getMonth
());
StaffPerformSummaryEntity
tempSummary
=
staffPerformSummaryService
.
selectOne
(
summaryQuery
);
if
(
tempSummary
==
null
){
summaryList
.
add
(
staffPerformSummaryEntity
);
}
});
staffPerformSummaryService
.
save
(
summaryList
);
}
}
}
@Override
public
void
stopTask
(
ITask
task
)
throws
AppException
{
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
View file @
fc7c18e6
package
com.mortals.xhx.module.attendance.service
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity
;
import
java.util.Date
;
/**
* AttendanceRecordErrorService
*
...
...
@@ -11,4 +14,16 @@ import com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity;
*/
public
interface
AttendanceRecordErrorService
extends
ICRUDService
<
AttendanceRecordErrorEntity
,
Long
>{
/***
* 考勤异常确认前检测,如果当天有请假记录则返回false
* @param errorId
* @return
*/
boolean
errorConfirm
(
Long
errorId
);
/**
* 自动处理异常考勤记录
* @param date
*/
void
doAutoProcess
(
Date
date
);
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
View file @
fc7c18e6
...
...
@@ -9,22 +9,25 @@ import com.mortals.framework.util.DateUtils;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.busiz.h5.req.AttendSaveReq
;
import
com.mortals.xhx.busiz.h5.web.ApiWebPerformController
;
import
com.mortals.xhx.common.code.AppealResultEnum
;
import
com.mortals.xhx.common.code.ErrorStatusEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.attendance.model.
AttendanceClassDetailEntity
;
import
com.mortals.xhx.module.attendance.model.
*
;
import
com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery
;
import
com.mortals.xhx.module.attendance.service.*
;
import
com.mortals.xhx.module.perform.service.PerformAttendRecordService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_ATTENDANCE_STAT_CACHE
;
...
...
@@ -55,6 +58,8 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
private
AttendanceStatService
attendanceStatService
;
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
AttendanceLeaveRecordService
attendanceLeaveRecordService
;
@Override
...
...
@@ -148,9 +153,8 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
attendSaveReq
.
setStaffId
(
entity
.
getStaffId
());
performAttendRecordService
.
saveAttend
(
attendSaveReq
,
context
);
}
//异常处理后重新汇总考勤
if
(
StringUtils
.
isNotEmpty
(
entity
.
getProcessResult
()))
{
//异常处理后重新汇总考勤 context!=null时表示页面调用的修改,自动执行处理任务调用时context为null,无需立即汇总
if
(
StringUtils
.
isNotEmpty
(
entity
.
getProcessResult
())&&
context
!=
null
)
{
AttendanceSummaryQuery
query
=
new
AttendanceSummaryQuery
();
query
.
setStaffId
(
entity
.
getStaffId
());
query
.
setSummaryTime
(
DateUtils
.
getStrDate
(
entity
.
getErrorDateTime
()));
...
...
@@ -160,4 +164,46 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
}
}
}
@Override
public
boolean
errorConfirm
(
Long
errorId
)
{
boolean
result
=
true
;
AttendanceRecordErrorEntity
errorEntity
=
this
.
get
(
errorId
);
if
(
errorEntity
!=
null
)
{
AttendanceLeaveRecordQuery
query
=
new
AttendanceLeaveRecordQuery
();
query
.
setEndTimeEnd
(
DateUtils
.
getStrDate
(
errorEntity
.
getErrorDateTime
()));
query
.
setLeavePersonId
(
errorEntity
.
getStaffId
());
query
.
setAuditResult
(
AppealResultEnum
.
通过
.
getValue
());
AttendanceLeaveRecordEntity
leaveRecordEntity
=
attendanceLeaveRecordService
.
selectOne
(
query
);
if
(
leaveRecordEntity
!=
null
){
result
=
false
;
}
}
return
result
;
}
@Override
public
void
doAutoProcess
(
Date
date
)
{
AttendanceRecordErrorQuery
query
=
new
AttendanceRecordErrorQuery
();
query
.
setErrorDateTimeStart
(
DateUtils
.
getStrDate
(
date
));
query
.
setErrorDateTimeEnd
(
DateUtils
.
getStrDate
(
date
));
List
<
AttendanceRecordErrorEntity
>
list
=
this
.
find
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
list
.
stream
().
forEach
(
item
->{
if
(
errorConfirm
(
item
.
getId
())){
AttendanceRecordErrorEntity
updateEntity
=
new
AttendanceRecordErrorEntity
();
updateEntity
.
setId
(
item
.
getId
());
updateEntity
.
setProcessStatus
(
1
);
updateEntity
.
setProcessResult
(
String
.
valueOf
(
item
.
getErrorStatus
()));
updateEntity
.
setStaffId
(
item
.
getStaffId
());
updateEntity
.
setOpertor
(
"系统自动处理"
);
updateEntity
.
setOperDateTime
(
new
Date
());
updateEntity
.
setRemark
(
"系统自动处理"
);
updateEntity
.
setUpdateTime
(
new
Date
());
updateEntity
.
setUpdateUserId
(
1
l
);
this
.
update
(
updateEntity
,
null
);
}
});
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
View file @
fc7c18e6
...
...
@@ -222,6 +222,47 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
}
}
log
.
info
(
"完成汇总当前日期假期余额....."
);
//汇总当前日期异常考勤
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
!=
null
)
{
BeanUtils
.
copyProperties
(
item
,
temp
,
BeanUtil
.
getNullPropertyNames
(
item
));
temp
.
setGoTimes
(
0
);
//默认只要有异常考勤,当天就不算全勤
if
(
item
.
getMorningTimes
()>
0
){
temp
.
setNonCompliancePunch
(
new
BigDecimal
(
item
.
getMorningTimes
()));
}
this
.
dao
.
update
(
temp
);
}
String
attendanceSummary
=
""
;
if
(
item
.
getMorningTimes
()
>
0
)
{
attendanceSummary
+=
"缺卡*"
+
item
.
getMorningTimes
()
+
"次;"
;
}
if
(
item
.
getLateTimes
()
>
0
)
{
attendanceSummary
+=
"迟到*"
+
item
.
getLateTimes
()
+
"次;"
;
}
if
(
item
.
getOvertimeTimes
()
>
0
)
{
attendanceSummary
+=
"早退*"
+
item
.
getOvertimeTimes
()
+
"次;"
;
}
AttendanceStaffStatEntity
staffStat
=
new
AttendanceStaffStatEntity
();
staffStat
.
initAttrValue
();
BeanUtils
.
copyProperties
(
item
,
staffStat
,
BeanUtil
.
getNullPropertyNames
(
item
));
staffStat
.
setAttendanceSummary
(
attendanceSummary
);
AttendanceStaffStatEntity
staffStatTemp
=
attendanceStaffStatService
.
selectOne
(
new
AttendanceStaffStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
staffStatTemp
!=
null
)
{
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
}
else
{
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
}
}
}
log
.
info
(
"完成汇总当前日期异常考勤....."
);
//汇总当前日期请假情况
List
<
LeaveSummaryVo
>
leaveSummaryVoList
=
attendanceSummaryDao
.
getLeaveSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
leaveSummaryVoList
))
{
...
...
@@ -252,6 +293,9 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
}
}
temp
.
setGoTimes
(
0
);
//默认只要有请假,当天就不算全勤
temp
.
setMorningTimes
(
0
);
//有请假则清空当天缺卡次数
temp
.
setLateTimes
(
0
);
temp
.
setOvertimeTimes
(
0
);
LeaveTypeEnum
leaveTypeEnum
=
LeaveTypeEnum
.
getByValue
(
item
.
getLeaveType
());
if
(
leaveTypeEnum
==
null
)
{
leaveTypeEnum
=
LeaveTypeEnum
.
其他
;
//默认为事假
...
...
@@ -348,46 +392,6 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
}
}
log
.
info
(
"完成汇总当前日期请假情况....."
);
//汇总当前日期异常考勤
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
!=
null
)
{
BeanUtils
.
copyProperties
(
item
,
temp
,
BeanUtil
.
getNullPropertyNames
(
item
));
temp
.
setGoTimes
(
0
);
//默认只要有异常考勤,当天就不算全勤
if
(
item
.
getMorningTimes
()>
0
){
temp
.
setNonCompliancePunch
(
new
BigDecimal
(
item
.
getMorningTimes
()));
}
this
.
dao
.
update
(
temp
);
}
String
attendanceSummary
=
""
;
if
(
item
.
getMorningTimes
()
>
0
)
{
attendanceSummary
+=
"缺卡*"
+
item
.
getMorningTimes
()
+
"次;"
;
}
if
(
item
.
getLateTimes
()
>
0
)
{
attendanceSummary
+=
"迟到*"
+
item
.
getLateTimes
()
+
"次;"
;
}
if
(
item
.
getOvertimeTimes
()
>
0
)
{
attendanceSummary
+=
"早退*"
+
item
.
getOvertimeTimes
()
+
"次;"
;
}
AttendanceStaffStatEntity
staffStat
=
new
AttendanceStaffStatEntity
();
staffStat
.
initAttrValue
();
BeanUtils
.
copyProperties
(
item
,
staffStat
,
BeanUtil
.
getNullPropertyNames
(
item
));
staffStat
.
setAttendanceSummary
(
attendanceSummary
);
AttendanceStaffStatEntity
staffStatTemp
=
attendanceStaffStatService
.
selectOne
(
new
AttendanceStaffStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
staffStatTemp
!=
null
)
{
staffStat
.
setId
(
staffStatTemp
.
getId
());
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
}
else
{
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()));
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
}
}
}
log
.
info
(
"完成汇总当前日期异常考勤....."
);
log
.
info
(
"日期:"
+
query
.
getSummaryTime
()
+
",考勤汇总执行完成,耗时:"
+
(
System
.
currentTimeMillis
()
-
currentTime
)
+
"毫秒...."
);
}
catch
(
Exception
e
)
{
log
.
error
(
"考勤汇总出错"
,
e
);
...
...
db/add.sql
View file @
fc7c18e6
...
...
@@ -857,7 +857,7 @@ ALTER TABLE mortals_xhx_attendance_leave_record ADD COLUMN `sourceDingTime` var
-- ----------------------------
2023
-
10
-
09
--
2023-10-09
-- ----------------------------
-- ----------------------------
-- 节假日
...
...
@@ -880,3 +880,7 @@ CREATE TABLE `mortals_sys_holiday`
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
COMMENT
=
'节假日表'
ROW_FORMAT
=
Dynamic
;
-- --------------
-- 2023-12-05 员工绩效分数初始化任务
-- --------------
INSERT
INTO
`mortals_xhx_task`
(
`name`
,
`taskKey`
,
`status`
,
`excuteService`
,
`excuteParam`
,
`excuteHost`
,
`excuteStrategy`
,
`excuteDate`
,
`excuteTime`
,
`remark`
,
`lastExcuteHost`
,
`lastExcuteTime`
,
`interimExcuteStatus`
,
`createTime`
,
`createUserId`
,
`createUserName`
)
VALUES
(
'员工绩效分数初始化任务'
,
'StaffPerformInitDataTask'
,
'0'
,
'StaffPerformInitDataTask'
,
NULL
,
NULL
,
'1'
,
'0'
,
'00:10'
,
NULL
,
NULL
,
NULL
,
'0'
,
NOW
(),
'1'
,
'系统管理员'
);
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