Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
46e8acb5
Commit
46e8acb5
authored
Oct 29, 2020
by
ilal
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
f43ca518
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
551 additions
and
8 deletions
+551
-8
src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java
+278
-5
src/main/java/cn/timer/api/controller/kqgl/atttimer/LastMonthtimingExport.java
+273
-3
No files found.
src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java
View file @
46e8acb5
...
@@ -43,14 +43,17 @@ import cn.timer.api.dao.kqgl.PunchRecordMapper;
...
@@ -43,14 +43,17 @@ import cn.timer.api.dao.kqgl.PunchRecordMapper;
import
cn.timer.api.dao.kqgl.ScheduleMapper
;
import
cn.timer.api.dao.kqgl.ScheduleMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoDkmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoDkmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoPbmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoTeshuMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoTeshuMapper
;
import
cn.timer.api.dao.kqmk.KqglMainKqzMapper
;
import
cn.timer.api.dao.kqmk.KqglMainKqzMapper
;
import
cn.timer.api.dao.qyzx.QyzxEntInfoMMapper
;
import
cn.timer.api.dao.qyzx.QyzxEntInfoMMapper
;
import
cn.timer.api.dto.kqmk.AdditionalDto
;
import
cn.timer.api.dto.kqmk.AdditionalDto
;
import
cn.timer.api.dto.kqmk.AttLateLate
;
import
cn.timer.api.dto.kqmk.AttSchedule
;
import
cn.timer.api.dto.kqmk.AttSchedule
;
import
cn.timer.api.dto.kqmk.AttSubsidiaryDto
;
import
cn.timer.api.dto.kqmk.AttSubsidiaryDto
;
import
cn.timer.api.dto.kqmk.AttendanceCardListDto
;
import
cn.timer.api.dto.kqmk.AttendanceCardListDto
;
import
cn.timer.api.dto.kqmk.KqglAssoPbmxDto
;
import
cn.timer.api.utils.DateUtil
;
import
cn.timer.api.utils.DateUtil
;
/**
/**
...
@@ -98,8 +101,8 @@ public class AttendanceTaskTiming{
...
@@ -98,8 +101,8 @@ public class AttendanceTaskTiming{
//typeid:1-员工 2-考勤组
//typeid:1-员工 2-考勤组
// @Scheduled(cron = "0 */5 * * * ?")
// @Scheduled(cron = "0 */5 * * * ?")
// @Scheduled(cron = "0
5 16
* * ?")
// @Scheduled(cron = "0
10 9
* * ?")
//
@Scheduled(cron = "0 0 8,12,16,20 * * ?")//每天上午8、12点,下午16点,20点 执行
@Scheduled
(
cron
=
"0 0 8,12,16,20 * * ?"
)
//每天上午8、12点,下午16点,20点 执行
public
void
AttendanceTask
()
throws
ParseException
{
public
void
AttendanceTask
()
throws
ParseException
{
boolean
implement
=
true
;
boolean
implement
=
true
;
...
@@ -130,9 +133,9 @@ public class AttendanceTaskTiming{
...
@@ -130,9 +133,9 @@ public class AttendanceTaskTiming{
int
summaryid
=
0
;
//汇总id
int
summaryid
=
0
;
//汇总id
//
List<QyzxEntInfoM> orgcodelist = qyzxentinfommapper.selectList(new QueryWrapper<QyzxEntInfoM>());//系统中的所有公司 所有未到期的公司
List
<
QyzxEntInfoM
>
orgcodelist
=
qyzxentinfommapper
.
selectList
(
new
QueryWrapper
<
QyzxEntInfoM
>());
//系统中的所有公司 所有未到期的公司
List
<
QyzxEntInfoM
>
orgcodelist
=
qyzxentinfommapper
.
selectList
(
new
QueryWrapper
<
QyzxEntInfoM
>().
lambda
().
eq
(
QyzxEntInfoM:
:
getId
,
3
));
//
List<QyzxEntInfoM> orgcodelist = qyzxentinfommapper.selectList(new QueryWrapper<QyzxEntInfoM>().lambda().eq(QyzxEntInfoM::getId, 3));
for
(
int
t
=
0
;
t
<
orgcodelist
.
size
();
t
++){
for
(
int
t
=
0
;
t
<
orgcodelist
.
size
();
t
++){
int
org_code
=
orgcodelist
.
get
(
t
).
getId
();
//企业组织代码
int
org_code
=
orgcodelist
.
get
(
t
).
getId
();
//企业组织代码
...
@@ -176,7 +179,7 @@ public class AttendanceTaskTiming{
...
@@ -176,7 +179,7 @@ public class AttendanceTaskTiming{
if
(
attendance
.
size
()
>
0
)
{
if
(
attendance
.
size
()
>
0
)
{
dkjl
=
attendance
.
size
();
dkjl
=
attendance
.
size
();
for
(
PunchCardDetails
pcd:
attendance
){
for
(
PunchCardDetails
pcd:
attendance
){
AttendanceCardListDto
attdate
=
clockincontroller
.
MethodCall
(
org_code
,
user
.
getEmpnum
(),
pcd
.
getData
());
AttendanceCardListDto
attdate
=
MethodCall
(
org_code
,
user
.
getEmpnum
(),
pcd
.
getData
());
List
<
AttSchedule
>
ashss
=
attdate
.
getAttsch
();
//获取今天应打卡时间
List
<
AttSchedule
>
ashss
=
attdate
.
getAttsch
();
//获取今天应打卡时间
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
ashss
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
ashss
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
bccs
=
attdate
.
getAttsch
().
size
();
bccs
=
attdate
.
getAttsch
().
size
();
...
@@ -891,4 +894,274 @@ public class AttendanceTaskTiming{
...
@@ -891,4 +894,274 @@ public class AttendanceTaskTiming{
}
}
}
}
@Autowired
private
KqglAssoPbmxMapper
kqglassopbmxmapper
;
/**
* @param qyid
* @param userid
* @param date
* @return
* 获取当天打卡班次数据
*/
public
AttendanceCardListDto
MethodCall
(
int
qyid
,
int
userid
,
String
date
)
throws
ParseException
{
AttendanceCardListDto
attcar
=
new
AttendanceCardListDto
();
String
str
=
null
;
if
(!(
""
).
equals
(
date
)){
str
=
date
;
}
else
{
Date
d
=
new
Date
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
str
=
sdf
.
format
(
d
);
}
KqglMainKqz
attgro
=
kqglmainkqzmapper
.
getAttendanceGroupInformationByUserid
(
userid
,
qyid
);
//考勤组信息
//pbfs:排班方式 1:固定排班;2:自由排班;3:自由工时
if
(
attgro
!=
null
){
//判断当前用户是否加入到考勤组
//排班制
KqglAssoPbmxDto
jrpb
=
kqglassopbmxmapper
.
getScheduleSpecificAttendance
(
attgro
.
getId
(),
userid
,
str
);
//固定排班
int
week
=
Integer
.
valueOf
(
ClockInTool
.
dateToWeek
(
str
));
//4
KqglAssoZhoupaiban
atwek
=
KqglAssoZhoupaiban
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoZhoupaiban
>().
lambda
().
eq
(
KqglAssoZhoupaiban:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoZhoupaiban:
:
getType
,
week
).
ne
(
KqglAssoZhoupaiban:
:
getBcid
,
0
));
if
(
attgro
.
getPbfs
()
==
1
){
//固定排班
if
(
atwek
!=
null
){
//有固定周排班
KqglAssoTeshu
rest
=
KqglAssoTeshu
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoTeshu
>().
lambda
().
eq
(
KqglAssoTeshu:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoTeshu:
:
getTsrq
,
str
).
eq
(
KqglAssoTeshu:
:
getBcid
,
0
));
if
(
rest
!=
null
){
//今天休息 Sort返回0【特殊日期--休息】
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts
.
add
(
as
);
attcar
.
setAttsch
(
atts
);
}
else
{
//今天上班
KqglAssoBcsz
bcz
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
atwek
.
getBcid
()));
if
(
bcz
!=
null
){
Getshiftinformationbatch
(
bcz
,
attcar
,
str
);
}
}
}
else
{
//必须打卡
KqglAssoTeshu
tsri
=
KqglAssoTeshu
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoTeshu
>().
lambda
().
eq
(
KqglAssoTeshu:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoTeshu:
:
getTsrq
,
str
).
ne
(
KqglAssoTeshu:
:
getBcid
,
0
));
if
(
tsri
!=
null
){
KqglAssoBcsz
tsrq
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
tsri
.
getBcid
()));
if
(
tsrq
!=
null
){
Getshiftinformationbatch
(
tsrq
,
attcar
,
str
);
}
}
else
{
//休息
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts
.
add
(
as
);
attcar
.
setAttsch
(
atts
);
}
}
}
else
if
(
attgro
.
getPbfs
()
==
2
){
//自由排班
//未排班时,员工可选择班次打卡
// if(attgro.getIsXzbcdk() == 1){
// attcar.setOptscheduling(true);
// }else{
// attcar.setOptscheduling(false);
// }
if
(
jrpb
!=
null
){
if
(
jrpb
.
getBcid
()
!=
0
){
//有班次时("Bcid"不为0时)
KqglAssoBcsz
tsrq
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
jrpb
.
getBcid
()));
/**已简化**/
Getshiftinformationbatch
(
tsrq
,
attcar
,
str
);
}
else
{
//当天排班为休息
List
<
AttSchedule
>
atts1
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts1
.
add
(
as
);
attcar
.
setAttsch
(
atts1
);
}
}
}
else
{
//自由工时
KqglAssoZhoupaiban
wekz
=
KqglAssoZhoupaiban
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoZhoupaiban
>().
lambda
().
eq
(
KqglAssoZhoupaiban:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoZhoupaiban:
:
getBcid
,
0
).
eq
(
KqglAssoZhoupaiban:
:
getType
,
week
));
if
(
wekz
!=
null
){
//
String
dada
=
str
+
" "
+
attgro
.
getKqkssjTime
()+
":00"
;
attcar
.
setStapclotime
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
(
dada
)));
}
if
(!(
""
).
equals
(
attgro
.
getJbzdsc
())){
attcar
.
setCanpunchworkdate
(
Double
.
valueOf
(
attgro
.
getJbzdsc
()));
//上班打卡后多久大下班卡
}
}
if
(
jrpb
!=
null
||
atwek
!=
null
){
KqglAssoBcsz
shif
=
KqglAssoBcsz
.
builder
().
build
();
if
(
attgro
.
getPbfs
()
==
1
){
shif
=
shif
.
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
atwek
.
getBcid
()));
}
else
if
(
attgro
.
getPbfs
()
==
2
){
shif
=
shif
.
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
jrpb
.
getBcid
()));
}
if
(
shif
!=
null
){
if
(
shif
.
getIsXbdk
()
==
1
){
attcar
.
setNoclockout
(
true
);
// 下班不用打卡
}
else
{
attcar
.
setNoclockout
(
false
);
// 下班不用打卡
}
attcar
.
setAllowlate
(
shif
.
getYxcdfzs
());
// 允许迟到分钟数
attcar
.
setSeriouslate
(
shif
.
getYzcdfzs
());
// 严重迟到分钟数
attcar
.
setAbsenteeismlate
(
shif
.
getKgcdfzs
());
// 旷工迟到分钟数
if
(
shif
.
getIsWzwd
()
==
1
){
attcar
.
setIslatelate
(
true
);
// 晚走晚到
List
<
AttLateLate
>
atwzwd
=
new
ArrayList
<
AttLateLate
>();
int
p
=
0
;
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())){
p
=
2
;}
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())
&&
!(
""
).
equals
(
shif
.
getXbwz2
())
&&
!(
""
).
equals
(
shif
.
getSbwd2
())){
p
=
4
;}
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())
&&
!(
""
).
equals
(
shif
.
getXbwz2
())
&&
!(
""
).
equals
(
shif
.
getSbwd2
())
&&
!(
""
).
equals
(
shif
.
getXbwz3
())
&&
!(
""
).
equals
(
shif
.
getSbwd3
())){
p
=
6
;}
AttLateLate
ala
=
AttLateLate
.
builder
().
build
();
ala
.
setLatewalk
(
shif
.
getXbwz1
());
ala
.
setArrivelate
(
shif
.
getSbwd1
());
atwzwd
.
add
(
ala
);
if
(
p
==
4
||
p
==
6
){
AttLateLate
alat
=
AttLateLate
.
builder
().
build
();
alat
.
setLatewalk
(
shif
.
getXbwz2
());
alat
.
setArrivelate
(
shif
.
getSbwd2
());
atwzwd
.
add
(
alat
);
}
if
(
p
==
6
){
AttLateLate
alas
=
AttLateLate
.
builder
().
build
();
alas
.
setLatewalk
(
shif
.
getXbwz3
());
alas
.
setArrivelate
(
shif
.
getSbwd3
());
atwzwd
.
add
(
alas
);
}
attcar
.
setAttlat
(
atwzwd
);
}
else
{
attcar
.
setIslatelate
(
false
);
// 晚走晚到
}
}
}
attcar
.
setAttgrouptype
(
attgro
.
getPbfs
());
//1:固定排班;2:自由排班;3:自由工时
}
else
{
attcar
.
setAttgrouptype
(
0
);
//1:固定排班;2:自由排班;3:自由工时
}
return
attcar
;
}
/**
* @param shiftm
* @param attcar
* @param str
*/
public
void
Getshiftinformationbatch
(
KqglAssoBcsz
shiftm
,
AttendanceCardListDto
attcar
,
String
str
){
int
isXbdk1Cr
=
shiftm
.
getIsXbdk1Cr
();
//下班1是否次日(0:否;1:是)
int
isSbdk2Cr
=
shiftm
.
getIsSbdk2Cr
();
//上班2是否次日(0:否;1:是)
int
isXbdk2Cr
=
shiftm
.
getIsXbdk2Cr
();
//下班2是否次日(0:否;1:是)
int
isSbdk3Cr
=
shiftm
.
getIsSbdk3Cr
();
//上班3是否次日(0:否;1:是)
int
isXbdk3Cr
=
shiftm
.
getIsXbdk3Cr
();
//下班3是否次日(0:否;1:是)
//次日专用
String
next_day
=
ClockInTool
.
requires_extra_times
(
str
,
1
,
2
,
1
);
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
if
(
shiftm
.
getSxbcs
()
==
1
||
shiftm
.
getSxbcs
()
==
2
||
shiftm
.
getSxbcs
()
==
3
){
//1次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
1
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks1
())
||
shiftm
.
getSbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs1
())
||
shiftm
.
getSbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
else
{
//次日
if
(
isXbdk1Cr
>
0
)
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
2
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks1
())
||
shiftm
.
getXbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs1
())
||
shiftm
.
getXbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
2
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks1
())
||
shiftm
.
getXbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs1
())
||
shiftm
.
getXbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
if
(
shiftm
.
getSxbcs
()
==
2
||
shiftm
.
getSxbcs
()
==
3
){
//2次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
if
(
isSbdk2Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
3
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks2
())||
shiftm
.
getSbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs2
())
||
shiftm
.
getSbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
3
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks2
())||
shiftm
.
getSbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs2
())
||
shiftm
.
getSbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
else
{
if
(
isXbdk2Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
4
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks2
())
||
shiftm
.
getXbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs2
())
||
shiftm
.
getXbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
4
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks2
())
||
shiftm
.
getXbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs2
())
||
shiftm
.
getXbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
if
(
shiftm
.
getSxbcs
()
==
3
){
//3次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
if
(
isSbdk3Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
5
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks3
())
||
shiftm
.
getSbqjks3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs3
())
||
shiftm
.
getSbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
5
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks3
())
||
shiftm
.
getSbqjks3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs3
())
||
shiftm
.
getSbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
else
{
if
(
isXbdk3Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
6
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks3
())
||
shiftm
.
getXbqjks3
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs3
())
||
shiftm
.
getXbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
6
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks3
())
||
shiftm
.
getXbqjks3
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs3
())
||
shiftm
.
getXbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
}
}
}
src/main/java/cn/timer/api/controller/kqgl/atttimer/LastMonthtimingExport.java
View file @
46e8acb5
...
@@ -43,14 +43,17 @@ import cn.timer.api.dao.kqgl.PunchRecordMapper;
...
@@ -43,14 +43,17 @@ import cn.timer.api.dao.kqgl.PunchRecordMapper;
import
cn.timer.api.dao.kqgl.ScheduleMapper
;
import
cn.timer.api.dao.kqgl.ScheduleMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoDkmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoDkmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoPbmxMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoTeshuMapper
;
import
cn.timer.api.dao.kqmk.KqglAssoTeshuMapper
;
import
cn.timer.api.dao.kqmk.KqglMainKqzMapper
;
import
cn.timer.api.dao.kqmk.KqglMainKqzMapper
;
import
cn.timer.api.dao.qyzx.QyzxEntInfoMMapper
;
import
cn.timer.api.dao.qyzx.QyzxEntInfoMMapper
;
import
cn.timer.api.dto.kqmk.AdditionalDto
;
import
cn.timer.api.dto.kqmk.AdditionalDto
;
import
cn.timer.api.dto.kqmk.AttLateLate
;
import
cn.timer.api.dto.kqmk.AttSchedule
;
import
cn.timer.api.dto.kqmk.AttSchedule
;
import
cn.timer.api.dto.kqmk.AttSubsidiaryDto
;
import
cn.timer.api.dto.kqmk.AttSubsidiaryDto
;
import
cn.timer.api.dto.kqmk.AttendanceCardListDto
;
import
cn.timer.api.dto.kqmk.AttendanceCardListDto
;
import
cn.timer.api.dto.kqmk.KqglAssoPbmxDto
;
import
cn.timer.api.utils.DateUtil
;
import
cn.timer.api.utils.DateUtil
;
/**
/**
...
@@ -90,8 +93,8 @@ public class LastMonthtimingExport {
...
@@ -90,8 +93,8 @@ public class LastMonthtimingExport {
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
// @Scheduled(cron = "0
12 15
* * ?")
// @Scheduled(cron = "0
25 9
* * ?")
//
@Scheduled(cron = "0 0 4,20 * * ?")//每天上午4点,下午20点 执行
@Scheduled
(
cron
=
"0 0 4,20 * * ?"
)
//每天上午4点,下午20点 执行
public
void
LastMonthtimingAttendanceTask
()
throws
ParseException
{
public
void
LastMonthtimingAttendanceTask
()
throws
ParseException
{
//获取前月的最后一天
//获取前月的最后一天
...
@@ -166,7 +169,7 @@ public class LastMonthtimingExport {
...
@@ -166,7 +169,7 @@ public class LastMonthtimingExport {
if
(
attendance
.
size
()
>
0
)
{
if
(
attendance
.
size
()
>
0
)
{
dkjl
=
attendance
.
size
();
dkjl
=
attendance
.
size
();
for
(
PunchCardDetails
pcd:
attendance
){
for
(
PunchCardDetails
pcd:
attendance
){
AttendanceCardListDto
attdate
=
clockincontroller
.
MethodCall
(
org_code
,
user
.
getEmpnum
(),
pcd
.
getData
());
AttendanceCardListDto
attdate
=
MethodCall
(
org_code
,
user
.
getEmpnum
(),
pcd
.
getData
());
List
<
AttSchedule
>
ashss
=
attdate
.
getAttsch
();
//获取今天应打卡时间
List
<
AttSchedule
>
ashss
=
attdate
.
getAttsch
();
//获取今天应打卡时间
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
ashss
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
ashss
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
bccs
=
attdate
.
getAttsch
().
size
();
bccs
=
attdate
.
getAttsch
().
size
();
...
@@ -891,6 +894,273 @@ public class LastMonthtimingExport {
...
@@ -891,6 +894,273 @@ public class LastMonthtimingExport {
@Autowired
private
KqglAssoPbmxMapper
kqglassopbmxmapper
;
/**
* @param qyid
* @param userid
* @param date
* @return
* 获取当天打卡班次数据
*/
public
AttendanceCardListDto
MethodCall
(
int
qyid
,
int
userid
,
String
date
)
throws
ParseException
{
AttendanceCardListDto
attcar
=
new
AttendanceCardListDto
();
String
str
=
null
;
if
(!(
""
).
equals
(
date
)){
str
=
date
;
}
else
{
Date
d
=
new
Date
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
str
=
sdf
.
format
(
d
);
}
KqglMainKqz
attgro
=
kqglmainkqzmapper
.
getAttendanceGroupInformationByUserid
(
userid
,
qyid
);
//考勤组信息
//pbfs:排班方式 1:固定排班;2:自由排班;3:自由工时
if
(
attgro
!=
null
){
//判断当前用户是否加入到考勤组
//排班制
KqglAssoPbmxDto
jrpb
=
kqglassopbmxmapper
.
getScheduleSpecificAttendance
(
attgro
.
getId
(),
userid
,
str
);
//固定排班
int
week
=
Integer
.
valueOf
(
ClockInTool
.
dateToWeek
(
str
));
//4
KqglAssoZhoupaiban
atwek
=
KqglAssoZhoupaiban
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoZhoupaiban
>().
lambda
().
eq
(
KqglAssoZhoupaiban:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoZhoupaiban:
:
getType
,
week
).
ne
(
KqglAssoZhoupaiban:
:
getBcid
,
0
));
if
(
attgro
.
getPbfs
()
==
1
){
//固定排班
if
(
atwek
!=
null
){
//有固定周排班
KqglAssoTeshu
rest
=
KqglAssoTeshu
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoTeshu
>().
lambda
().
eq
(
KqglAssoTeshu:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoTeshu:
:
getTsrq
,
str
).
eq
(
KqglAssoTeshu:
:
getBcid
,
0
));
if
(
rest
!=
null
){
//今天休息 Sort返回0【特殊日期--休息】
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts
.
add
(
as
);
attcar
.
setAttsch
(
atts
);
}
else
{
//今天上班
KqglAssoBcsz
bcz
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
atwek
.
getBcid
()));
if
(
bcz
!=
null
){
Getshiftinformationbatch
(
bcz
,
attcar
,
str
);
}
}
}
else
{
//必须打卡
KqglAssoTeshu
tsri
=
KqglAssoTeshu
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoTeshu
>().
lambda
().
eq
(
KqglAssoTeshu:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoTeshu:
:
getTsrq
,
str
).
ne
(
KqglAssoTeshu:
:
getBcid
,
0
));
if
(
tsri
!=
null
){
KqglAssoBcsz
tsrq
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
tsri
.
getBcid
()));
if
(
tsrq
!=
null
){
Getshiftinformationbatch
(
tsrq
,
attcar
,
str
);
}
}
else
{
//休息
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts
.
add
(
as
);
attcar
.
setAttsch
(
atts
);
}
}
}
else
if
(
attgro
.
getPbfs
()
==
2
){
//自由排班
//未排班时,员工可选择班次打卡
// if(attgro.getIsXzbcdk() == 1){
// attcar.setOptscheduling(true);
// }else{
// attcar.setOptscheduling(false);
// }
if
(
jrpb
!=
null
){
if
(
jrpb
.
getBcid
()
!=
0
){
//有班次时("Bcid"不为0时)
KqglAssoBcsz
tsrq
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
jrpb
.
getBcid
()));
/**已简化**/
Getshiftinformationbatch
(
tsrq
,
attcar
,
str
);
}
else
{
//当天排班为休息
List
<
AttSchedule
>
atts1
=
new
ArrayList
<
AttSchedule
>();
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
0
).
sort
(
0
).
time
(
0
l
).
starttime
(
0
l
).
endtime
(
0
l
).
build
();
atts1
.
add
(
as
);
attcar
.
setAttsch
(
atts1
);
}
}
}
else
{
//自由工时
KqglAssoZhoupaiban
wekz
=
KqglAssoZhoupaiban
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoZhoupaiban
>().
lambda
().
eq
(
KqglAssoZhoupaiban:
:
getKqzid
,
attgro
.
getId
())
.
eq
(
KqglAssoZhoupaiban:
:
getBcid
,
0
).
eq
(
KqglAssoZhoupaiban:
:
getType
,
week
));
if
(
wekz
!=
null
){
//
String
dada
=
str
+
" "
+
attgro
.
getKqkssjTime
()+
":00"
;
attcar
.
setStapclotime
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
(
dada
)));
}
if
(!(
""
).
equals
(
attgro
.
getJbzdsc
())){
attcar
.
setCanpunchworkdate
(
Double
.
valueOf
(
attgro
.
getJbzdsc
()));
//上班打卡后多久大下班卡
}
}
if
(
jrpb
!=
null
||
atwek
!=
null
){
KqglAssoBcsz
shif
=
KqglAssoBcsz
.
builder
().
build
();
if
(
attgro
.
getPbfs
()
==
1
){
shif
=
shif
.
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
atwek
.
getBcid
()));
}
else
if
(
attgro
.
getPbfs
()
==
2
){
shif
=
shif
.
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
jrpb
.
getBcid
()));
}
if
(
shif
!=
null
){
if
(
shif
.
getIsXbdk
()
==
1
){
attcar
.
setNoclockout
(
true
);
// 下班不用打卡
}
else
{
attcar
.
setNoclockout
(
false
);
// 下班不用打卡
}
attcar
.
setAllowlate
(
shif
.
getYxcdfzs
());
// 允许迟到分钟数
attcar
.
setSeriouslate
(
shif
.
getYzcdfzs
());
// 严重迟到分钟数
attcar
.
setAbsenteeismlate
(
shif
.
getKgcdfzs
());
// 旷工迟到分钟数
if
(
shif
.
getIsWzwd
()
==
1
){
attcar
.
setIslatelate
(
true
);
// 晚走晚到
List
<
AttLateLate
>
atwzwd
=
new
ArrayList
<
AttLateLate
>();
int
p
=
0
;
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())){
p
=
2
;}
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())
&&
!(
""
).
equals
(
shif
.
getXbwz2
())
&&
!(
""
).
equals
(
shif
.
getSbwd2
())){
p
=
4
;}
if
(!(
""
).
equals
(
shif
.
getXbwz1
())
&&
!(
""
).
equals
(
shif
.
getSbwd1
())
&&
!(
""
).
equals
(
shif
.
getXbwz2
())
&&
!(
""
).
equals
(
shif
.
getSbwd2
())
&&
!(
""
).
equals
(
shif
.
getXbwz3
())
&&
!(
""
).
equals
(
shif
.
getSbwd3
())){
p
=
6
;}
AttLateLate
ala
=
AttLateLate
.
builder
().
build
();
ala
.
setLatewalk
(
shif
.
getXbwz1
());
ala
.
setArrivelate
(
shif
.
getSbwd1
());
atwzwd
.
add
(
ala
);
if
(
p
==
4
||
p
==
6
){
AttLateLate
alat
=
AttLateLate
.
builder
().
build
();
alat
.
setLatewalk
(
shif
.
getXbwz2
());
alat
.
setArrivelate
(
shif
.
getSbwd2
());
atwzwd
.
add
(
alat
);
}
if
(
p
==
6
){
AttLateLate
alas
=
AttLateLate
.
builder
().
build
();
alas
.
setLatewalk
(
shif
.
getXbwz3
());
alas
.
setArrivelate
(
shif
.
getSbwd3
());
atwzwd
.
add
(
alas
);
}
attcar
.
setAttlat
(
atwzwd
);
}
else
{
attcar
.
setIslatelate
(
false
);
// 晚走晚到
}
}
}
attcar
.
setAttgrouptype
(
attgro
.
getPbfs
());
//1:固定排班;2:自由排班;3:自由工时
}
else
{
attcar
.
setAttgrouptype
(
0
);
//1:固定排班;2:自由排班;3:自由工时
}
return
attcar
;
}
/**
* @param shiftm
* @param attcar
* @param str
*/
public
void
Getshiftinformationbatch
(
KqglAssoBcsz
shiftm
,
AttendanceCardListDto
attcar
,
String
str
){
int
isXbdk1Cr
=
shiftm
.
getIsXbdk1Cr
();
//下班1是否次日(0:否;1:是)
int
isSbdk2Cr
=
shiftm
.
getIsSbdk2Cr
();
//上班2是否次日(0:否;1:是)
int
isXbdk2Cr
=
shiftm
.
getIsXbdk2Cr
();
//下班2是否次日(0:否;1:是)
int
isSbdk3Cr
=
shiftm
.
getIsSbdk3Cr
();
//上班3是否次日(0:否;1:是)
int
isXbdk3Cr
=
shiftm
.
getIsXbdk3Cr
();
//下班3是否次日(0:否;1:是)
//次日专用
String
next_day
=
ClockInTool
.
requires_extra_times
(
str
,
1
,
2
,
1
);
List
<
AttSchedule
>
atts
=
new
ArrayList
<
AttSchedule
>();
if
(
shiftm
.
getSxbcs
()
==
1
||
shiftm
.
getSxbcs
()
==
2
||
shiftm
.
getSxbcs
()
==
3
){
//1次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
1
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks1
())
||
shiftm
.
getSbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs1
())
||
shiftm
.
getSbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
else
{
//次日
if
(
isXbdk1Cr
>
0
)
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
2
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks1
())
||
shiftm
.
getXbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs1
())
||
shiftm
.
getXbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
2
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks1
())
||
shiftm
.
getXbqjks1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs1
())
||
shiftm
.
getXbqjjs1
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs1
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
if
(
shiftm
.
getSxbcs
()
==
2
||
shiftm
.
getSxbcs
()
==
3
){
//2次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
if
(
isSbdk2Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
3
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks2
())||
shiftm
.
getSbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs2
())
||
shiftm
.
getSbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
3
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks2
())||
shiftm
.
getSbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs2
())
||
shiftm
.
getSbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
else
{
if
(
isXbdk2Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
4
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks2
())
||
shiftm
.
getXbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs2
())
||
shiftm
.
getXbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
4
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks2
())
||
shiftm
.
getXbqjks2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs2
())
||
shiftm
.
getXbqjjs2
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs2
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
if
(
shiftm
.
getSxbcs
()
==
3
){
//3次上下班
for
(
int
o
=
0
;
o
<
2
;
o
++){
if
(
o
==
0
){
if
(
isSbdk3Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
5
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks3
())
||
shiftm
.
getSbqjks3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs3
())
||
shiftm
.
getSbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getSbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
5
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getSbqjks3
())
||
shiftm
.
getSbqjks3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getSbqjjs3
())
||
shiftm
.
getSbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getSbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
else
{
if
(
isXbdk3Cr
>
0
)
{
//次日
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
6
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks3
())
||
shiftm
.
getXbqjks3
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs3
())
||
shiftm
.
getXbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
next_day
+
" "
+
shiftm
.
getXbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
1
).
build
();
atts
.
add
(
as
);
}
else
{
AttSchedule
as
=
AttSchedule
.
builder
().
id
(
shiftm
.
getId
()).
sort
(
6
).
time
(
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbdk3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
starttime
((
""
).
equals
(
shiftm
.
getXbqjks3
())
||
shiftm
.
getXbqjks3
()==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjks3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
endtime
((
""
).
equals
(
shiftm
.
getXbqjjs3
())
||
shiftm
.
getXbqjjs3
()
==
null
?
0
:
Long
.
valueOf
(
ClockInTool
.
dateToStamp
((
str
+
" "
+
shiftm
.
getXbqjjs3
()+
":00"
).
replaceAll
(
"\r|\n"
,
""
))))
.
nextday
(
0
).
build
();
atts
.
add
(
as
);
}
}
}
attcar
.
setAttsch
(
atts
);
}
}
...
...
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