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
afa3dcc4
Commit
afa3dcc4
authored
Dec 13, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考勤异常处理从新生成考勤绩效分数核查数据
parent
c02fc003
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
124 additions
and
0 deletions
+124
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
...dule/attendance/service/AttendanceRecordErrorService.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
...ndance/service/impl/AttendanceRecordErrorServiceImpl.java
+96
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java
...odule/attendance/web/AttendanceRecordErrorController.java
+20
-0
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordErrorService.java
View file @
afa3dcc4
package
com.mortals.xhx.module.attendance.service
;
package
com.mortals.xhx.module.attendance.service
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.framework.service.ICRUDService
;
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
java.util.Date
;
import
java.util.Date
;
...
@@ -26,4 +28,10 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
...
@@ -26,4 +28,10 @@ public interface AttendanceRecordErrorService extends ICRUDService<AttendanceRec
* @param date
* @param date
*/
*/
void
doAutoProcess
(
Date
date
);
void
doAutoProcess
(
Date
date
);
/**
* 按时间从新生成已处理的考勤绩效核查数据
* @param query
*/
void
doReprocess
(
AttendanceRecordErrorQuery
query
,
Context
context
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
View file @
afa3dcc4
...
@@ -26,6 +26,8 @@ import com.mortals.framework.model.Context;
...
@@ -26,6 +26,8 @@ import com.mortals.framework.model.Context;
import
com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao
;
import
com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
...
@@ -207,4 +209,98 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
...
@@ -207,4 +209,98 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
});
});
}
}
}
}
@Override
public
void
doReprocess
(
AttendanceRecordErrorQuery
query
,
Context
context
)
{
List
<
String
>
dateList
=
getDatesBetween
(
query
.
getErrorDateTimeStart
(),
query
.
getErrorDateTimeEnd
());
for
(
String
day
:
dateList
)
{
query
.
setErrorDateTimeStart
(
day
);
query
.
setErrorDateTimeEnd
(
day
);
List
<
AttendanceRecordErrorEntity
>
list
=
this
.
find
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
for
(
AttendanceRecordErrorEntity
entity
:
list
)
{
if
(
YesNoEnum
.
YES
.
getValue
()
==
entity
.
getProcessStatus
())
{
//判断后打绩效
String
ruleCode
=
""
;
if
(
ErrorStatusEnum
.
早退
.
getValue
()
==
DataUtil
.
converStr2Int
(
entity
.
getProcessResult
(),
3
))
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getErrorDateTime
())
&&
!
ObjectUtils
.
isEmpty
(
entity
.
getGoOffDateTime
()))
{
//判断时间差定义
Long
earlyMin
=
DateUtil
.
between
(
entity
.
getErrorDateTime
(),
entity
.
getGoOffDateTime
(),
DateUnit
.
MINUTE
);
if
(
earlyMin
>=
0L
&&
earlyMin
<
5L
)
{
//早退5分钟内
ruleCode
=
"ATTEND1002"
;
}
if
(
earlyMin
>=
5L
&&
earlyMin
<
60L
)
{
//早退5分钟内
ruleCode
=
"ATTEND1004"
;
}
if
(
earlyMin
>=
60L
)
{
//早退5分钟内
ruleCode
=
"ATTEND1006"
;
}
}
else
{
ruleCode
=
"ATTEND1002"
;
}
}
else
if
(
ErrorStatusEnum
.
迟到
.
getValue
()
==
DataUtil
.
converStr2Int
(
entity
.
getProcessResult
(),
3
))
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getErrorDateTime
())
&&
!
ObjectUtils
.
isEmpty
(
entity
.
getGoOffDateTime
()))
{
Long
lateMin
=
DateUtil
.
between
(
entity
.
getErrorDateTime
(),
entity
.
getGoOffDateTime
(),
DateUnit
.
MINUTE
);
if
(
lateMin
>=
0L
&&
lateMin
<
5L
)
{
//迟到5分钟内
ruleCode
=
"ATTEND1001"
;
}
if
(
lateMin
>=
5L
&&
lateMin
<
60L
)
{
//迟到5-60
ruleCode
=
"ATTEND1003"
;
}
if
(
lateMin
>=
60L
)
{
//迟到60分钟以上
ruleCode
=
"ATTEND1005"
;
}
}
else
{
//早退5分钟内
ruleCode
=
"ATTEND1001"
;
}
}
else
if
(
ErrorStatusEnum
.
缺卡
.
getValue
()
==
DataUtil
.
converStr2Int
(
entity
.
getProcessResult
(),
3
))
{
ruleCode
=
"ATTEND1007"
;
}
if
(!
ObjectUtils
.
isEmpty
(
ruleCode
))
{
AttendSaveReq
attendSaveReq
=
new
AttendSaveReq
();
attendSaveReq
.
setAttendanceGroupId
(
entity
.
getAttendanceGroupId
());
attendSaveReq
.
setAttendanceGroupName
(
entity
.
getAttendanceGroupName
());
attendSaveReq
.
setAttendanceDate
(
entity
.
getActualAttendanceDateTime
());
attendSaveReq
.
setErrorTime
(
entity
.
getErrorDateTime
());
attendSaveReq
.
setGoOffTimeStr
(
entity
.
getGoOrOff
());
attendSaveReq
.
setActualAttendTime
(
entity
.
getActualAttendanceDateTime
());
attendSaveReq
.
setErrorResult
(
entity
.
getRemark
());
attendSaveReq
.
setTitle
(
"考勤"
);
attendSaveReq
.
setHappenTime
(
entity
.
getErrorDateTime
());
attendSaveReq
.
setRuleCode
(
ruleCode
);
attendSaveReq
.
setStaffId
(
entity
.
getStaffId
());
performAttendRecordService
.
saveAttend
(
attendSaveReq
,
context
);
}
}
}
}
}
}
private
List
<
String
>
getDatesBetween
(
String
startDateStr
,
String
endDateStr
)
{
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LocalDate
startDate
=
LocalDate
.
parse
(
startDateStr
,
formatter
);
LocalDate
endDate
=
LocalDate
.
parse
(
endDateStr
,
formatter
);
List
<
String
>
dates
=
new
ArrayList
<>();
//这里是判断开始日期是否在结束日期之后或者=结束日期
while
(
startDate
.
isBefore
(
endDate
)
||
startDate
.
isEqual
(
endDate
))
{
String
add
=
startDate
.
format
(
formatter
);
dates
.
add
(
add
);
startDate
=
startDate
.
plusDays
(
1
);
}
return
dates
;
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java
View file @
afa3dcc4
...
@@ -327,4 +327,24 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
...
@@ -327,4 +327,24 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
}*/
}*/
super
.
doListAfter
(
query
,
list
,
context
);
super
.
doListAfter
(
query
,
list
,
context
);
}
}
/**
* 从新生成已处理的绩效考勤核查数据
* @param query
* @return
*/
@PostMapping
({
"doReprocess"
})
public
Rest
<
String
>
doReprocess
(
@RequestBody
AttendanceRecordErrorQuery
query
)
{
Rest
<
String
>
ret
=
new
Rest
();
Context
context
=
this
.
getContext
();
Thread
thread
=
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
service
.
doReprocess
(
query
,
context
);
}
});
thread
.
start
();
return
Rest
.
ok
();
}
}
}
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