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
5332d7a4
Commit
5332d7a4
authored
Aug 10, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.scsmile.cn/zxf/attendance-performance-platform
parents
9aa2b17f
479f71df
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
223 additions
and
94 deletions
+223
-94
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
...ui/admin/src/views/attendance/record/error/drawershow.vue
+20
-8
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
...nager-ui/admin/src/views/attendance/record/error/list.vue
+9
-15
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
...om/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dingmsg/api/DingMessageController.java
.../module/attendance/dingmsg/api/DingMessageController.java
+17
-12
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java
...x/module/attendance/model/vo/AttendanceRecordErrorVo.java
+12
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
...ortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
+1
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
...ortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
+11
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
...ndance/service/impl/AttendanceRecordErrorServiceImpl.java
+65
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
...le/attendance/service/impl/AttendanceStatServiceImpl.java
+26
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java
...odule/attendance/web/AttendanceRecordErrorController.java
+6
-51
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java
...s/xhx/module/attendance/web/AttendanceStatController.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendRecordService.java
...hx/module/perform/service/PerformAttendRecordService.java
+5
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java
.../perform/service/impl/PerformAttendRecordServiceImpl.java
+45
-0
attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceSummaryMapper.xml
...rces/sqlmap/module/attendance/AttendanceSummaryMapper.xml
+4
-1
No files found.
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
View file @
5332d7a4
...
...
@@ -19,18 +19,23 @@
<span
class=
"ml10"
>
修改为
</span>
</div>
<div
class=
"mt10"
>
<!-- 处理异常状态 -->
<!--
<Field
label=
""
v-model=
"dealParams.processResult"
type=
"select"
:enumData=
"dict.errorStatus"
/>
-->
<!-- 处理异常状态 -->
<el-select
v-model=
"dealParams.processResult"
>
<el-option
v-for=
'($label, $value) in dict.errorStatus'
:key=
"$value"
:label=
"$label"
:value=
"$
label
"
>
:value=
"$
value
"
>
</el-option>
</el-select>
<!-- 早退/迟到 -->
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
v-model=
"duration"
v-if=
"dealParams.processResult == '
迟到'|| dealParams.processResult == '早退
'"
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
v-model=
"duration"
v-if=
"dealParams.processResult == '
1'|| dealParams.processResult == '2
'"
class=
"ml20"
type=
"number"
>
<template
slot=
"append"
>
分钟
</
template
>
</el-input>
...
...
@@ -44,7 +49,7 @@
<div
class=
"mt20"
>
<el-button
type=
"primary"
@
click=
"saveForm"
>
确定
</el-button>
<el-button
@
click=
"cancleFn"
>
取消
</el-button>
</div>
</div>
</div>
</el-drawer>
...
...
@@ -54,7 +59,7 @@
export
default
{
name
:
"
AttendanceRecordDetail
"
,
created
()
{
},
data
()
{
return
{
...
...
@@ -65,6 +70,7 @@
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
processResult
"
],
// 表单校验
rules
:
{
staffName
:
[
...
...
@@ -77,6 +83,8 @@
},
dealParams
:{
remark
:
''
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
...
...
@@ -131,8 +139,10 @@
this
.
$message
.
error
(
'
请选择处理结果
'
)
return
}
if
(
this
.
duration
&&
(
this
.
dealParams
.
processResult
==
'
早退
'
||
this
.
dealParams
.
processResult
==
'
迟到
'
)){
this
.
dealParams
.
processResult
=
this
.
dealParams
.
processResult
+
this
.
duration
+
'
分钟
'
this
.
dealParams
.
errorStatus
=
this
.
dealParams
.
processResult
if
(
this
.
duration
&&
(
this
.
dealParams
.
processResult
==
'
1
'
||
this
.
dealParams
.
processResult
==
'
2
'
)){
this
.
dealParams
.
processResult
=
this
.
dict
.
errorStatus
[
this
.
dealParams
.
processResult
]
+
this
.
duration
+
'
分钟
'
this
.
dealParams
.
durtion
=
this
.
duration
}
// 保存结果处理
this
.
$post
(
this
.
urls
.
saveUrl
,
this
.
dealParams
).
then
(
res
=>
{
...
...
@@ -145,6 +155,8 @@
this
.
open
=
false
this
.
dealParams
=
{
remark
:
''
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
View file @
5332d7a4
...
...
@@ -91,14 +91,12 @@
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
label
:
"
全部部门
"
},
{
name
:
"
groupId
"
,
type
:
"
select
"
,
label
:
"
全部考勤组
"
,
fuzzy
:
false
label
:
"
全部考勤组
"
},
/* {
name: "classId",
...
...
@@ -109,38 +107,34 @@
{
name
:
"
errorStatus
"
,
type
:
"
select
"
,
label
:
"
全部异常状态
"
,
fuzzy
:
false
label
:
"
全部异常状态
"
},
{
name
:
"
processStatus
"
,
type
:
"
select
"
,
label
:
"
全部处理状态
"
,
fuzzy
:
false
label
:
"
全部处理状态
"
},
{
name
:
'
attendanceDat
eStart
'
,
name
:
'
errorDateTim
eStart
'
,
type
:
"
date
"
,
label
:
"
异常开始时间
"
,
fuzzy
:
false
label
:
"
异常开始时间
"
},
{
name
:
'
attendanceDateEnd
'
,
type
:
"
date
"
,
label
:
"
异常结束时间
"
,
fuzzy
:
false
label
:
"
errorDateTimeEnd
"
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
,
fuzzy
:
fals
e
fuzzy
:
tru
e
},
{
name
:
"
phoneNumber
"
,
type
:
"
text
"
,
label
:
"
手机号
"
,
fuzzy
:
fals
e
fuzzy
:
tru
e
},
],
columns
:
[
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
View file @
5332d7a4
...
...
@@ -33,7 +33,7 @@ public class AttendanceSummaryTaskImpl implements ITaskExcuteService {
}
cacheService
.
set
(
SUMMARY_TASK_KEY
,
"true"
,
600
);
attendanceStatService
.
doAttendanceSummary
(
null
);
cacheService
.
set
(
SUMMARY_TASK_KEY
,
"false"
,
60
);
cacheService
.
expire
(
SUMMARY_TASK_KEY
,
1
);
}
catch
(
Exception
e
){
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dingmsg/api/DingMessageController.java
View file @
5332d7a4
...
...
@@ -333,6 +333,7 @@ public class DingMessageController {
if
(
ObjectUtils
.
isEmpty
(
balanceEntity
)){
//先判断数据库里没有这个人的请假记录就初始化对象
attendanceVacationBalanceEntity
.
initAttrValue
();
}
attendanceVacationBalanceEntity
.
setRemark
(
processInstanceId
);
// 将钉钉的事物id存入假期余额 用于判断是否为同一条请假数据
attendanceVacationBalanceEntity
.
setStaffId
(
staffEntity
.
getId
());
attendanceVacationBalanceEntity
.
setStaffName
(
staffEntity
.
getName
());
attendanceVacationBalanceEntity
.
setDeptId
(
staffEntity
.
getDeptId
());
...
...
@@ -574,19 +575,23 @@ public class DingMessageController {
//审批状态为同意过后再修改假期余额
if
(
result
.
getResult
().
compareToIgnoreCase
(
"AGREE"
)
==
0
){
//更新假期余额表
if
(
ObjectUtils
.
isEmpty
(
balanceEntity
)){
attendanceVacationBalanceEntity
.
setCreateUserId
(
1L
);
attendanceVacationBalanceEntity
.
setCreateTime
(
new
Date
());
balanceService
.
save
(
attendanceVacationBalanceEntity
);
}
else
{
//更新对象必须传入id
attendanceVacationBalanceEntity
.
setId
(
balanceEntity
.
getId
());
attendanceVacationBalanceEntity
.
setUpdateUserId
(
1L
);
attendanceVacationBalanceEntity
.
setUpdateTime
(
new
Date
());
balanceService
.
update
(
attendanceVacationBalanceEntity
);
AttendanceVacationBalanceEntity
entity
=
balanceService
.
selectOne
(
new
AttendanceVacationBalanceQuery
().
remark
(
processInstanceId
));
if
(
ObjectUtils
.
isEmpty
(
entity
)){
//当表中没有这条processInstanceId关联的数据表示没有扣除假期(钉钉会推送两条余额数据过来 需要加这个判断)
//更新假期余额表
if
(
ObjectUtils
.
isEmpty
(
balanceEntity
)){
attendanceVacationBalanceEntity
.
setCreateUserId
(
1L
);
attendanceVacationBalanceEntity
.
setCreateTime
(
new
Date
());
balanceService
.
save
(
attendanceVacationBalanceEntity
);
}
else
{
//更新对象必须传入id
attendanceVacationBalanceEntity
.
setId
(
balanceEntity
.
getId
());
attendanceVacationBalanceEntity
.
setUpdateUserId
(
1L
);
attendanceVacationBalanceEntity
.
setUpdateTime
(
new
Date
());
balanceService
.
update
(
attendanceVacationBalanceEntity
);
}
}
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/AttendanceRecordErrorVo.java
View file @
5332d7a4
...
...
@@ -24,4 +24,16 @@ public class AttendanceRecordErrorVo extends BaseEntityLong {
*/
private
List
<
AttendanceRecordErrorEntity
>
recordErrorEntities
;
/** 开始 异常时间 */
private
String
errorDateTimeStart
;
/** 结束 异常时间 */
private
String
errorDateTimeEnd
;
private
Integer
duration
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/ErrorSummaryVo.java
View file @
5332d7a4
...
...
@@ -31,6 +31,7 @@ public class ErrorSummaryVo {
* 缺卡次数
*/
private
Integer
morningTimes
;
private
Integer
afternoonTimes
;
/**
* 考勤汇总-迟到(次)
*/
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/vo/LeaveSummaryVo.java
View file @
5332d7a4
package
com.mortals.xhx.module.attendance.model.vo
;
import
com.mortals.framework.annotation.Excel
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 请假汇总
*/
...
...
@@ -35,4 +38,12 @@ public class LeaveSummaryVo {
* 时长,单位秒
*/
private
Integer
duration
;
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
View file @
5332d7a4
package
com.mortals.xhx.module.attendance.service.impl
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.busiz.h5.req.AttendSaveReq
;
import
com.mortals.xhx.busiz.h5.web.ApiWebPerformController
;
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.AttendanceClassEntity
;
import
com.mortals.xhx.module.attendance.service.AttendanceClassDetailService
;
import
com.mortals.xhx.module.attendance.service.AttendanceClassService
;
import
com.mortals.xhx.module.perform.service.PerformAttendRecordService
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
...
...
@@ -34,9 +41,13 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
@Autowired
private
AttendanceClassService
attendanceClassService
;
@Autowired
private
PerformAttendRecordService
attendRecordService
;
@Autowired
private
ApiWebPerformController
apiWebPerformController
;
@Autowired
private
StaffService
staffService
;
@Override
...
...
@@ -65,9 +76,62 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
});
}
@Override
protected
void
updateAfter
(
AttendanceRecordErrorEntity
entity
,
Context
context
)
throws
AppException
{
if
(
YesNoEnum
.
YES
.
getValue
()
==
entity
.
getProcessStatus
())
{
//判断后打绩效
String
ruleCode
=
""
;
if
(
ErrorStatusEnum
.
早退
.
getValue
()
==
entity
.
getErrorStatus
())
{
//判断时间差定义
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
if
(
ErrorStatusEnum
.
迟到
.
getValue
()
==
entity
.
getErrorStatus
())
{
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
if
(
ErrorStatusEnum
.
缺卡
.
getValue
()
==
entity
.
getErrorStatus
())
{
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
(
"考勤:"
+
ErrorStatusEnum
.
getByValue
(
entity
.
getErrorStatus
()).
getDesc
());
attendSaveReq
.
setHappenTime
(
entity
.
getErrorDateTime
());
attendSaveReq
.
setRuleCode
(
ruleCode
);
attendSaveReq
.
setStaffId
(
entity
.
getStaffId
());
attendRecordService
.
saveAttend
(
attendSaveReq
,
context
);
}
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
View file @
5332d7a4
...
...
@@ -27,6 +27,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceStatEntity;
import
com.mortals.xhx.module.attendance.service.AttendanceStatService
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -185,12 +186,32 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
//汇总当前日期请假情况
List
<
LeaveSummaryVo
>
leaveSummaryVoList
=
attendanceSummaryDao
.
getLeaveSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
leaveSummaryVoList
))
{
BigDecimal
hour
=
new
BigDecimal
(
3600
);
BigDecimal
day
=
new
BigDecimal
(
3600
*
24
);
BigDecimal
oneDay
=
new
BigDecimal
(
1
);
for
(
LeaveSummaryVo
item
:
leaveSummaryVoList
)
{
String
attendanceSummary
=
""
;
AttendanceStatEntity
temp
=
this
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
item
.
getStaffId
()).
year
(
item
.
getYear
()).
month
(
item
.
getMonth
()).
day
(
item
.
getDay
()));
if
(
temp
!=
null
)
{
BigDecimal
leaveTime
=
new
BigDecimal
(
item
.
getDuration
()).
divide
(
hour
,
1
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
leaveTime
=
new
BigDecimal
(
item
.
getDuration
()).
divide
(
day
,
1
,
BigDecimal
.
ROUND_HALF_DOWN
);
String
endStr
=
DateUtils
.
getStrDate
(
item
.
getEndTime
());
String
dayStr
=
query
.
getSummaryTime
();
if
(
endStr
.
equals
(
dayStr
)){
if
(
leaveTime
.
compareTo
(
oneDay
)>=
0
){
// 整数部分
BigDecimal
integerPart
=
leaveTime
.
setScale
(
0
,
RoundingMode
.
DOWN
);
// 小数部分
BigDecimal
fractionalPart
=
leaveTime
.
subtract
(
integerPart
);
if
(
fractionalPart
.
compareTo
(
new
BigDecimal
(
0
))==
0
){
leaveTime
=
oneDay
;
}
else
{
leaveTime
=
fractionalPart
;
}
}
}
else
{
if
(
leaveTime
.
compareTo
(
oneDay
)>=
0
){
leaveTime
=
oneDay
;
}
}
temp
.
setGoTimes
(
0
);
//默认只要有请假,当天就不算全勤
LeaveTypeEnum
leaveTypeEnum
=
LeaveTypeEnum
.
getByValue
(
item
.
getLeaveType
());
if
(
leaveTypeEnum
==
null
){
...
...
@@ -245,7 +266,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
}
else
{
staffStat
.
setCreateTime
(
new
Date
(
));
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()
));
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
}
...
...
@@ -282,7 +303,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
staffStat
.
setUpdateTime
(
new
Date
());
attendanceStaffStatService
.
update
(
staffStat
);
}
else
{
staffStat
.
setCreateTime
(
new
Date
(
));
staffStat
.
setCreateTime
(
DateUtils
.
StrToDate
(
query
.
getSummaryTime
()
));
staffStat
.
setCreateUserId
(
1
l
);
attendanceStaffStatService
.
save
(
staffStat
);
}
...
...
@@ -326,4 +347,5 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
}
return
result
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordErrorController.java
View file @
5332d7a4
...
...
@@ -143,22 +143,20 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
for
(
AttendanceRecordErrorEntity
recordErrorEntity
:
entity
.
getRecordErrorEntities
())
{
AttendanceRecordErrorEntity
updateEntity
=
new
AttendanceRecordErrorEntity
();
updateEntity
.
setId
(
recordErrorEntity
.
getId
());
updateEntity
.
setErrorDateTime
(
recordErrorEntity
.
getErrorDateTime
());
updateEntity
.
setGoOffDateTime
(
recordErrorEntity
.
getGoOffDateTime
());
updateEntity
.
setProcessStatus
(
entity
.
getProcessStatus
());
updateEntity
.
setGoOffDateTime
(
null
);
updateEntity
.
setProcessResult
(
entity
.
getProcessResult
());
updateEntity
.
setStaffId
(
recordErrorEntity
.
getStaffId
());
updateEntity
.
setErrorStatus
(
entity
.
getErrorStatus
());
updateEntity
.
setOpertor
(
context
.
getUser
().
getRealName
());
updateEntity
.
setOperDateTime
(
new
Date
());
updateEntity
.
setRemark
(
entity
.
getRemark
());
updateEntity
.
setUpdateTime
(
new
Date
());
updateEntity
.
setUpdateUserId
(
this
.
getContextUserId
(
getContext
()));
this
.
service
.
update
(
recordErrorEntity
,
getContext
());
updateEntity
.
setDuration
(
entity
.
getDuration
());
this
.
service
.
update
(
updateEntity
,
getContext
());
}
/*
if(!ObjectUtils.isEmpty(entity.getRecordErrorEntities())){
this.batchSave(entity.getRecordErrorEntities());
}
*/
for
(
AttendanceRecordErrorEntity
item
:
entity
.
getRecordErrorEntities
())
{
DateUtils
.
convertTime2Str
(
item
.
getErrorDateTime
().
getTime
(),
DateUtils
.
P_yyyy_MM_dd
);
...
...
@@ -226,49 +224,6 @@ public class AttendanceRecordErrorController extends BaseCRUDJsonBodyMappingCont
}
@Override
protected
int
saveAfter
(
AttendanceRecordErrorEntity
entity
,
Map
<
String
,
Object
>
model
,
Context
context
)
throws
AppException
{
if
(
YesNoEnum
.
YES
.
getValue
()
==
entity
.
getProcessStatus
())
{
//已经处理,根据错误状态提交考勤绩效
String
ruleCode
=
""
;
if
(
ErrorStatusEnum
.
早退
.
getValue
()
==
entity
.
getErrorStatus
())
{
//判断时间差定义
//entity.getErrorStatus()
}
/* 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();
attendSaveReq.setErrorResult(entity.getRemark());
attendSaveReq.setExt();
attendSaveReq.setWorkNum();
attendSaveReq.setTitle();
attendSaveReq.setHappenTime(entity.getErrorDateTime());
attendSaveReq.setRuleCode(ruleCode);
attendSaveReq.setRuleId();
attendSaveReq.setPhone();
attendSaveReq.setPerformType();
attendSaveReq.setStaffId();*/
// apiWebPerformController.attendSave(attendSaveReq);
}
return
super
.
saveAfter
(
entity
,
model
,
context
);
}
@Override
protected
int
editAfter
(
Long
id
,
Map
<
String
,
Object
>
model
,
AttendanceRecordErrorEntity
entity
,
Context
context
)
throws
AppException
{
this
.
addDict
(
model
,
"errorStatus"
,
paramService
.
getParamBySecondOrganize
(
"AttendanceRecordDetail"
,
"goWorkResult"
));
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java
View file @
5332d7a4
...
...
@@ -108,9 +108,9 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController<
}
else
{
service
.
doAttendanceSummary
(
query
);
}
cacheService
.
expire
(
SUMMARY_TASK_KEY
,
1
);
}
});
cacheService
.
set
(
SUMMARY_TASK_KEY
,
"false"
,
60
);
model
.
put
(
"message_info"
,
"开始执行考勤汇总,请稍后查看"
);
}
catch
(
Exception
var9
)
{
code
=
-
1
;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendRecordService.java
View file @
5332d7a4
package
com.mortals.xhx.module.perform.service
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.busiz.h5.req.AttendSaveReq
;
import
com.mortals.xhx.module.perform.model.PerformAttendRecordEntity
;
import
com.mortals.xhx.module.perform.dao.PerformAttendRecordDao
;
/**
...
...
@@ -23,4 +25,7 @@ public interface PerformAttendRecordService extends ICRUDService<PerformAttendRe
*/
void
updateProcessStatus
(
Long
id
,
Integer
status
)
throws
AppException
;
void
saveAttend
(
AttendSaveReq
req
,
Context
context
)
throws
AppException
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java
View file @
5332d7a4
package
com.mortals.xhx.module.perform.service.impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.xhx.busiz.h5.req.AttendSaveReq
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.common.utils.BeanUtil
;
import
com.mortals.xhx.module.attendance.model.*
;
...
...
@@ -12,7 +13,9 @@ import com.mortals.xhx.module.check.model.CheckAttendRecordEntity;
import
com.mortals.xhx.module.check.service.CheckAttendRecordService
;
import
com.mortals.xhx.module.dept.model.DeptEntity
;
import
com.mortals.xhx.module.dept.service.DeptService
;
import
com.mortals.xhx.module.perform.model.PerformRulesCategoryEntity
;
import
com.mortals.xhx.module.perform.model.PerformRulesEntity
;
import
com.mortals.xhx.module.perform.service.PerformRulesCategoryService
;
import
com.mortals.xhx.module.perform.service.PerformRulesService
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.service.StaffService
;
...
...
@@ -55,6 +58,8 @@ public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<Perf
private
AttendanceClassService
classService
;
@Autowired
private
AttendanceClassDetailService
classDetailService
;
@Autowired
private
PerformRulesCategoryService
categoryService
;
@Autowired
private
PerformRulesService
rulesService
;
...
...
@@ -202,4 +207,44 @@ public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<Perf
dao
.
update
(
update
);
}
@Override
public
void
saveAttend
(
AttendSaveReq
req
,
Context
context
)
throws
AppException
{
//考勤保存
//通过手机号码查询员工属性
PerformRulesEntity
rule
=
getRule
(
req
.
getRuleCode
());
StaffEntity
staffEntity
=
staffService
.
getCache
(
req
.
getStaffId
().
toString
());
PerformAttendRecordEntity
recordEntity
=
new
PerformAttendRecordEntity
();
recordEntity
.
initAttrValue
();
recordEntity
.
setSubMethod
(
SubMethodEnum
.
系统自动
.
getValue
());
BeanUtils
.
copyProperties
(
req
,
recordEntity
);
recordEntity
.
setStaffId
(
staffEntity
.
getId
());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setDeptId
(
staffEntity
.
getDeptId
());
recordEntity
.
setDeptName
(
staffEntity
.
getDeptName
());
recordEntity
.
setSubAddType
(
rule
.
getSubAddType
());
recordEntity
.
setScore
(
rule
.
getScore
());
recordEntity
.
setRuleId
(
rule
.
getId
());
recordEntity
.
setRuleName
(
rule
.
getName
());
recordEntity
.
setCategoryId
(
rule
.
getCategoryId
());
recordEntity
.
setCategoryName
(
rule
.
getCategoryName
());
recordEntity
.
setDeductPerson
(
"系统管理员"
);
recordEntity
.
setDeductTime
(
new
Date
());
recordEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
recordEntity
.
setCreateTime
(
new
Date
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
PerformRulesCategoryEntity
categoryEntity
=
categoryService
.
get
(
rule
.
getCategoryId
());
recordEntity
.
setCategoryName
(
categoryEntity
==
null
?
""
:
categoryEntity
.
getName
());
this
.
save
(
recordEntity
);
}
private
PerformRulesEntity
getRule
(
String
ruleCode
)
{
PerformRulesEntity
rule
=
rulesService
.
getCache
(
ruleCode
);
if
(
ObjectUtils
.
isEmpty
(
rule
))
throw
new
AppException
(
String
.
format
(
"当前手机号码未找到匹配的员工!rule:%s"
,
ruleCode
));
return
rule
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/attendance/AttendanceSummaryMapper.xml
View file @
5332d7a4
...
...
@@ -50,7 +50,9 @@
IFNULL(sum(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'),'%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(endTime) as endTime
FROM
mortals_xhx_attendance_leave_record
WHERE
...
...
@@ -70,6 +72,7 @@
ANY_VALUE(DATE_FORMAT(errorDateTime,'%Y')) as `year`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%m')) as `month`,
ANY_VALUE(DATE_FORMAT(errorDateTime,'%d')) as `day`,
sum(case errorStatus when 0 then 1 ELSE 0 end) as morningTimes,
sum(case errorStatus when 0 then 1 ELSE 0 end) as afternoonTimes,
sum(case errorStatus when 1 then 1 ELSE 0 end) as overtimeTimes,
sum(case errorStatus when 2 then 1 ELSE 0 end) as lateTimes
...
...
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