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
8303f38f
Commit
8303f38f
authored
Aug 16, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
44ce0025
36b438c9
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
348 additions
and
27 deletions
+348
-27
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
...ui/admin/src/views/attendance/leave/record/drawershow.vue
+9
-1
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/list.vue
...nager-ui/admin/src/views/attendance/leave/record/list.vue
+1
-1
attendance-performance-manager-ui/admin/src/views/attendance/record/list.vue
...nce-manager-ui/admin/src/views/attendance/record/list.vue
+27
-17
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
...com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
+281
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/req/TimeReq.java
...main/java/com/mortals/xhx/busiz/dingtalk/req/TimeReq.java
+27
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dingmsg/api/DingMessageController.java
.../module/attendance/dingmsg/api/DingMessageController.java
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
...le/attendance/service/impl/AttendanceStatServiceImpl.java
+1
-1
No files found.
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
View file @
8303f38f
...
...
@@ -280,7 +280,15 @@ export default {
changedate
(
val
)
{
if
(
this
.
form
.
startTime
&&
this
.
form
.
endTime
)
{
if
(
this
.
form
.
endTime
.
valueOf
()
>
this
.
form
.
startTime
.
valueOf
())
{
this
.
form
.
duration
=
getSec
(
this
.
form
.
startTime
,
this
.
form
.
endTime
);
// this.form.duration = getSec(this.form.startTime, this.form.endTime);
this
.
$post
(
"
/attendance/getTimeCount
"
,
{
startTime
:
this
.
form
.
startTime
,
endTime
:
this
.
form
.
endTime
,
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
form
.
duration
=
res
.
data
*
3600
;
}
});
}
else
{
this
.
$message
.
closeAll
();
this
.
$message
.
error
(
"
结束日期需大于请假日期
"
);
...
...
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/list.vue
View file @
8303f38f
...
...
@@ -147,7 +147,7 @@ export default {
return
(
(
row
.
sourceDingTime
?
row
.
sourceDingTime
:
"
--
"
)
+
(
row
.
duration
?
"
(
"
+
(
row
.
duration
/
60
/
60
/
9
).
toFixed
(
2
)
+
"
天
"
+
"
)
"
?
"
(
"
+
(
row
.
duration
/
60
/
60
/
8
).
toFixed
(
2
)
+
"
天
"
+
"
)
"
:
"
(--)
"
)
);
},
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/list.vue
View file @
8303f38f
...
...
@@ -18,9 +18,7 @@
</div>
<div>
出勤率
<span
class=
"num"
>
{{
attendStatInfo
.
attPercentage
}}
</span>
<span
class=
"num"
>
{{
attendStatInfo
.
attPercentage
}}
</span>
</div>
</div>
...
...
@@ -34,7 +32,7 @@
</div>
<div>
缺卡
<span
class=
"num"
>
{{
attendStatInfo
.
lackOfCards
}}
</span>
<span
class=
"num"
>
{{
attendStatInfo
.
lackOfCards
}}
</span>
</div>
</div>
</div>
...
...
@@ -129,13 +127,14 @@
<el-checkbox
v-for=
"(item, index) in setcolum"
:key=
"index"
:label=
"item.
label
"
:label=
"item.
prop
"
>
{{
item
.
label
}}
</el-checkbox>
</el-checkbox-group>
<div
class=
"mt20"
style=
"text-align:right"
>
<el-button>
取消
</el-button>
<el-button
type=
"primary"
>
确定
</el-button>
<el-button
@
click=
"handleCancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</el-button>
</div>
</el-dialog>
<!-- 上传 -->
...
...
@@ -207,17 +206,25 @@ export default {
},
},
created
()
{
this
.
$post
(
"
/attendance/record/stat
"
,
{}).
then
((
res
)
=>
{
if
(
res
.
code
===
1
)
{
this
.
attendStatInfo
=
res
.
data
;
}
});
this
.
initalArr
=
this
.
config
.
columns
;
},
methods
:
{
// 表格设置弹窗取消操作
handleCancel
()
{
this
.
checkList
=
[];
this
.
isdialog
=
false
;
},
// 表格设置提交操作
handleSubmit
()
{
this
.
doExport
();
this
.
isdialog
=
false
;
},
// 表格接收数据后
afterRender
(
data
)
{
let
addobjArr
=
[];
...
...
@@ -335,7 +342,9 @@ export default {
if
(
this
.
selection
.
length
>
0
)
{
params
[
"
idList
"
]
=
this
.
selection
;
}
if
(
this
.
checkList
.
length
>
0
)
{
params
[
"
properties
"
]
=
this
.
checkList
;
}
this
.
$download
(
"
/attendance/record/exportExcel
"
,
{
...
...
@@ -343,7 +352,10 @@ export default {
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
then
(()
=>
{
this
.
isExport
=
false
;
this
.
checkList
=
[];
})
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
...
...
@@ -354,6 +366,7 @@ export default {
this
.
setcolum
=
this
.
config
.
columns
.
filter
(
(
item
)
=>
item
.
label
&&
item
.
prop
);
console
.
log
(
this
.
setcolum
);
},
renderTable
(
tableData
)
{
return
(
...
...
@@ -498,10 +511,10 @@ export default {
{
label
:
"
员工工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
考勤组
"
,
prop
:
"
attendanceGroupName
"
prop
:
"
attendanceGroupName
"
,
},
{
label
:
"
部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
职位
"
,
prop
:
"
positionName
"
},
{
label
:
"
职位
"
,
prop
:
"
positionName
"
},
{
label
:
"
班次
"
,
prop
:
"
classId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
签到结果
"
,
...
...
@@ -521,9 +534,6 @@ export default {
width
:
120
,
prop
:
"
subColumns
"
,
formatter
:
(
row
)
=>
{
let
widthsize
=
this
.
columnSet
.
reduce
((
pre
,
cur
)
=>
{
return
pre
+
Number
(
cur
.
width
);
},
50
);
...
...
@@ -556,7 +566,7 @@ export default {
exportList
:
[],
//导出记录
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
initalArr
:
[],
attendStatInfo
:
{}
attendStatInfo
:
{},
};
},
};
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
View file @
8303f38f
...
...
@@ -5,17 +5,23 @@ import com.dingtalk.api.DingTalkClient;
import
com.dingtalk.api.request.*
;
import
com.dingtalk.api.response.*
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.busiz.dingtalk.config.TalkConfiguration
;
import
com.mortals.xhx.busiz.dingtalk.req.UserPageReq
;
import
com.mortals.xhx.busiz.dingtalk.req.CodeReq
;
import
com.mortals.xhx.busiz.dingtalk.req.LinkMessageReq
;
import
com.mortals.xhx.busiz.dingtalk.req.MobileReq
;
import
com.mortals.xhx.busiz.dingtalk.req.*
;
import
com.mortals.xhx.common.pdu.ApiRespPdu
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.time.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* 钉钉相关外部接口
...
...
@@ -309,4 +315,274 @@ public class TalkApiController {
return
apiRespPdu
;
}
/**
* 根据两个日期计算其中的工作时间 返回单位小时
* @return
*/
@PostMapping
(
"/attendance/getTimeCount"
)
@UnAuth
public
Rest
<
Float
>
getUserInfoByCode
(
@RequestBody
TimeReq
timeReq
){
Rest
<
Float
>
ret
=
new
Rest
();
try
{
String
startTime
=
timeReq
.
getStartTime
();
String
endTime
=
timeReq
.
getEndTime
();
Date
startMoningStart
=
getDate
(
startTime
,
1
);
Date
startMoningEnd
=
getDate
(
startTime
,
2
);
Date
startAfternoonStart
=
getDate
(
startTime
,
3
);
Date
startAfternoonEnd
=
getDate
(
startTime
,
4
);
Date
endMoningStart
=
getDate
(
endTime
,
1
);
Date
endMoningEnd
=
getDate
(
endTime
,
2
);
Date
endAfternoonStart
=
getDate
(
endTime
,
3
);
Date
endAfternoonEnd
=
getDate
(
endTime
,
4
);
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
start
=
format
.
parse
(
startTime
);
Date
end
=
format
.
parse
(
endTime
);
int
hours
=
1000
*
60
*
60
;
float
result
=
0
;
//若开始时间和结束时间是同一天
SimpleDateFormat
simple1
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
simple1
.
format
(
simple1
.
parse
(
startTime
)).
equals
(
simple1
.
format
(
simple1
.
parse
(
endTime
)));
if
(
simple1
.
format
(
simple1
.
parse
(
startTime
)).
equals
(
simple1
.
format
(
simple1
.
parse
(
endTime
)))){
//如果结束时间比上班时间早,或者结束时间比开始时间早 或者开始时间晚于下午下班时间,则出差时长为0
if
(
end
.
getTime
()
<=
startMoningStart
.
getTime
()
||
end
.
getTime
()<=
start
.
getTime
()
||
start
.
getTime
()>=
startAfternoonEnd
.
getTime
()
||
isHolidays
(
startTime
)){
result
=
0
;
System
.
out
.
println
(
"出差时长为:"
+
result
);
ret
.
setCode
(
Rest
.
FAIL
);
ret
.
setMsg
(
"时间不正确"
);
return
ret
;
}
//如果结束时间在上午时间段
if
(
end
.
getTime
()<=
startMoningEnd
.
getTime
()){
//判断开始时间是否早与上午上班时间
if
(
start
.
getTime
()<
startMoningStart
.
getTime
()){
result
=
(
end
.
getTime
()-
startMoningStart
.
getTime
()+
0
f
)/
hours
;
}
else
{
result
=
(
end
.
getTime
()-
start
.
getTime
()+
0
f
)/
hours
;
}
}
//如果结束时间在中午时间段
if
(
end
.
getTime
()>
startMoningEnd
.
getTime
()
&&
end
.
getTime
()<=
startAfternoonStart
.
getTime
()){
//如果开始时间在上午上班之前
if
(
start
.
getTime
()<=
startMoningStart
.
getTime
()){
result
=
4
;
}
else
if
(
start
.
getTime
()>
startMoningStart
.
getTime
()
&&
start
.
getTime
()<
startMoningEnd
.
getTime
()){
//开始时间在上午上班时间段
result
=
(
startMoningEnd
.
getTime
()-
start
.
getTime
()+
0
f
)/
hours
;
}
else
if
(
start
.
getTime
()>=
startMoningStart
.
getTime
())
{
//开始时间也在中午
result
=
0
;
}
}
//如果结束时间在下午上班时间段
if
(
end
.
getTime
()>
startAfternoonStart
.
getTime
()
&&
end
.
getTime
()<=
startAfternoonEnd
.
getTime
()){
if
(
start
.
getTime
()<=
startMoningStart
.
getTime
()){
//如果开始时间在上午上班之前
result
=
4
+
(
end
.
getTime
()-
startAfternoonStart
.
getTime
()+
0
f
)/
hours
;
}
else
if
(
start
.
getTime
()>
startMoningStart
.
getTime
()
&&
start
.
getTime
()<
startMoningEnd
.
getTime
())
{
//如果开始时间在上午上班时间
result
=
(
startMoningEnd
.
getTime
()-
start
.
getTime
()
+
end
.
getTime
()-
startAfternoonStart
.
getTime
()+
0
f
)/
hours
;
}
else
if
(
start
.
getTime
()>=
startMoningEnd
.
getTime
()
&&
start
.
getTime
()<=
startAfternoonStart
.
getTime
())
{
//开始时间在中午时间段
result
=
(
end
.
getTime
()
-
startAfternoonStart
.
getTime
()+
0
f
)/
hours
;
}
else
if
(
start
.
getTime
()>
startAfternoonStart
.
getTime
()){
//开始时间也在下午上班时间段
result
=
(
end
.
getTime
()-
start
.
getTime
()+
0
f
)/
hours
;
}
}
//如果结束时间在下午下班之后
if
(
end
.
getTime
()
>
startAfternoonEnd
.
getTime
()){
if
(
start
.
getTime
()
<=
startMoningStart
.
getTime
()){
//如果开始时间在上午上班之前
result
=
8
;
}
else
if
(
start
.
getTime
()>
startMoningStart
.
getTime
()
&&
start
.
getTime
()<
startMoningEnd
.
getTime
()){
//开始时间在上午上班时间段
result
=
4
+
(
startMoningEnd
.
getTime
()
-
start
.
getTime
()+
0
f
)/
hours
;
}
else
if
(
start
.
getTime
()>=
startMoningEnd
.
getTime
()
&&
start
.
getTime
()<=
startAfternoonStart
.
getTime
())
{
//如果开始时间在中午时间段
result
=
4
;
}
else
if
(
start
.
getTime
()>
startAfternoonStart
.
getTime
()
&&
start
.
getTime
()<
startAfternoonEnd
.
getTime
())
{
//开始时间在下午上班时间段
result
=
(
startAfternoonEnd
.
getTime
()-
start
.
getTime
()+
0
f
)/
hours
;
}
}
}
else
{
if
(
end
.
getTime
()<=
start
.
getTime
()
){
result
=
0
f
;
System
.
out
.
println
(
"出差时长为:"
+
result
);
ret
.
setCode
(
Rest
.
FAIL
);
ret
.
setMsg
(
"开始时间晚于结束时间!"
);
return
ret
;
}
//开始时间和结束时间不在同一天
float
startDayHours
=
getStartDayHours
(
start
,
startMoningStart
,
startMoningEnd
,
startAfternoonStart
,
startAfternoonEnd
);
float
endDayHours
=
8
-
getStartDayHours
(
end
,
endMoningStart
,
endMoningEnd
,
endAfternoonStart
,
endAfternoonEnd
);
//计算开始时间和结束时间之间隔了几天
int
days
=
getDays
(
startTime
,
endTime
);
float
daysHours
=
(
days
-
1
)*
8
;
result
=
daysHours
+
startDayHours
+
endDayHours
;
result
=
deleteHolidays
(
startTime
,
endTime
,
startDayHours
,
endDayHours
,
result
);
}
BigDecimal
bigResult
=
new
BigDecimal
(
result
);
float
finalResult
=
bigResult
.
setScale
(
1
,
BigDecimal
.
ROUND_HALF_UP
).
floatValue
();
System
.
out
.
println
(
"出差时长为:"
+
finalResult
);
ret
.
setCode
(
Rest
.
SUCCESS
);
ret
.
setData
(
finalResult
);
ret
.
setMsg
(
"成功!"
);
return
ret
;
}
catch
(
Exception
e
){
ret
.
setCode
(
Rest
.
FAIL
);
ret
.
setMsg
(
"日期格式不正确"
);
return
ret
;
}
}
//排除出差时长中的节假日时间 这里不考虑休息半天的情况
// 开始时间startTime 结束时间endTime 开始时间当前的时长startDayHours 结束时间当天的时长endDayHours 排除节假日之前的时长
//只有startTime 和endTime不在同一天才调用
private
static
float
deleteHolidays
(
String
startTime
,
String
endTime
,
float
startDayHours
,
float
endDayHours
,
float
hours
)
throws
ParseException
{
float
result
=
hours
+
0
f
;
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
//1判断startTime是否是节假日,周末
if
(
isHolidays
(
startTime
)){
result
=
result
-
startDayHours
;
}
//轮循开始时间到结束时间 当前时间
String
nowDate
=
startTime
;
do
{
nowDate
=
format
.
format
(
DateUtils
.
addDays
(
format
.
parse
(
nowDate
),
1
));
if
(
format
.
format
(
format
.
parse
(
nowDate
)).
equals
(
format
.
format
(
format
.
parse
(
endTime
)))){
break
;
}
if
(
isHolidays
(
nowDate
)){
result
=
result
-
8
;
}
}
while
(
true
);
//
if
(
isHolidays
(
endTime
)){
result
=
result
-
endDayHours
;
}
return
result
;
}
//判断一个日期是否是节假日 或者周末
private
static
boolean
isHolidays
(
String
time
)
throws
ParseException
{
String
queryCalenderSql
=
""
;
//IRowSet query = DbUtil.executeQuery(ctx, queryCalenderSql);
// if(query.next()){
// return true;
// }
//判断是否是周末
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
format
.
parse
(
time
));
if
(
cal
.
get
(
Calendar
.
DAY_OF_WEEK
)==
1
||
cal
.
get
(
Calendar
.
DAY_OF_WEEK
)==
7
){
return
true
;
}
return
false
;
}
private
static
int
getDays
(
String
startTime
,
String
endTime
)
throws
ParseException
{
//计算开始和结束时间之间相差的天数
int
result
=
0
;
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
Date
start
=
format
.
parse
(
startTime
);
Date
end
=
format
.
parse
(
endTime
);
Calendar
calStart
=
Calendar
.
getInstance
();
calStart
.
setTime
(
start
);
Calendar
calEnd
=
Calendar
.
getInstance
();
calEnd
.
setTime
(
end
);
int
startDay
=
calStart
.
get
(
Calendar
.
DAY_OF_YEAR
);
int
endDay
=
calEnd
.
get
(
Calendar
.
DAY_OF_YEAR
);
int
yearStart
=
calStart
.
get
(
Calendar
.
YEAR
);
int
yearEnd
=
calEnd
.
get
(
Calendar
.
YEAR
);
if
(
yearEnd
!=
yearStart
)
//不同年
{
int
timeDistance
=
0
;
for
(
int
i
=
yearStart
;
i
<
yearEnd
;
i
++)
{
if
(
i
%
4
==
0
&&
i
%
100
!=
0
||
i
%
400
==
0
)
//闰年
{
timeDistance
+=
366
;
}
else
//不是闰年
{
timeDistance
+=
365
;
}
}
System
.
out
.
println
(
timeDistance
+
(
endDay
-
startDay
));
result
=
timeDistance
+
(
endDay
-
startDay
);
}
else
//同一年
{
result
=
endDay
-
startDay
;
System
.
out
.
println
(
"判断day2 - day1 : "
+
(
endDay
-
startDay
));
//return day2-day1;
}
return
result
;
}
//计算开始时间那天的出差时长
private
static
float
getStartDayHours
(
Date
start
,
Date
moningStart
,
Date
moningEnd
,
Date
afternoonStart
,
Date
afternoonEnd
){
float
result
=
0
f
;
//开始时间早与上午上班时间
if
(
start
.
getTime
()<=
moningStart
.
getTime
()){
result
=
8
;
}
else
if
(
start
.
getTime
()>
moningStart
.
getTime
()
&&
start
.
getTime
()
<
moningEnd
.
getTime
()){
//开始时间在上午时间段
result
=
4
+
(
moningEnd
.
getTime
()-
start
.
getTime
()+
0
f
)/(
1000
*
60
*
60
);
}
else
if
(
start
.
getTime
()>=
moningEnd
.
getTime
()
&&
start
.
getTime
()<=
afternoonStart
.
getTime
())
{
//开始时间在中午时间段
result
=
4
;
}
else
if
(
start
.
getTime
()>
afternoonStart
.
getTime
()
&&
start
.
getTime
()<
afternoonEnd
.
getTime
()){
result
=
(
afternoonEnd
.
getTime
()
-
start
.
getTime
()+
0
f
)/(
1000
*
60
*
60
);
}
else
if
(
start
.
getTime
()>=
afternoonEnd
.
getTime
()){
result
=
0
;
}
return
result
;
}
//获取给定日期工作时间
private
static
Date
getDate
(
String
date
,
int
type
)
throws
ParseException
{
Calendar
calendar
=
Calendar
.
getInstance
();
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
calendar
.
setTime
(
format
.
parse
(
date
));
StringBuilder
result
=
new
StringBuilder
();
if
(
calendar
.
get
(
Calendar
.
MONTH
)<
9
){
result
.
append
(
calendar
.
get
(
Calendar
.
YEAR
)).
append
(
"-0"
);
}
else
{
result
.
append
(
calendar
.
get
(
Calendar
.
YEAR
)).
append
(
"-"
);
}
result
.
append
(
calendar
.
get
(
Calendar
.
MONTH
)+
1
).
append
(
"-"
);
result
.
append
(
calendar
.
get
(
Calendar
.
DATE
)).
append
(
" "
);
//1上午开始时间09:00 ;2上午结束时间12:00 3下午开始时间13:00 4下午结束时间18:00
switch
(
type
){
case
1
:
result
.
append
(
"09:00"
);
break
;
case
2
:
result
.
append
(
"12:00"
);
break
;
case
3
:
result
.
append
(
"13:00"
);
break
;
case
4
:
result
.
append
(
"18:00"
);
break
;
}
return
format
.
parse
(
String
.
valueOf
(
result
));
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/req/TimeReq.java
0 → 100644
View file @
8303f38f
package
com.mortals.xhx.busiz.dingtalk.req
;
/**
* @author ZYW
* @date 2023-07-13 20:11
*/
public
class
TimeReq
{
String
startTime
;
String
endTime
;
public
String
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
String
startTime
)
{
this
.
startTime
=
startTime
;
}
public
String
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
String
endTime
)
{
this
.
endTime
=
endTime
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/dingmsg/api/DingMessageController.java
View file @
8303f38f
...
...
@@ -170,7 +170,7 @@ public class DingMessageController {
switch
(
jsonArray
.
get
(
3
).
toString
()){
case
"halfDay"
:
case
"day"
:
leaveRecordEntity
.
setDuration
((
int
)
(
Float
.
parseFloat
(
jsonArray
.
get
(
2
).
toString
())*
60
*
60
*
9
));
//天转换成秒 一天工作时间9小时
leaveRecordEntity
.
setDuration
((
int
)
(
Float
.
parseFloat
(
jsonArray
.
get
(
2
).
toString
())*
60
*
60
*
8
));
//天转换成秒 一天工作时间9小时
leaveRecordEntity
.
setSourceDingTime
(
jsonArray
.
get
(
2
).
toString
()+
"天"
);
break
;
default
:
//除了按天和半天计算的假期 其余都是按小时返回
...
...
@@ -638,7 +638,7 @@ public class DingMessageController {
* @return
*/
private
float
converMillsToDays
(
long
milliseconds
){
float
days
=
((
float
)
milliseconds
)
/
(
60
*
60
*
9
);
float
days
=
((
float
)
milliseconds
)
/
(
60
*
60
*
8
);
return
days
;
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
View file @
8303f38f
...
...
@@ -202,7 +202,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
//汇总当前日期请假情况
List
<
LeaveSummaryVo
>
leaveSummaryVoList
=
attendanceSummaryDao
.
getLeaveSummary
(
query
);
if
(
CollectionUtils
.
isNotEmpty
(
leaveSummaryVoList
))
{
BigDecimal
day
=
new
BigDecimal
(
3600
*
9
);
//一天按9
小时折算
BigDecimal
day
=
new
BigDecimal
(
3600
*
8
);
//一天按8
小时折算
BigDecimal
oneDay
=
new
BigDecimal
(
1
);
for
(
LeaveSummaryVo
item
:
leaveSummaryVoList
)
{
String
attendanceSummary
=
""
;
...
...
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