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
1d05a2b0
Commit
1d05a2b0
authored
Oct 11, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整理代码
parent
294bdfc7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
106 additions
and
22 deletions
+106
-22
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
...dule/attendance/service/AttendanceRecordErrorService.java
+17
-8
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
...ndance/service/impl/AttendanceRecordErrorServiceImpl.java
+7
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
...odule/attendance/service/work/FixWorkOtherAttendance.java
+82
-14
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
View file @
1d05a2b0
package
com.mortals.xhx.module.attendance.service
;
package
com.mortals.xhx.module.attendance.service
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordErrorQuery
;
import
com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo
;
import
com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo
;
import
com.mortals.xhx.module.perform.dao.PerformErrorMessageDao
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* AttendanceRecordErrorService
* AttendanceRecordErrorService
*
* <p>
* 考勤打卡记录异常信息 service接口
* 考勤打卡记录异常信息 service接口
*
*
* @author zxfei
* @author zxfei
* @date 2023-04-08
* @date 2023-04-08
*/
*/
public
interface
AttendanceRecordErrorService
extends
ICRUDService
<
AttendanceRecordErrorEntity
,
Long
>{
public
interface
AttendanceRecordErrorService
extends
ICRUDService
<
AttendanceRecordErrorEntity
,
Long
>
{
AttendanceRecordErrorDao
getDao
();
/***
/***
* 考勤异常确认前检测,如果当天有请假记录则返回false
* 考勤异常确认前检测,如果当天有请假记录则返回false
...
@@ -27,18 +33,21 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
...
@@ -27,18 +33,21 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
/**
/**
* 自动处理异常考勤记录
* 自动处理异常考勤记录
*
* @param date
* @param date
*/
*/
void
doAutoProcess
(
Date
date
);
void
doAutoProcess
(
Date
date
);
/**
/**
* 按时间从新生成已处理的考勤绩效核查数据
* 按时间从新生成已处理的考勤绩效核查数据
*
* @param query
* @param query
*/
*/
void
doReprocess
(
AttendanceRecordErrorQuery
query
,
Context
context
);
void
doReprocess
(
AttendanceRecordErrorQuery
query
,
Context
context
);
/**
/**
* 统计每月异常次数top10
* 统计每月异常次数top10
*
* @param query
* @param query
* @return
* @return
*/
*/
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
View file @
1d05a2b0
...
@@ -244,6 +244,13 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
...
@@ -244,6 +244,13 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
AttendanceRecordErrorQuery
errorQuery
=
new
AttendanceRecordErrorQuery
();
AttendanceRecordErrorQuery
errorQuery
=
new
AttendanceRecordErrorQuery
();
errorQuery
.
setIdList
(
Arrays
.
asList
(
ids
));
errorQuery
.
setIdList
(
Arrays
.
asList
(
ids
));
List
<
AttendanceRecordErrorEntity
>
delErrorList
=
this
.
find
(
errorQuery
,
context
);
List
<
AttendanceRecordErrorEntity
>
delErrorList
=
this
.
find
(
errorQuery
,
context
);
/* //改造循环查询
List<Long> staffIdList = delErrorList.stream().map(i -> i.getStaffId()).distinct().collect(Collectors.toList());
PerformAttendRecordQuery query = new PerformAttendRecordQuery();
query.setStaffIdList(staffIdList);
query.setRuleIdNotList(Arrays.asList(9L));*/
for
(
AttendanceRecordErrorEntity
attendanceRecordErrorEntity
:
delErrorList
)
{
for
(
AttendanceRecordErrorEntity
attendanceRecordErrorEntity
:
delErrorList
)
{
PerformAttendRecordQuery
query
=
new
PerformAttendRecordQuery
();
PerformAttendRecordQuery
query
=
new
PerformAttendRecordQuery
();
query
.
setStaffId
(
attendanceRecordErrorEntity
.
getStaffId
());
query
.
setStaffId
(
attendanceRecordErrorEntity
.
getStaffId
());
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
View file @
1d05a2b0
...
@@ -6,12 +6,19 @@ import cn.hutool.core.date.DateUtil;
...
@@ -6,12 +6,19 @@ import cn.hutool.core.date.DateUtil;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.util.ThreadPool
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.module.attendance.model.*
;
import
com.mortals.xhx.module.attendance.model.*
;
import
com.mortals.xhx.module.attendance.service.*
;
import
com.mortals.xhx.module.attendance.service.*
;
import
com.mortals.xhx.module.check.model.CheckAttendRecordEntity
;
import
com.mortals.xhx.module.check.model.CheckAttendRecordQuery
;
import
com.mortals.xhx.module.check.service.CheckAttendRecordService
;
import
com.mortals.xhx.module.holiday.model.HolidayEntity
;
import
com.mortals.xhx.module.holiday.model.HolidayEntity
;
import
com.mortals.xhx.module.holiday.model.HolidayQuery
;
import
com.mortals.xhx.module.holiday.model.HolidayQuery
;
import
com.mortals.xhx.module.holiday.service.HolidayService
;
import
com.mortals.xhx.module.holiday.service.HolidayService
;
import
com.mortals.xhx.module.perform.model.PerformAttendRecordEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendRecordQuery
;
import
com.mortals.xhx.module.perform.service.PerformAttendRecordService
;
import
com.mortals.xhx.utils.SpringUtils
;
import
com.mortals.xhx.utils.SpringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -41,11 +48,18 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
...
@@ -41,11 +48,18 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
private
CommonData
commonData
;
private
CommonData
commonData
;
private
PerformAttendRecordService
performAttendRecordService
;
private
CheckAttendRecordService
checkAttendRecordService
;
public
FixWorkOtherAttendance
(
int
type
)
{
public
FixWorkOtherAttendance
(
int
type
)
{
super
(
type
);
super
(
type
);
this
.
attendanceGroupFixedworkService
=
SpringUtils
.
getBean
(
AttendanceGroupFixedworkService
.
class
);
this
.
attendanceGroupFixedworkService
=
SpringUtils
.
getBean
(
AttendanceGroupFixedworkService
.
class
);
this
.
errorService
=
SpringUtils
.
getBean
(
AttendanceRecordErrorService
.
class
);
this
.
errorService
=
SpringUtils
.
getBean
(
AttendanceRecordErrorService
.
class
);
this
.
attendanceLeaveRecordService
=
SpringUtils
.
getBean
(
AttendanceLeaveRecordService
.
class
);
this
.
attendanceLeaveRecordService
=
SpringUtils
.
getBean
(
AttendanceLeaveRecordService
.
class
);
this
.
performAttendRecordService
=
SpringUtils
.
getBean
(
PerformAttendRecordService
.
class
);
this
.
checkAttendRecordService
=
SpringUtils
.
getBean
(
CheckAttendRecordService
.
class
);
}
}
@Override
@Override
...
@@ -433,8 +447,8 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
...
@@ -433,8 +447,8 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
}
}
//删除当前员工当日未处理的异常后,重新添加 处理的 不做删除
//删除当前员工当日未处理的异常后,重新添加 处理的 不做删除
//deleteErrorRecord(dateStr, attendanceRecordEntity.getStaffId(), context);
//deleteErrorRecord(dateStr, attendanceRecordEntity.getStaffId(), context);
//todo
缓存方式
删除优化
//todo
级联
删除优化
deleteErrorRecordCache
(
attendanceRecordEntity
.
getStaffId
(),
context
);
deleteErrorRecordCache
(
attendanceRecordEntity
.
getStaffId
(),
context
);
if
(!
ObjectUtils
.
isEmpty
(
errorEntityList
))
{
if
(!
ObjectUtils
.
isEmpty
(
errorEntityList
))
{
//过滤异常列表中存在相同的记录
//过滤异常列表中存在相同的记录
errorEntityList
=
errorEntityList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
errorEntityList
=
errorEntityList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
...
@@ -464,20 +478,74 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
...
@@ -464,20 +478,74 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
private
void
deleteErrorRecordCache
(
Long
staffId
,
Context
context
)
{
private
void
deleteErrorRecordCache
(
Long
staffId
,
Context
context
)
{
//删除当前员工当日未处理的异常后,重新添加
//删除当前员工当日未处理的异常后,重新添加
List
<
AttendanceRecordErrorEntity
>
attendanceRecordErrorEntities
=
commonData
.
getErrorGroupStaffMap
().
get
(
staffId
);
List
<
AttendanceRecordErrorEntity
>
attendanceRecordErrorEntities
=
commonData
.
getErrorGroupStaffMap
().
getOrDefault
(
staffId
,
new
ArrayList
<>(
0
));
if
(!
ObjectUtils
.
isEmpty
(
attendanceRecordErrorEntities
))
{
Long
[]
errorIds
=
attendanceRecordErrorEntities
.
stream
()
List
<
AttendanceRecordErrorEntity
>
delErrorList
=
attendanceRecordErrorEntities
.
stream
()
.
filter
(
f
->
YesNoEnum
.
NO
.
getValue
()
==
f
.
getProcessStatus
())
.
filter
(
f
->
YesNoEnum
.
NO
.
getValue
()
==
f
.
getProcessStatus
())
.
map
(
i
->
i
.
getId
()).
toArray
(
Long
[]::
new
);
.
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
errorIds
))
{
Long
[]
errorIds
=
delErrorList
.
stream
().
map
(
i
->
i
.
getId
()).
toArray
(
Long
[]::
new
);
//log.info("删除 {} 人员:{} 异常记录:{}",dateStr,staffId, JSON.toJSONString(attendanceRecordErrorEntities));
if
(!
ObjectUtils
.
isEmpty
(
errorIds
))
{
StopWatch
stopWatch
=
new
StopWatch
();
//log.info("删除 {} 人员:{} 异常记录:{}",dateStr,staffId, JSON.toJSONString(attendanceRecordErrorEntities));
stopWatch
.
start
(
"删除异常记录耗时"
);
StopWatch
stopWatch
=
new
StopWatch
();
errorService
.
remove
(
errorIds
,
context
);
stopWatch
.
start
(
"删除异常记录耗时"
);
stopWatch
.
stop
();
//todo 耗时长,删除优化
log
.
info
(
"删除异常记录耗时:{}ms"
,
stopWatch
.
getLastTaskTimeMillis
());
//errorService
//线程池去删除异常记录
Runnable
runnable
=
new
Runnable
()
{
@Override
public
void
run
()
{
errorService
.
remove
(
errorIds
,
context
);
}
};
ThreadPool
.
getInstance
().
execute
(
runnable
);
// errorService.getDao().delete(errorIds);
/*
for (AttendanceRecordErrorEntity attendanceRecordErrorEntity : delErrorList) {
PerformAttendRecordQuery query = new PerformAttendRecordQuery();
query.setStaffId(attendanceRecordErrorEntity.getStaffId());
query.setErrorTime(attendanceRecordErrorEntity.getErrorDateTime());
query.setRuleIdNotList(Arrays.asList(9L));
List<PerformAttendRecordEntity> delAttendRecords = performAttendRecordService.find(query, context);
if (!ObjectUtils.isEmpty(delAttendRecords)) {
Long[] delIds = delAttendRecords.stream().map(i -> i.getId()).toArray(Long[]::new);
performAttendRecordService.remove(delIds, context);
}
}
}
*/
/* PerformAttendRecordQuery query = new PerformAttendRecordQuery();
query.setIdList(Arrays.asList(ids));
List<PerformAttendRecordEntity> performAttendRecordEntities = this.find(query, context);
if (!ObjectUtils.isEmpty(performAttendRecordEntities)) {
Long[] delIds = performAttendRecordEntities.stream().map(i -> i.getId()).toArray(Long[]::new);
if (!ObjectUtils.isEmpty(delIds)) {
CheckAttendRecordQuery checkAttendRecordQuery = new CheckAttendRecordQuery();
checkAttendRecordQuery.setRecordIdList(Arrays.asList(delIds));
List<CheckAttendRecordEntity> checkAttendRecordEntities = checkAttendRecordService.find(checkAttendRecordQuery, context);
if (!ObjectUtils.isEmpty(checkAttendRecordEntities)) {
Long[] checkIds = checkAttendRecordEntities.stream().map(i -> i.getId()).toArray(Long[]::new);
checkAttendRecordService.remove(checkIds, context);
// log.info("删除考勤核查记录成功,size:{}",checkIds.length);
}
}
}*/
//删除关联的绩效记录
//删除关联的考勤记录
stopWatch
.
stop
();
log
.
info
(
"删除异常记录耗时:{}ms"
,
stopWatch
.
getLastTaskTimeMillis
());
}
}
}
}
private
void
checkAndSaveCache
(
Context
context
,
List
<
AttendanceRecordErrorEntity
>
attendanceRecordErrorEntities
,
AttendanceRecordErrorEntity
errorEntity
)
{
private
void
checkAndSaveCache
(
Context
context
,
List
<
AttendanceRecordErrorEntity
>
attendanceRecordErrorEntities
,
AttendanceRecordErrorEntity
errorEntity
)
{
...
...
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