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
55415e8b
Commit
55415e8b
authored
Jan 08, 2024
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考勤汇总时不统计已离职的员工
parent
992a5e30
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
86 additions
and
17 deletions
+86
-17
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
...ortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
+10
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
...ortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/VacationBalanceSummaryVo.java
.../module/attendance/model/vo/VacationBalanceSummaryVo.java
+9
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
...le/attendance/service/impl/AttendanceStatServiceImpl.java
+40
-4
attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceSummaryMapper.xml
...rces/sqlmap/module/attendance/AttendanceSummaryMapper.xml
+19
-13
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
View file @
55415e8b
...
@@ -2,6 +2,8 @@ package com.mortals.xhx.module.attendance.model.vo;
...
@@ -2,6 +2,8 @@ package com.mortals.xhx.module.attendance.model.vo;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
/**
/**
* 考勤异常汇总
* 考勤异常汇总
*/
*/
...
@@ -40,4 +42,12 @@ public class ErrorSummaryVo {
...
@@ -40,4 +42,12 @@ public class ErrorSummaryVo {
* 考勤汇总-早退(次)
* 考勤汇总-早退(次)
*/
*/
private
Integer
overtimeTimes
;
private
Integer
overtimeTimes
;
/**
* 员工状态(1.正式,2.试用,3.离职)
*/
private
Integer
status
;
/**
* 离职时间
*/
private
Date
leaveDate
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
View file @
55415e8b
...
@@ -46,4 +46,12 @@ public class LeaveSummaryVo {
...
@@ -46,4 +46,12 @@ public class LeaveSummaryVo {
* 结束时间
* 结束时间
*/
*/
private
Date
endTime
;
private
Date
endTime
;
/**
* 员工状态(1.正式,2.试用,3.离职)
*/
private
Integer
status
;
/**
* 离职时间
*/
private
Date
leaveDate
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/VacationBalanceSummaryVo.java
View file @
55415e8b
...
@@ -3,6 +3,7 @@ package com.mortals.xhx.module.attendance.model.vo;
...
@@ -3,6 +3,7 @@ package com.mortals.xhx.module.attendance.model.vo;
import
lombok.Data
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
/**
* 假期余额汇总
* 假期余额汇总
...
@@ -129,4 +130,12 @@ public class VacationBalanceSummaryVo {
...
@@ -129,4 +130,12 @@ public class VacationBalanceSummaryVo {
* 探亲假(天)
* 探亲假(天)
*/
*/
private
BigDecimal
homeLeave
;
private
BigDecimal
homeLeave
;
/**
* 员工状态(1.正式,2.试用,3.离职)
*/
private
Integer
status
;
/**
* 离职时间
*/
private
Date
leaveDate
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
View file @
55415e8b
...
@@ -8,10 +8,7 @@ import com.mortals.framework.model.Result;
...
@@ -8,10 +8,7 @@ import com.mortals.framework.model.Result;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.common.code.GoWorkResultEnum
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.common.code.LeaveTypeEnum
;
import
com.mortals.xhx.common.code.OffWorkResultEnum
;
import
com.mortals.xhx.common.code.ProcessStatusEnum
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.pdu.HomeStatInfo
;
import
com.mortals.xhx.common.pdu.HomeStatInfo
;
import
com.mortals.xhx.common.utils.BeanUtil
;
import
com.mortals.xhx.common.utils.BeanUtil
;
...
@@ -225,6 +222,19 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -225,6 +222,19 @@ 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
))
{
for
(
VacationBalanceSummaryVo
item
:
vacationBalanceSummaryVoList
)
{
for
(
VacationBalanceSummaryVo
item
:
vacationBalanceSummaryVoList
)
{
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
//离职状态时判断当前汇总日期是否在离职后
if
(
item
.
getLeaveDate
()!=
null
){
String
leaveDateStr
=
DateUtils
.
getStrDate
(
item
.
getLeaveDate
());
if
(
DateUtils
.
StrToDate
(
leaveDateStr
).
compareTo
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()))
<
0
){
//离职日期在统计日期之前不统计
continue
;
}
}
else
{
//没有离职日期也不统计
continue
;
}
}
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
==
null
)
{
if
(
temp
==
null
)
{
AttendanceStatEntity
attendanceStatEntity
=
new
AttendanceStatEntity
();
AttendanceStatEntity
attendanceStatEntity
=
new
AttendanceStatEntity
();
...
@@ -255,6 +265,19 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -255,6 +265,19 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
List
<
ErrorSummaryVo
>
errorSummaryVoList
=
attendanceSummaryDao
.
getErrorSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
errorSummaryVoList
))
{
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
for
(
ErrorSummaryVo
item
:
errorSummaryVoList
)
{
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
//离职状态时判断当前汇总日期是否在离职后
if
(
item
.
getLeaveDate
()!=
null
){
String
leaveDateStr
=
DateUtils
.
getStrDate
(
item
.
getLeaveDate
());
if
(
DateUtils
.
StrToDate
(
leaveDateStr
).
compareTo
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()))
<
0
){
//离职日期在统计日期之前不统计
continue
;
}
}
else
{
//没有离职日期也不统计
continue
;
}
}
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
!=
null
)
{
if
(
temp
!=
null
)
{
BeanUtils
.
copyProperties
(
item
,
temp
,
BeanUtil
.
getNullPropertyNames
(
item
));
BeanUtils
.
copyProperties
(
item
,
temp
,
BeanUtil
.
getNullPropertyNames
(
item
));
...
@@ -314,6 +337,19 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
...
@@ -314,6 +337,19 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
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
)
{
if
(
item
.
getStatus
()
==
StaffSatusEnum
.
离职
.
getValue
()){
//离职状态时判断当前汇总日期是否在离职后
if
(
item
.
getLeaveDate
()!=
null
){
String
leaveDateStr
=
DateUtils
.
getStrDate
(
item
.
getLeaveDate
());
if
(
DateUtils
.
StrToDate
(
leaveDateStr
).
compareTo
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()))
<
0
){
//离职日期在统计日期之前不统计
continue
;
}
}
else
{
//没有离职日期也不统计
continue
;
}
}
String
attendanceSummary
=
""
;
String
attendanceSummary
=
""
;
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
!=
null
)
{
if
(
temp
!=
null
)
{
...
...
attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceSummaryMapper.xml
View file @
55415e8b
...
@@ -12,6 +12,8 @@
...
@@ -12,6 +12,8 @@
s.workNum,
s.workNum,
s.deptId,
s.deptId,
s.deptName,
s.deptName,
s.`status`,
s.leaveDate,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%Y') as `year`,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%Y') as `year`,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%m') as `month`,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%m') as `month`,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%d') as `day`,
DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%d') as `day`,
...
@@ -46,24 +48,26 @@
...
@@ -46,24 +48,26 @@
<!-- 汇总当前日期请假情况 -->
<!-- 汇总当前日期请假情况 -->
<select
id=
"getLeaveSummary"
parameterType=
"com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery"
resultType=
"com.mortals.xhx.module.attendance.model.vo.LeaveSummaryVo"
>
<select
id=
"getLeaveSummary"
parameterType=
"com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery"
resultType=
"com.mortals.xhx.module.attendance.model.vo.LeaveSummaryVo"
>
SELECT
SELECT
leavePersonId AS staffId,
r.leavePersonId AS staffId,
leavePerson AS staffName,
r.leavePerson AS staffName,
leaveType,
ANY_VALUE(s.`status`) as `status`,
IFNULL(sum(duration),0) as duration,
ANY_VALUE(s.leaveDate) as leaveDate,
r.leaveType,
IFNULL(sum(r.duration),0) as duration,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%Y')) as `year`,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%Y')) as `year`,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%m')) as `month`,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%m')) as `month`,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%d')) as `day`,
ANY_VALUE(DATE_FORMAT(STR_TO_DATE(#{summaryTime},'%Y-%m-%d'),'%d')) as `day`,
ANY_VALUE(startTime) as startTime,
ANY_VALUE(
r.
startTime) as startTime,
ANY_VALUE(endTime) as endTime
ANY_VALUE(
r.
endTime) as endTime
FROM
FROM
mortals_xhx_attendance_leave_record
mortals_xhx_attendance_leave_record
r INNER JOIN mortals_xhx_staff s ON r.leavePersonId = s.id
WHERE
WHERE
auditResult = 1
r.
auditResult = 1
AND processStatus = 2
AND
r.
processStatus = 2
AND STR_TO_DATE(date_format(startTime,'%Y-%m-%d'),'%Y-%m-%d')
<![CDATA[ <= ]]>
STR_TO_DATE(#{summaryTime},'%Y-%m-%d')
AND STR_TO_DATE(date_format(
r.
startTime,'%Y-%m-%d'),'%Y-%m-%d')
<![CDATA[ <= ]]>
STR_TO_DATE(#{summaryTime},'%Y-%m-%d')
AND STR_TO_DATE(date_format(endTime,'%Y-%m-%d'),'%Y-%m-%d')
<![CDATA[ >= ]]>
STR_TO_DATE(#{summaryTime},'%Y-%m-%d')
AND STR_TO_DATE(date_format(
r.
endTime,'%Y-%m-%d'),'%Y-%m-%d')
<![CDATA[ >= ]]>
STR_TO_DATE(#{summaryTime},'%Y-%m-%d')
<if
test=
"staffId != null and staffId!=''"
>
AND leavePersonId = #{staffId}
</if>
<if
test=
"staffId != null and staffId!=''"
>
AND leavePersonId = #{staffId}
</if>
GROUP BY
leavePersonId,leavePerson,
leaveType
GROUP BY
r.leavePersonId,r.leavePerson,r.
leaveType
</select>
</select>
...
@@ -72,6 +76,8 @@
...
@@ -72,6 +76,8 @@
select
select
e.staffId,
e.staffId,
e.staffName,
e.staffName,
ANY_VALUE(s.`status`) as `status`,
ANY_VALUE(s.leaveDate) as leaveDate,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%Y')) as `year`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%Y')) as `year`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%m')) as `month`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%m')) as `month`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%d')) as `day`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%d')) as `day`,
...
@@ -80,7 +86,7 @@
...
@@ -80,7 +86,7 @@
sum(case processResult when 1 then 1 ELSE 0 end) as overtimeTimes,
sum(case processResult when 1 then 1 ELSE 0 end) as overtimeTimes,
sum(case processResult when 2 then 1 ELSE 0 end) as lateTimes
sum(case processResult when 2 then 1 ELSE 0 end) as lateTimes
from
from
mortals_xhx_attendance_record_error e
mortals_xhx_attendance_record_error e
INNER JOIN mortals_xhx_staff s ON e.staffId = s.id
where
where
processResult != 4
processResult != 4
and e.errorDateTime
<![CDATA[ >= ]]>
STR_TO_DATE(left(concat(#{summaryTime},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
and e.errorDateTime
<![CDATA[ >= ]]>
STR_TO_DATE(left(concat(#{summaryTime},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
...
...
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