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
51a12f90
Commit
51a12f90
authored
Aug 01, 2020
by
ilal
Committed by
chenzg
Jul 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
861f0005
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
149 additions
and
72 deletions
+149
-72
src/main/java/cn/timer/api/bean/zzgl/ZzglCodeLogin.java
+4
-0
src/main/java/cn/timer/api/controller/LoginController.java
+34
-47
src/main/java/cn/timer/api/controller/kqgl/ClockInController.java
+102
-21
src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java
+2
-2
src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java
+3
-1
src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java
+2
-0
src/main/resources/mapping/kqmk/KqglAssoDkjlMapper.xml
+1
-1
src/main/resources/mapping/zzgl/ZzglCodeLoginMapper.xml
+1
-0
No files found.
src/main/java/cn/timer/api/bean/zzgl/ZzglCodeLogin.java
View file @
51a12f90
...
@@ -44,5 +44,8 @@ public class ZzglCodeLogin extends Model<ZzglCodeLogin> {
...
@@ -44,5 +44,8 @@ public class ZzglCodeLogin extends Model<ZzglCodeLogin> {
@ApiModelProperty
(
value
=
"vlaue "
,
example
=
"vlaue"
)
@ApiModelProperty
(
value
=
"vlaue "
,
example
=
"vlaue"
)
private
String
vlaue
;
private
String
vlaue
;
@ApiModelProperty
(
value
=
"vlaue "
,
example
=
"vlaue"
)
private
Long
datatime
;
}
}
\ No newline at end of file
src/main/java/cn/timer/api/controller/LoginController.java
View file @
51a12f90
...
@@ -9,6 +9,7 @@ import java.util.Date;
...
@@ -9,6 +9,7 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
javax.management.Query
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
...
@@ -909,7 +910,6 @@ public class LoginController {
...
@@ -909,7 +910,6 @@ public class LoginController {
@PostMapping
(
value
=
"/extracting_code"
)
@PostMapping
(
value
=
"/extracting_code"
)
@ApiOperation
(
value
=
"获取二维码"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"获取二维码"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
Extracting_QR_code
(
HttpServletResponse
response
)
throws
Exception
{
public
Result
<
Object
>
Extracting_QR_code
(
HttpServletResponse
response
)
throws
Exception
{
//生成数据块,传给客户端,同时二维码里的内容也是这个数据块
//生成数据块,传给客户端,同时二维码里的内容也是这个数据块
String
timercode
=
String
.
valueOf
(
new
Date
().
getTime
());
String
timercode
=
String
.
valueOf
(
new
Date
().
getTime
());
String
randomnum
=
String
.
valueOf
((
int
)(
1
+
Math
.
random
()*(
10
-
1
+
1
)));
//随机数
String
randomnum
=
String
.
valueOf
((
int
)(
1
+
Math
.
random
()*(
10
-
1
+
1
)));
//随机数
...
@@ -918,34 +918,31 @@ public class LoginController {
...
@@ -918,34 +918,31 @@ public class LoginController {
HashMap
<
String
,
String
>
hashMap
=
new
HashMap
<
String
,
String
>();
HashMap
<
String
,
String
>
hashMap
=
new
HashMap
<
String
,
String
>();
hashMap
.
put
(
"type"
,
"longin"
);
hashMap
.
put
(
"type"
,
"longin"
);
hashMap
.
put
(
"scancode"
,
key
);
hashMap
.
put
(
"scancode"
,
key
);
//转json格式,这里需要用到fastjson包
// String result = JSONObject.fromObject(hashMap).toString();
hashMap
.
put
(
"code"
,
"200"
);
hashMap
.
put
(
"message"
,
""
);
hashMap
.
put
(
"result"
,
"true"
);
String
result
=
new
cn
.
hutool
.
json
.
JSONObject
(
hashMap
).
toString
();
//转化为json格式
String
result
=
new
cn
.
hutool
.
json
.
JSONObject
(
hashMap
).
toString
();
//转化为json格式
System
.
out
.
println
(
"全部信息="
+
result
);
//打印json串
System
.
out
.
println
(
"全部信息="
+
result
);
//打印json串
// session.setAttribute(key,timercode);
// session.setAttribute(key+"_code","1");
ZzglCodeLogin
.
builder
().
keyCode
(
key
).
vlaue
(
timercode
).
build
().
insert
();
ZzglCodeLogin
.
builder
().
keyCode
(
key
).
vlaue
(
timercode
).
datatime
(
new
Date
().
getTime
()).
build
().
insert
();
ZzglCodeLogin
.
builder
().
keyCode
(
key
+
"_code"
).
vlaue
(
"1"
).
build
().
insert
();
ZzglCodeLogin
.
builder
().
keyCode
(
key
+
"_code"
).
vlaue
(
"1"
).
datatime
(
new
Date
().
getTime
()).
build
().
insert
();
// PrintWriter pw = response.getWriter();
ServletOutputStream
pw
=
response
.
getOutputStream
();
ServletOutputStream
pw
=
response
.
getOutputStream
();
pw
.
print
(
result
);
pw
.
print
(
result
);
pw
.
flush
();
pw
.
flush
();
pw
.
close
();
pw
.
close
();
return
ResultUtil
.
data
(
key
,
"成功"
);
return
null
;
// return ResultUtil.data(key,"成功");
}
}
@PostMapping
(
value
=
"/scan_code_login"
)
@PostMapping
(
value
=
"/scan_code_login"
)
@ApiOperation
(
value
=
"扫码登录"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"扫码登录"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
QyzxEmpLogin
>
Scan_code_login
(
@
CurrentUser
UserBean
userBean
,
@
RequestBody
ScancodeloginparametersDto
scancodelogin
,
HttpServletRequest
request
)
throws
ParseException
{
public
Result
<
QyzxEmpLogin
>
Scan_code_login
(
@RequestBody
ScancodeloginparametersDto
scancodelogin
,
HttpServletRequest
request
)
throws
ParseException
{
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
// String timer_code = session.getAttribute(scancodelogin.getKey()+"_code").toString(); //扫码状态
// String timercode = session.getAttribute(scancodelogin.getKey()).toString(); //扫码时间
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
String
timercode
=
colo
.
getVlaue
();
String
timercode
=
colo
.
getVlaue
();
...
@@ -957,24 +954,35 @@ public class LoginController {
...
@@ -957,24 +954,35 @@ public class LoginController {
//key
//key
//计算
//计算
//1:没人扫码 2:扫码成功 3:登录成功
//1:没人扫码 2:扫码成功 3:登录成功
4:过期
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
if
(
sd1
.
after
(
sd2
))
{
if
(
sd1
.
after
(
sd2
))
{
if
(
timer_code
.
equals
(
"1"
))
{
if
(
timer_code
.
equals
(
"1"
))
{
return
ResultUtil
.
success
(
"..没人扫码.."
);
//等待
return
ResultUtil
.
success
(
"1"
);
}
else
if
(
timer_code
.
equals
(
"2"
))
{
}
else
if
(
timer_code
.
equals
(
"2"
))
{
//扫码成功
return
ResultUtil
.
success
(
"
扫码成功.
"
);
return
ResultUtil
.
success
(
"
2
"
);
}
else
if
(
timer_code
.
equals
(
"3"
)){
}
else
if
(
timer_code
.
equals
(
"3"
)){
ZzglCodeLogin
num
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_empnum"
));
int
EmpNum
=
Integer
.
valueOf
(
num
.
getVlaue
());
ZzglCodeLogin
orco
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_orgcode"
));
int
OrgCode
=
Integer
.
valueOf
(
orco
.
getVlaue
());
YgglMainEmp
ygam
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getEmpNum
,
userBean
.
getEmpNum
()).
eq
(
YgglMainEmp:
:
getOrgCode
,
userBean
.
getOrgCode
()
));
YgglMainEmp
ygam
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getEmpNum
,
EmpNum
).
eq
(
YgglMainEmp:
:
getOrgCode
,
OrgCode
));
if
(
ygam
!=
null
)
{
if
(
ygam
!=
null
)
{
QyzxEmpLogin
qyzxEmpLogin1
=
new
LambdaQueryChainWrapper
<
QyzxEmpLogin
>(
qyzxEmpLoginMapper
)
QyzxEmpLogin
qyzxEmpLogin1
=
new
LambdaQueryChainWrapper
<
QyzxEmpLogin
>(
qyzxEmpLoginMapper
)
.
eq
(
QyzxEmpLogin:
:
getPhone
,
ygam
.
getPhone
()).
one
();
.
eq
(
QyzxEmpLogin:
:
getPhone
,
ygam
.
getPhone
()).
one
();
if
(
qyzxEmpLogin1
!=
null
)
{
if
(
qyzxEmpLogin1
!=
null
)
{
ZzglCodeLogin
.
builder
().
build
().
delete
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
ZzglCodeLogin
.
builder
().
build
().
delete
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_code"
));
ZzglCodeLogin
.
builder
().
build
().
delete
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_empnum"
));
ZzglCodeLogin
.
builder
().
build
().
delete
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_orgcode"
));
return
loginhan
(
qyzxEmpLogin1
,
request
);
return
loginhan
(
qyzxEmpLogin1
,
request
);
}
else
{
}
else
{
return
ResultUtil
.
error
(
"登录失败"
);
return
ResultUtil
.
error
(
"登录失败"
);
...
@@ -986,7 +994,8 @@ public class LoginController {
...
@@ -986,7 +994,8 @@ public class LoginController {
return
ResultUtil
.
error
(
"验证失败"
);
return
ResultUtil
.
error
(
"验证失败"
);
}
}
}
else
{
}
else
{
return
ResultUtil
.
error
(
"二维码已过期"
);
// return ResultUtil.error("二维码已过期");
return
ResultUtil
.
success
(
"4"
);
}
}
}
}
...
@@ -999,10 +1008,7 @@ public class LoginController {
...
@@ -999,10 +1008,7 @@ public class LoginController {
@ApiOperation
(
value
=
"手机端扫码登录"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"手机端扫码登录"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
scanLogin
(
@RequestBody
ScancodeloginparametersDto
scancodelogin
)
throws
ParseException
{
public
Result
<
Object
>
scanLogin
(
@RequestBody
ScancodeloginparametersDto
scancodelogin
)
throws
ParseException
{
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
if
(
scancodelogin
.
getKey
()
!=
null
)
{
if
(
scancodelogin
.
getKey
()
!=
null
)
{
// String timercode = session.getAttribute(scancodelogin.getKey()).toString(); //扫码时间
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
if
(
colo
!=
null
)
{
if
(
colo
!=
null
)
{
String
timercode
=
colo
.
getVlaue
();
String
timercode
=
colo
.
getVlaue
();
...
@@ -1013,9 +1019,7 @@ public class LoginController {
...
@@ -1013,9 +1019,7 @@ public class LoginController {
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
if
(
sd1
.
after
(
sd2
))
{
if
(
sd1
.
after
(
sd2
))
{
// session.setAttribute(scancodelogin.getKey()+"_code","2");
ZzglCodeLogin
.
builder
().
vlaue
(
"2"
).
build
().
update
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_code"
));
ZzglCodeLogin
.
builder
().
vlaue
(
"2"
).
build
().
update
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_code"
));
return
ResultUtil
.
success
(
"扫码成功"
);
return
ResultUtil
.
success
(
"扫码成功"
);
}
else
{
}
else
{
return
ResultUtil
.
error
(
"二维码已过期"
);
return
ResultUtil
.
error
(
"二维码已过期"
);
...
@@ -1023,11 +1027,9 @@ public class LoginController {
...
@@ -1023,11 +1027,9 @@ public class LoginController {
}
else
{
}
else
{
return
ResultUtil
.
error
(
"扫码失败"
);
return
ResultUtil
.
error
(
"扫码失败"
);
}
}
}
else
{
}
else
{
return
ResultUtil
.
error
(
"验证失败"
);
return
ResultUtil
.
error
(
"验证失败"
);
}
}
}
}
@PostMapping
(
value
=
"/scanLoginOk"
)
@PostMapping
(
value
=
"/scanLoginOk"
)
...
@@ -1036,34 +1038,19 @@ public class LoginController {
...
@@ -1036,34 +1038,19 @@ public class LoginController {
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
String
current_time
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
());
if
(
scancodelogin
.
getKey
()
!=
null
)
{
if
(
scancodelogin
.
getKey
()
!=
null
)
{
// String timercode = session.getAttribute(scancodelogin.getKey()).toString(); //扫码时间
ZzglCodeLogin
.
builder
().
keyCode
(
scancodelogin
.
getKey
()+
"_empnum"
).
vlaue
(
String
.
valueOf
(
userBean
.
getEmpNum
())).
datatime
(
new
Date
().
getTime
()).
build
().
insert
();
ZzglCodeLogin
.
builder
().
keyCode
(
scancodelogin
.
getKey
()+
"_orgcode"
).
vlaue
(
String
.
valueOf
(
userBean
.
getOrgCode
())).
datatime
(
new
Date
().
getTime
()).
build
().
insert
();
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
ZzglCodeLogin
colo
=
ZzglCodeLogin
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()));
String
timercode
=
colo
.
getVlaue
();
String
timercode
=
colo
.
getVlaue
();
timercode
=
ClockInTool
.
stampToDate
(
timercode
);
timercode
=
ClockInTool
.
stampToDate
(
timercode
);
long
changed_time
=
Long
.
valueOf
(
ClockInTool
.
dateToStamp
(
ClockInTool
.
addtime
(
timercode
,
"+"
+
expiration_time
)));
long
changed_time
=
Long
.
valueOf
(
ClockInTool
.
dateToStamp
(
ClockInTool
.
addtime
(
timercode
,
"+"
+
expiration_time
)));
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd1
=
df1
.
parse
(
ClockInTool
.
stampToDate
(
String
.
valueOf
(
changed_time
)));
//当天应打的首次上班卡时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
Date
sd2
=
df1
.
parse
(
current_time
);
//当前时间
if
(
sd1
.
after
(
sd2
))
{
if
(
sd1
.
after
(
sd2
))
{
ZzglCodeLogin
.
builder
().
vlaue
(
"3"
).
build
().
update
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_code"
));
ZzglCodeLogin
.
builder
().
vlaue
(
"3"
).
build
().
update
(
new
QueryWrapper
<
ZzglCodeLogin
>().
lambda
().
eq
(
ZzglCodeLogin:
:
getKeyCode
,
scancodelogin
.
getKey
()+
"_code"
));
// session.setAttribute(scancodelogin.getKey()+"_code","3");
return
ResultUtil
.
success
(
"登录成功"
);
YgglMainEmp
ygam
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getEmpNum
,
userBean
.
getEmpNum
()).
eq
(
YgglMainEmp:
:
getOrgCode
,
userBean
.
getOrgCode
()));
if
(
ygam
!=
null
)
{
QyzxEmpLogin
qyzxEmpLogin1
=
new
LambdaQueryChainWrapper
<
QyzxEmpLogin
>(
qyzxEmpLoginMapper
)
.
eq
(
QyzxEmpLogin:
:
getPhone
,
ygam
.
getPhone
()).
one
();
if
(
qyzxEmpLogin1
!=
null
)
{
return
loginhan
(
qyzxEmpLogin1
,
request
);
}
else
{
return
ResultUtil
.
error
(
"登录失败"
);
}
}
else
{
return
ResultUtil
.
error
(
"登录有误"
);
}
}
else
{
}
else
{
return
ResultUtil
.
error
(
"二维码已过期"
);
return
ResultUtil
.
error
(
"二维码已过期"
);
}
}
...
...
src/main/java/cn/timer/api/controller/kqgl/ClockInController.java
View file @
51a12f90
...
@@ -1660,6 +1660,7 @@ public class ClockInController {
...
@@ -1660,6 +1660,7 @@ public class ClockInController {
}
else
if
(
clock
.
getType
()
==
2
){
}
else
if
(
clock
.
getType
()
==
2
){
if
(
dkmc
.
getSbdk1
()
!=
null
&&
dkmc
.
getXbdk1
()
==
null
){
if
(
dkmc
.
getSbdk1
()
!=
null
&&
dkmc
.
getXbdk1
()
==
null
){
kskd
=
false
;
kskd
=
false
;
atttype
=
clock
.
getType
();
}
else
{
}
else
{
//最后一次卡的时候 再继续打视为更新最后一次打卡
//最后一次卡的时候 再继续打视为更新最后一次打卡
kskd
=
true
;
//更新最后一次打卡
kskd
=
true
;
//更新最后一次打卡
...
@@ -2111,7 +2112,7 @@ public class ClockInController {
...
@@ -2111,7 +2112,7 @@ public class ClockInController {
String
attdate_
=
new
SimpleDateFormat
(
"yy-MM-dd"
).
format
(
Double
.
valueOf
(
attendance_date
));
//转换打卡时间格式
String
attdate_
=
new
SimpleDateFormat
(
"yy-MM-dd"
).
format
(
Double
.
valueOf
(
attendance_date
));
//转换打卡时间格式
//true:确认为最后一次打卡更新打卡时 之前打卡的一条数据变为“打卡更新数据”
//true:确认为最后一次打卡更新打卡时 之前打卡的一条数据变为“打卡更新数据”
if
(
kskd
&&
(
atttype
==
2
||
atttype
==
4
||
atttype
==
6
))
{
if
(
kskd
&&
(
atttype
==
2
||
atttype
==
4
||
atttype
==
6
)
&&
attdate
.
getAttgrouptype
()
!=
3
)
{
KqglAssoDkjl
dkjj
=
KqglAssoDkjl
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoDkjl
>().
lambda
().
eq
(
KqglAssoDkjl:
:
getUserId
,
userid
).
eq
(
KqglAssoDkjl:
:
getType
,
2
)
KqglAssoDkjl
dkjj
=
KqglAssoDkjl
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoDkjl
>().
lambda
().
eq
(
KqglAssoDkjl:
:
getUserId
,
userid
).
eq
(
KqglAssoDkjl:
:
getType
,
2
)
.
eq
(
KqglAssoDkjl:
:
getSort
,
atttype
).
eq
(
KqglAssoDkjl:
:
getQyid
,
qyid
).
eq
(
KqglAssoDkjl:
:
getAttdate
,
attdate_
+
" "
+
ClockInTool
.
dateToWeek2
(
toweek
)));
.
eq
(
KqglAssoDkjl:
:
getSort
,
atttype
).
eq
(
KqglAssoDkjl:
:
getQyid
,
qyid
).
eq
(
KqglAssoDkjl:
:
getAttdate
,
attdate_
+
" "
+
ClockInTool
.
dateToWeek2
(
toweek
)));
...
@@ -2305,6 +2306,8 @@ public class ClockInController {
...
@@ -2305,6 +2306,8 @@ public class ClockInController {
Timestamp
b
=
Timestamp
.
valueOf
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
()));
//当前时间
Timestamp
b
=
Timestamp
.
valueOf
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
new
Date
()));
//当前时间
String
now
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
).
format
(
new
Date
());
KqglMainKqz
attgro
=
kqglmainkqzmapper
.
getAttendanceGroupInformationByUserid
(
userBean
.
getEmpNum
(),
userBean
.
getOrgCode
());
//考勤组信息
KqglMainKqz
attgro
=
kqglmainkqzmapper
.
getAttendanceGroupInformationByUserid
(
userBean
.
getEmpNum
(),
userBean
.
getOrgCode
());
//考勤组信息
if
(
attgro
!=
null
)
{
if
(
attgro
!=
null
)
{
...
@@ -2313,6 +2316,7 @@ public class ClockInController {
...
@@ -2313,6 +2316,7 @@ public class ClockInController {
//打卡记录
//打卡记录
// List<KqglAssoDkjl> dajllist = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum());
// List<KqglAssoDkjl> dajllist = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum());
// attdate.setAttpr(dajllist);
// attdate.setAttpr(dajllist);
int
dkcs
=
0
;
if
(
attdate
.
getAttgrouptype
()
!=
3
)
{
if
(
attdate
.
getAttgrouptype
()
!=
3
)
{
List
<
AttSchedule
>
attsch
=
attdate
.
getAttsch
();
List
<
AttSchedule
>
attsch
=
attdate
.
getAttsch
();
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
attsch
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
if
(
EmptyUtil
.
isNotEmpty
(
attdate
.
getAttsch
())
&&
attsch
.
get
(
0
).
getId
()
!=
0
)
{
//班次不为空
...
@@ -2324,13 +2328,42 @@ public class ClockInController {
...
@@ -2324,13 +2328,42 @@ public class ClockInController {
//有范围
//有范围
if
(
ash
.
getStarttime
()
!=
0
&&
ash
.
getEndtime
()
!=
0
)
{
if
(
ash
.
getStarttime
()
!=
0
&&
ash
.
getEndtime
()
!=
0
)
{
boolean
ectivedate
=
ClockInTool
.
hourMinuteBetween
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
nowdate
),
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
ash
.
getStarttime
()),
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
ash
.
getEndtime
()),
"yyyy-MM-dd HH:mm"
);
boolean
ectivedate
=
ClockInTool
.
hourMinuteBetween
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
nowdate
),
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
ash
.
getStarttime
()),
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
).
format
(
ash
.
getEndtime
()),
"yyyy-MM-dd HH:mm"
);
if
(
ectivedate
)
{
bsz
=
1
;
String
timme
=
ClockInTool
.
stampToDate2
(
String
.
valueOf
(
ash
.
getTime
()));
ash
.
setIsdk
(
0
);
}
else
{
if
(
r
==
1
)
{
bc
++;
if
(
ectivedate
)
{
ash
.
setIsdk
(
1
);
bsz
=
1
;
ash
.
setIsdk
(
0
);
}
else
{
bc
++;
ash
.
setIsdk
(
1
);
if
(!
now
.
equals
(
timme
))
{
//小于
ash
.
setIsupdate
(
0
);
}
else
{
ash
.
setIsupdate
(
1
);
}
}
}
if
(
r
==
2
)
{
if
(
ectivedate
)
{
bsz
=
1
;
ash
.
setIsdk
(
0
);
}
else
{
bc
++;
ash
.
setIsdk
(
1
);
if
(!
now
.
equals
(
timme
))
{
//小于
ash
.
setIsupdate
(
0
);
}
else
{
ash
.
setIsupdate
(
1
);
}
}
}
}
r
++;
//是否请假
//是否请假
KqglAssoRelationSummary
leainv
=
kqglassorelationsummarymapper
.
leaveinvesti
(
userBean
.
getEmpNum
(),
2
,
str
,
userBean
.
getOrgCode
());
KqglAssoRelationSummary
leainv
=
kqglassorelationsummarymapper
.
leaveinvesti
(
userBean
.
getEmpNum
(),
2
,
str
,
userBean
.
getOrgCode
());
...
@@ -2404,7 +2437,9 @@ public class ClockInController {
...
@@ -2404,7 +2437,9 @@ public class ClockInController {
}
}
}
}
////
List
<
KqglAssoDkjl
>
dajllist_
=
kqglassodkjlmapper
.
getDetailedRecordClock
(
startDate
,
endDate
,
userBean
.
getEmpNum
());
List
<
KqglAssoDkjl
>
dajllist_
=
kqglassodkjlmapper
.
getDetailedRecordClock
(
startDate
,
endDate
,
userBean
.
getEmpNum
());
dkcs
=
dajllist_
.
size
();
KqglAssoDkjl
dkjl
=
KqglAssoDkjl
.
builder
().
build
();
KqglAssoDkjl
dkjl
=
KqglAssoDkjl
.
builder
().
build
();
for
(
KqglAssoDkjl
daj
:
dajllist_
)
{
for
(
KqglAssoDkjl
daj
:
dajllist_
)
{
if
(
ash
.
getId
()
==
daj
.
getBcid
()
&&
ash
.
getSort
()
==
daj
.
getSort
())
{
//班次id和打卡顺序对应
if
(
ash
.
getId
()
==
daj
.
getBcid
()
&&
ash
.
getSort
()
==
daj
.
getSort
())
{
//班次id和打卡顺序对应
...
@@ -2417,11 +2452,41 @@ public class ClockInController {
...
@@ -2417,11 +2452,41 @@ public class ClockInController {
}
}
}
}
}
}
KqglAssoBcsz
shif
=
KqglAssoBcsz
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoBcsz
>().
lambda
().
eq
(
KqglAssoBcsz:
:
getId
,
ash
.
getId
()));
if
(
shif
.
getIsXbdk
()
==
1
&&
(
ash
.
getSort
())%
2
==
0
)
{
if
(
dkjl
.
getDktime
()
==
null
)
{
KqglAssoDkjl
dkjl_
=
KqglAssoDkjl
.
builder
().
build
();
dkjl_
.
setDktime
(
ash
.
getTime
());
dkjl_
.
setStatus
(
1
);
dkjl_
.
setSort
(
ash
.
getSort
());
dkjl_
.
setId
(
999
);
BeanUtil
.
copyProperties
(
dkjl_
,
dkjl
);
}
else
{
dkjl
.
setStatus
(
1
);
}
}
ash
.
setDajl
(
dkjl
);
ash
.
setDajl
(
dkjl
);
}
}
boolean
lcdkgb
=
true
;
if
(
attdate
.
getAttsch
().
size
()
==
2
&&
dkcs
==
2
)
{
lcdkgb
=
false
;
KqglAssoDkjl
dk
=
KqglAssoDkjl
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoDkjl
>().
lambda
().
eq
(
KqglAssoDkjl:
:
getQyid
,
userBean
.
getOrgCode
())
.
eq
(
KqglAssoDkjl:
:
getUserId
,
userBean
.
getEmpNum
()).
ge
(
KqglAssoDkjl:
:
getDktime
,
startDate
).
le
(
KqglAssoDkjl:
:
getDktime
,
endDate
)
.
ne
(
KqglAssoDkjl:
:
getSort
,
0
).
ne
(
KqglAssoDkjl:
:
getStatus
,
2
).
ne
(
KqglAssoDkjl:
:
getStatus
,
0
)
.
orderByDesc
(
KqglAssoDkjl:
:
getSort
).
last
(
"LIMIT 1"
));
AttSchedule
att
=
attsch
.
get
(
dk
.
getSort
()-
1
);
att
.
setIsupdate
(
1
);
AttSchedule
attw
=
attsch
.
get
(
dk
.
getSort
()-
2
);
attw
.
setIsupdate
(
0
);
}
//全部为 1 时
//全部为 1 时
if
(
bccs
==
bc
&&
b
.
before
(
d
))
{
if
(
bccs
==
bc
&&
b
.
before
(
d
)
&&
lcdkgb
)
{
KqglAssoDkjl
dk
=
KqglAssoDkjl
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoDkjl
>().
lambda
().
eq
(
KqglAssoDkjl:
:
getQyid
,
userBean
.
getOrgCode
())
KqglAssoDkjl
dk
=
KqglAssoDkjl
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
KqglAssoDkjl
>().
lambda
().
eq
(
KqglAssoDkjl:
:
getQyid
,
userBean
.
getOrgCode
())
.
eq
(
KqglAssoDkjl:
:
getUserId
,
userBean
.
getEmpNum
()).
ge
(
KqglAssoDkjl:
:
getDktime
,
startDate
).
le
(
KqglAssoDkjl:
:
getDktime
,
endDate
)
.
eq
(
KqglAssoDkjl:
:
getUserId
,
userBean
.
getEmpNum
()).
ge
(
KqglAssoDkjl:
:
getDktime
,
startDate
).
le
(
KqglAssoDkjl:
:
getDktime
,
endDate
)
.
ne
(
KqglAssoDkjl:
:
getSort
,
0
).
ne
(
KqglAssoDkjl:
:
getStatus
,
2
).
ne
(
KqglAssoDkjl:
:
getStatus
,
0
)
.
ne
(
KqglAssoDkjl:
:
getSort
,
0
).
ne
(
KqglAssoDkjl:
:
getStatus
,
2
).
ne
(
KqglAssoDkjl:
:
getStatus
,
0
)
...
@@ -2453,25 +2518,41 @@ public class ClockInController {
...
@@ -2453,25 +2518,41 @@ public class ClockInController {
KqglAssoDkjl
dkjl
=
KqglAssoDkjl
.
builder
().
build
();
KqglAssoDkjl
dkjl
=
KqglAssoDkjl
.
builder
().
build
();
if
(
dajllist_
.
size
()
>
0
)
{
if
(
dajllist_
.
size
()
>
0
)
{
for
(
KqglAssoDkjl
ddk
:
dajllist_
)
{
for
(
int
i
=
1
;
i
<=
dajllist_
.
size
();
i
++){
BeanUtil
.
copyProperties
(
ddk
,
dkjl
,
"attdate"
,
"bcid"
,
"remarks"
,
"userId"
,
"attime"
,
"dkmxid"
,
"commentary"
,
"punchequipment"
,
"punchmode"
);
for
(
KqglAssoDkjl
ddk
:
dajllist_
)
{
BeanUtil
.
copyProperties
(
ddk
,
dkjl
,
"attdate"
,
"bcid"
,
"remarks"
,
"userId"
,
"attime"
,
"dkmxid"
,
"commentary"
,
"punchequipment"
,
"punchmode"
);
}
AttSchedule
ast
=
AttSchedule
.
builder
().
build
();
ast
.
setId
(
0
);
ast
.
setIsdk
(
1
);
ast
.
setDajl
(
dkjl
);
ast
.
setSort
(
i
);
attsch
.
add
(
ast
);
attdate
.
setAttsch
(
attsch
);
}
}
KqglAssoDkjl
dkjj_
=
KqglAssoDkjl
.
builder
().
build
();
AttSchedule
ast_
=
AttSchedule
.
builder
().
build
();
ast_
.
setId
(
0
);
ast_
.
setIsdk
(
0
);
ast_
.
setDajl
(
dkjj_
);
ast_
.
setSort
(
dajllist_
.
size
()
+
1
);
attsch
.
add
(
ast_
);
attdate
.
setAttsch
(
attsch
);
}
else
{
KqglAssoDkjl
dkjj
=
KqglAssoDkjl
.
builder
().
build
();
AttSchedule
ast
=
AttSchedule
.
builder
().
build
();
AttSchedule
ast
=
AttSchedule
.
builder
().
build
();
ast
.
setId
(
0
);
ast
.
setId
(
0
);
ast
.
setIsdk
(
1
);
ast
.
setIsdk
(
0
);
ast
.
setDajl
(
dkjl
);
ast
.
setDajl
(
dkjj
);
ast
.
setSort
(
1
);
attsch
.
add
(
ast
);
attsch
.
add
(
ast
);
attdate
.
setAttsch
(
attsch
);
attdate
.
setAttsch
(
attsch
);
}
}
KqglAssoDkjl
dkjj
=
KqglAssoDkjl
.
builder
().
build
();
AttSchedule
ast
=
AttSchedule
.
builder
().
build
();
ast
.
setId
(
0
);
ast
.
setIsdk
(
0
);
ast
.
setDajl
(
dkjj
);
attsch
.
add
(
ast
);
attdate
.
setAttsch
(
attsch
);
}
}
//外勤 true:开 false:关
//外勤 true:开 false:关
...
...
src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java
View file @
51a12f90
...
@@ -118,10 +118,10 @@ public class AttendanceTaskTiming{
...
@@ -118,10 +118,10 @@ public class AttendanceTaskTiming{
//typeid:1-员工 2-考勤组
//typeid:1-员工 2-考勤组
// @Scheduled(cron = "0 37 18 * * ?") // 测试:5秒执行一次 0 0 19 * * ?
// @Scheduled(cron = "0 */5 * * * ?")
// @Scheduled(cron = "0 */5 * * * ?")
// @Scheduled(cron = "0 47 8 * * ?")
// @Scheduled(cron = "0 47 8 * * ?")
@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 = false;
// boolean implement = false;
...
...
src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java
View file @
51a12f90
...
@@ -116,13 +116,15 @@ public class SpmkServiceImpl implements SpmkService{
...
@@ -116,13 +116,15 @@ public class SpmkServiceImpl implements SpmkService{
SpmkExecutor
exe
=
null
;
SpmkExecutor
exe
=
null
;
SpmkApproveExecuteRecord
exere
=
SpmkApproveExecuteRecord
.
builder
().
build
()
SpmkApproveExecuteRecord
exere
=
SpmkApproveExecuteRecord
.
builder
().
build
()
.
selectOne
(
new
QueryWrapper
<
SpmkApproveExecuteRecord
>().
lambda
().
select
(
SpmkApproveExecuteRecord:
:
getId
).
eq
(
SpmkApproveExecuteRecord:
:
getApproveSummaryId
,
sum
.
getId
()));
.
selectOne
(
new
QueryWrapper
<
SpmkApproveExecuteRecord
>().
lambda
().
select
(
SpmkApproveExecuteRecord:
:
getId
).
eq
(
SpmkApproveExecuteRecord:
:
getApproveSummaryId
,
sum
.
getId
())
.
eq
(
SpmkApproveExecuteRecord:
:
getSts
,
1
));
if
(
exere
!=
null
)
{
if
(
exere
!=
null
)
{
exe
=
SpmkExecutor
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
SpmkExecutor
>().
lambda
().
eq
(
SpmkExecutor:
:
getApproveExecuteRecordId
,
exere
.
getId
()));
exe
=
SpmkExecutor
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
SpmkExecutor
>().
lambda
().
eq
(
SpmkExecutor:
:
getApproveExecuteRecordId
,
exere
.
getId
()));
}
}
if
(
exe
!=
null
)
{
if
(
exe
!=
null
)
{
adD
.
setExecuteEmpNum
(
exe
.
getEmpNum
());
adD
.
setExecuteEmpNum
(
exe
.
getEmpNum
());
adD
.
setExecuteSts
(
exe
.
getSts
());
}
}
}
}
...
...
src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java
View file @
51a12f90
...
@@ -48,5 +48,7 @@ public class SpmkApproveDetailDto {
...
@@ -48,5 +48,7 @@ public class SpmkApproveDetailDto {
private
Integer
sts
;
private
Integer
sts
;
private
Integer
executeEmpNum
;
//当前审批中 当前执行人的id
private
Integer
executeEmpNum
;
//当前审批中 当前执行人的id
private
Integer
executeSts
;
}
}
src/main/resources/mapping/kqmk/KqglAssoDkjlMapper.xml
View file @
51a12f90
...
@@ -83,7 +83,7 @@
...
@@ -83,7 +83,7 @@
where dkjl.attime
>
= #{start}
where dkjl.attime
>
= #{start}
and dkjl.attime
<
= #{end}
and dkjl.attime
<
= #{end}
and dkjl.user_id = #{userId,jdbcType=INTEGER}
and dkjl.user_id = #{userId,jdbcType=INTEGER}
and dkjl.status
!= 0
and dkjl.status
not in (0,2)
</select>
</select>
<!--
<!--
...
...
src/main/resources/mapping/zzgl/ZzglCodeLoginMapper.xml
View file @
51a12f90
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<id
column=
"id"
property=
"id"
/>
<id
column=
"id"
property=
"id"
/>
<result
column=
"key_code"
property=
"keyCode"
/>
<result
column=
"key_code"
property=
"keyCode"
/>
<result
column=
"vlaue"
property=
"vlaue"
/>
<result
column=
"vlaue"
property=
"vlaue"
/>
<result
column=
"datatime"
property=
"datatime"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
...
...
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