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
9d25b0a7
Commit
9d25b0a7
authored
Jul 04, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.scsmile.cn/zxf/attendance-performance-platform
parents
0c091c46
59872705
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
418 additions
and
163 deletions
+418
-163
attendance-performance-manager/pom.xml
attendance-performance-manager/pom.xml
+7
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
...com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
+70
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java
.../mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java
+73
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/req/DingTalkBaseReq.java
...a/com/mortals/xhx/busiz/dingtalk/req/DingTalkBaseReq.java
+13
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/StaffSatusEnum.java
...main/java/com/mortals/xhx/common/code/StaffSatusEnum.java
+68
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
...a/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
+6
-3
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+18
-32
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java
...module/attendance/service/AttendanceRecordHikService.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
...tendance/service/impl/AttendanceRecordHikServiceImpl.java
+74
-76
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java
.../attendance/service/impl/AttendanceRecordServiceImpl.java
+19
-22
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
.../xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/model/rsp/person/PersonInfo.java
...ls/xhx/module/hik/person/model/rsp/person/PersonInfo.java
+5
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
.../module/hik/person/service/impl/HikPersonServiceImpl.java
+1
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
...rtals/xhx/module/staff/service/impl/StaffServiceImpl.java
+24
-18
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java
...ava/com/mortals/xhx/module/staff/web/StaffController.java
+0
-3
attendance-performance-manager/src/test/java/Sample.java
attendance-performance-manager/src/test/java/Sample.java
+38
-0
No files found.
attendance-performance-manager/pom.xml
View file @
9d25b0a7
...
@@ -141,6 +141,13 @@
...
@@ -141,6 +141,13 @@
<!-- <systemPath>${project.basedir}/src/main/resources/lib/artemis-http-client-1.1.8.jar</systemPath>-->
<!-- <systemPath>${project.basedir}/src/main/resources/lib/artemis-http-client-1.1.8.jar</systemPath>-->
</dependency>
</dependency>
<!--dingdingtalk sdk-->
<dependency>
<groupId>
com.aliyun
</groupId>
<artifactId>
dingtalk
</artifactId>
<version>
2.0.19
</version>
</dependency>
<dependency>
<dependency>
<groupId>
junit
</groupId>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<artifactId>
junit
</artifactId>
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/api/TalkApiController.java
0 → 100644
View file @
9d25b0a7
package
com.mortals.xhx.busiz.dingtalk.api
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.busiz.dingtalk.config.TalkConfiguration
;
import
com.mortals.xhx.busiz.dingtalk.req.DingTalkBaseReq
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.pdu.ApiRespPdu
;
import
lombok.extern.apachecommons.CommonsLog
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 钉钉相关外部接口
*
* @Author:
*/
@RestController
@Slf4j
public
class
TalkApiController
{
@Autowired
private
TalkConfiguration
talkConfiguration
;
/**
* 获取token
*
* @return
*/
@PostMapping
(
"/dingtalk/gettoken"
)
public
Rest
<
String
>
getToken
(
@RequestBody
DingTalkBaseReq
dingTalkBaseReq
)
{
log
.
info
(
"收到【getToken】请求【请求体】--> {}"
,
JSON
.
toJSONString
(
dingTalkBaseReq
));
try
{
// DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
// OapiGettokenRequest req = new OapiGettokenRequest();
// req.setHttpMethod("GET");
// OapiGettokenResponse rsp = client.execute(req);
/* DingTalkClient client = new DefaultDingTalkClient(talkConfiguration.getGetTokneUrl());
OapiGettokenRequest req = new OapiGettokenRequest();
req.setAppkey(apiKey);
req.setAppsecret(appsecret);
req.setHttpMethod("GET");
OapiGettokenResponse rsp = client.execute(req);
log.info("gettoken rsp:" + rsp.getBody());
if (rsp.getErrcode() == 0) {
apiRespPdu.setData(rsp.getAccessToken());
} else {
throw new AppException(String.format("errorCode:%s,errorMsg:%s", rsp.getErrcode(), rsp.getErrmsg()));
}
*/
}
catch
(
Exception
e
)
{
log
.
error
(
"异常"
,
e
);
return
Rest
.
fail
(
e
.
getMessage
());
}
return
Rest
.
ok
();
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/config/TalkConfiguration.java
0 → 100644
View file @
9d25b0a7
package
com.mortals.xhx.busiz.dingtalk.config
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
/**
* 钉钉配置
*
* @Author: ZXF
*/
@Data
@Configuration
public
class
TalkConfiguration
{
/**
* AgentId
*/
@Value
(
"${dingtalk.agentId:''}"
)
private
String
getAgentId
;
/**
* getToken
*/
@Value
(
"${dingtalk.gettoken:''}"
)
private
String
getTokneUrl
;
/**
* getbymobile
*/
@Value
(
"${dingtalk.getbymobile:''}"
)
private
String
getbymobile
;
/**
* getDeptbyUser
*/
@Value
(
"${dingtalk.getDeptbyUser:''}"
)
private
String
getDeptbyUser
;
/**
* workCreate
*/
@Value
(
"${dingtalk.workCreate:''}"
)
private
String
workCreate
;
/**
* processCode
*/
@Value
(
"${dingtalk.processCode:''}"
)
private
String
processCode
;
/**
* aesToken
*/
@Value
(
"${dingtalk.aesToken:''}"
)
private
String
aesToken
;
/**
* aseKey
*/
@Value
(
"${dingtalk.aesKey:''}"
)
private
String
aesKey
;
/**
* ownerKey
*/
@Value
(
"${dingtalk.ownerKey:''}"
)
private
String
ownerKey
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/dingtalk/req/DingTalkBaseReq.java
0 → 100644
View file @
9d25b0a7
package
com.mortals.xhx.busiz.dingtalk.req
;
import
lombok.Data
;
import
org.springframework.web.bind.annotation.RequestParam
;
@Data
public
class
DingTalkBaseReq
{
private
String
apiKey
;
private
String
appsecret
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/StaffSatusEnum.java
0 → 100644
View file @
9d25b0a7
package
com.mortals.xhx.common.code
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
/**
* 员工状态
* @author
*
*/
public
enum
StaffSatusEnum
{
正式
(
1
,
"正式"
),
试用
(
2
,
"试用"
),
离职
(
3
,
"离职"
),
;
private
int
value
;
private
String
desc
;
StaffSatusEnum
(
int
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
int
getValue
()
{
return
this
.
value
;
}
public
String
getDesc
()
{
return
desc
;
}
public
static
StaffSatusEnum
getByValue
(
int
value
)
{
for
(
StaffSatusEnum
examStatus
:
StaffSatusEnum
.
values
())
{
if
(
examStatus
.
getValue
()
==
value
)
{
return
examStatus
;
}
}
return
null
;
}
/**
* 获取Map集合
* @param eItem 不包含项
* @return
*/
public
static
Map
<
String
,
String
>
getEnumMap
(
int
...
eItem
)
{
Map
<
String
,
String
>
resultMap
=
new
LinkedHashMap
<
String
,
String
>();
for
(
StaffSatusEnum
item
:
StaffSatusEnum
.
values
())
{
try
{
boolean
hasE
=
false
;
for
(
int
e
:
eItem
){
if
(
item
.
getValue
()==
e
){
hasE
=
true
;
break
;
}
}
if
(!
hasE
){
resultMap
.
put
(
item
.
getValue
()+
""
,
item
.
getDesc
());
}
}
catch
(
Exception
ex
){
}
}
return
resultMap
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
View file @
9d25b0a7
...
@@ -116,7 +116,10 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
...
@@ -116,7 +116,10 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
recordHikEntity
.
initAttrValue
();
StaffEntity
staffCache
=
staffService
.
getExtCache
(
item
.
getJobNo
());
StaffEntity
staffCache
=
staffService
.
getExtCache
(
item
.
getJobNo
());
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
return
null
;
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
{
log
.
info
(
"staff is null !staffCode:{}"
,
item
.
getJobNo
());
return
null
;
}
recordHikEntity
.
setStaffId
(
staffCache
.
getId
());
recordHikEntity
.
setStaffId
(
staffCache
.
getId
());
recordHikEntity
.
setStaffName
(
staffCache
.
getName
());
recordHikEntity
.
setStaffName
(
staffCache
.
getName
());
...
@@ -134,11 +137,11 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
...
@@ -134,11 +137,11 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
recordHikEntity
.
setCreateUserName
(
"system"
);
recordHikEntity
.
setCreateUserName
(
"system"
);
recordHikEntity
.
setCreateUserId
(
1L
);
recordHikEntity
.
setCreateUserId
(
1L
);
return
recordHikEntity
;
return
recordHikEntity
;
}).
collect
(
Collectors
.
toList
());
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
());
log
.
info
(
"attRecords size:{}"
,
attRecords
.
size
());
log
.
info
(
"attRecords size:{}"
,
attRecords
.
size
());
List
<
String
>
eventIds
=
attRecords
.
parallelStream
().
filter
(
f
->!
ObjectUtils
.
isEmpty
(
f
)&&
!
ObjectUtils
.
isEmpty
(
f
.
getRemark
())).
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toList
());
List
<
String
>
eventIds
=
attRecords
.
parallelStream
().
filter
(
f
->
!
ObjectUtils
.
isEmpty
(
f
)
&&
!
ObjectUtils
.
isEmpty
(
f
.
getRemark
())).
map
(
i
->
i
.
getRemark
()).
collect
(
Collectors
.
toList
());
//查询当天考勤记录是否有重复的 有的 则不添加
//查询当天考勤记录是否有重复的 有的 则不添加
AttendanceRecordHikQuery
recordHikQuery
=
new
AttendanceRecordHikQuery
();
AttendanceRecordHikQuery
recordHikQuery
=
new
AttendanceRecordHikQuery
();
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
9d25b0a7
...
@@ -54,18 +54,11 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -54,18 +54,11 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
@Autowired
@Autowired
private
StaffService
staffService
;
private
StaffService
staffService
;
@Autowired
private
DeptDao
deptDao
;
@Autowired
@Autowired
private
DeptService
deptService
;
private
DeptService
deptService
;
@Autowired
@Autowired
private
StaffService
service
;
private
StaffService
service
;
@Autowired
@Autowired
private
AttendanceStatService
attendanceStatService
;
private
AttendanceStatService
attendanceStatService
;
...
@@ -79,12 +72,10 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -79,12 +72,10 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"同步用户--部门"
);
log
.
info
(
"同步用户--部门"
);
try
{
try
{
//同步部门
//同步部门
syncDepts
();
syncDepts
();
//同步员工
//同步员工
syncPersons
();
syncPersons
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"同步人事异常"
,
e
);
log
.
error
(
"同步人事异常"
,
e
);
}
}
...
@@ -100,21 +91,21 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -100,21 +91,21 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
for
(
PersonInfo
personInfo
:
personInfoList
)
{
for
(
PersonInfo
personInfo
:
personInfoList
)
{
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
personInfo
.
getJobNo
());
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
personInfo
.
getJobNo
());
DeptEntity
deptEntity
=
deptService
.
selectOne
(
new
DeptQuery
().
deptCode
(
personInfo
.
getOrgIndexCode
()));
DeptEntity
deptEntity
=
deptService
.
selectOne
(
new
DeptQuery
().
deptCode
(
personInfo
.
getOrgIndexCode
()));
AttendanceVacationBalanceEntity
balanceEntity
=
balanceService
.
selectOne
(
new
AttendanceVacationBalanceQuery
().
staffId
(
staffEntity
.
getId
()));
//
AttendanceVacationBalanceEntity balanceEntity = balanceService.selectOne(new AttendanceVacationBalanceQuery().staffId(staffEntity.getId()));
AttendanceStatEntity
statEntity
=
attendanceStatService
.
selectOne
(
new
AttendanceStatQuery
().
staffId
(
staffEntity
.
getId
()));
//
AttendanceStatEntity statEntity = attendanceStatService.selectOne(new AttendanceStatQuery().staffId(staffEntity.getId()));
//判断本地数据是否为空
//判断本地数据是否为空
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
//新增员工信息
//新增员工信息
staffEntity
=
new
StaffEntity
();
staffEntity
=
new
StaffEntity
();
staffEntity
.
initAttrValue
();
staffEntity
.
initAttrValue
();
if
(
ObjectUtils
.
isEmpty
(
deptEntity
))
{
if
(
!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
}
}
staffEntity
.
setName
(
personInfo
.
getPersonName
());
staffEntity
.
setName
(
personInfo
.
getPersonName
());
staffEntity
.
setRemarkId
(
personInfo
.
getPersonId
());
staffEntity
.
setRemarkId
(
personInfo
.
getPersonId
());
staffEntity
.
setPicUri
(
personInfo
.
getPersonPhoto
().
getPicUri
());
staffEntity
.
setPicUri
(
personInfo
.
getPersonPhoto
().
getPicUri
());
staffEntity
.
setServerIndexCode
(
personInfo
.
getPersonPhoto
().
getServerIndexCode
());
staffEntity
.
setServerIndexCode
(
personInfo
.
getPersonPhoto
().
getServerIndexCode
());
staffEntity
.
setDeptName
(
personInfo
.
getOrg
Path
Name
());
staffEntity
.
setDeptName
(
personInfo
.
getOrgName
());
staffEntity
.
setGender
(
personInfo
.
getGender
());
staffEntity
.
setGender
(
personInfo
.
getGender
());
staffEntity
.
setWorkNum
(
personInfo
.
getJobNo
());
staffEntity
.
setWorkNum
(
personInfo
.
getJobNo
());
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
...
@@ -122,6 +113,18 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -122,6 +113,18 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
staffEntity
.
setCreateTime
(
new
Date
());
staffEntity
.
setCreateTime
(
new
Date
());
service
.
save
(
staffEntity
);
service
.
save
(
staffEntity
);
AttendanceVacationBalanceEntity
balanceEntity
=
new
AttendanceVacationBalanceEntity
();
balanceEntity
.
initAttrValue
();
balanceEntity
.
setStaffId
(
staffEntity
.
getId
());
balanceEntity
.
setStaffName
(
staffEntity
.
getName
());
balanceEntity
.
setDeptId
(
staffEntity
.
getDeptId
());
balanceEntity
.
setDeptName
(
staffEntity
.
getDeptName
());
balanceEntity
.
setCreateUserId
(
1L
);
balanceEntity
.
setCreateTime
(
new
Date
());
balanceService
.
save
(
balanceEntity
);
//AttendanceVacationBalanceEntity balanceEntity = balanceService.selectOne(new AttendanceVacationBalanceQuery().staffId(staffEntity.getId()));
AttendanceStatEntity
attendanceStatEntity
=
new
AttendanceStatEntity
();
AttendanceStatEntity
attendanceStatEntity
=
new
AttendanceStatEntity
();
attendanceStatEntity
.
initAttrValue
();
attendanceStatEntity
.
initAttrValue
();
attendanceStatEntity
.
setStaffId
(
staffEntity
.
getId
());
attendanceStatEntity
.
setStaffId
(
staffEntity
.
getId
());
...
@@ -153,17 +156,6 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -153,17 +156,6 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
attendanceStatEntity
.
setHomeLeave
(
balanceEntity
.
getHomeLeave
());
attendanceStatEntity
.
setHomeLeave
(
balanceEntity
.
getHomeLeave
());
attendanceStatEntity
.
setPersonalLeave
(
balanceEntity
.
getPersonalLeaveDays
());
attendanceStatEntity
.
setPersonalLeave
(
balanceEntity
.
getPersonalLeaveDays
());
attendanceStatService
.
save
(
attendanceStatEntity
);
attendanceStatService
.
save
(
attendanceStatEntity
);
AttendanceVacationBalanceEntity
attendanceVacationBalanceEntity
=
new
AttendanceVacationBalanceEntity
();
attendanceVacationBalanceEntity
.
initAttrValue
();
attendanceVacationBalanceEntity
.
setStaffId
(
staffEntity
.
getId
());
attendanceVacationBalanceEntity
.
setStaffName
(
staffEntity
.
getName
());
attendanceVacationBalanceEntity
.
setDeptId
(
deptEntity
.
getId
());
attendanceVacationBalanceEntity
.
setDeptName
(
deptEntity
.
getDeptName
());
attendanceVacationBalanceEntity
.
setCreateTime
(
new
Date
());
attendanceVacationBalanceEntity
.
setCreateUserId
(
1L
);
balanceService
.
save
(
attendanceVacationBalanceEntity
);
//统计各级部门员工数量 todo 优化统计
//统计各级部门员工数量 todo 优化统计
String
ancestor
=
deptEntity
.
getAncestors
().
split
(
","
,
2
)[
1
];
String
ancestor
=
deptEntity
.
getAncestors
().
split
(
","
,
2
)[
1
];
String
[]
ancestors
=
ancestor
.
split
(
","
);
String
[]
ancestors
=
ancestor
.
split
(
","
);
...
@@ -174,24 +166,22 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -174,24 +166,22 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
deptService
.
update
(
deptEntity2
);
deptService
.
update
(
deptEntity2
);
}
}
}
}
}
else
{
}
else
{
//更新
//更新
if
(
ObjectUtils
.
isEmpty
(
deptEntity
))
{
if
(
!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
staffEntity
.
setDeptId
(
deptEntity
.
getId
());
}
}
staffEntity
.
setName
(
personInfo
.
getPersonName
());
staffEntity
.
setName
(
personInfo
.
getPersonName
());
staffEntity
.
setRemarkId
(
personInfo
.
getPersonId
());
staffEntity
.
setRemarkId
(
personInfo
.
getPersonId
());
staffEntity
.
setPicUri
(
personInfo
.
getPersonPhoto
().
getPicUri
());
staffEntity
.
setPicUri
(
personInfo
.
getPersonPhoto
().
getPicUri
());
staffEntity
.
setServerIndexCode
(
personInfo
.
getPersonPhoto
().
getServerIndexCode
());
staffEntity
.
setServerIndexCode
(
personInfo
.
getPersonPhoto
().
getServerIndexCode
());
staffEntity
.
setDeptName
(
personInfo
.
getOrg
Path
Name
());
staffEntity
.
setDeptName
(
personInfo
.
getOrgName
());
staffEntity
.
setGender
(
personInfo
.
getGender
());
staffEntity
.
setGender
(
personInfo
.
getGender
());
staffEntity
.
setWorkNum
(
personInfo
.
getJobNo
());
staffEntity
.
setWorkNum
(
personInfo
.
getJobNo
());
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
staffEntity
.
setUpdateUserId
(
1L
);
staffEntity
.
setUpdateUserId
(
1L
);
staffEntity
.
setUpdateTime
(
new
Date
());
staffEntity
.
setUpdateTime
(
new
Date
());
service
.
update
(
staffEntity
);
service
.
update
(
staffEntity
);
//统计各级部门员工数量
//统计各级部门员工数量
String
ancestor
=
deptEntity
.
getAncestors
().
split
(
","
,
2
)[
1
];
String
ancestor
=
deptEntity
.
getAncestors
().
split
(
","
,
2
)[
1
];
String
[]
ancestors
=
ancestor
.
split
(
","
);
String
[]
ancestors
=
ancestor
.
split
(
","
);
...
@@ -247,12 +237,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -247,12 +237,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
}
}
}
}
}
}
@Override
@Override
public
void
stopTask
(
ITask
task
)
throws
AppException
{
public
void
stopTask
(
ITask
task
)
throws
AppException
{
}
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java
View file @
9d25b0a7
...
@@ -17,6 +17,6 @@ public interface AttendanceRecordHikService extends ICRUDService<AttendanceRecor
...
@@ -17,6 +17,6 @@ public interface AttendanceRecordHikService extends ICRUDService<AttendanceRecor
* 将原始数据导入打卡记录表
* 将原始数据导入打卡记录表
* @param entity
* @param entity
*/
*/
public
void
addAttendanceRecord
(
AttendanceRecordHikEntity
entity
,
Context
context
)
throws
Exception
;
void
addAttendanceRecord
(
AttendanceRecordHikEntity
entity
,
Context
context
)
throws
Exception
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
View file @
9d25b0a7
package
com.mortals.xhx.module.attendance.service.impl
;
package
com.mortals.xhx.module.attendance.service.impl
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
...
@@ -23,12 +24,12 @@ import java.util.*;
...
@@ -23,12 +24,12 @@ import java.util.*;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
* AttendanceRecordHikService
* AttendanceRecordHikService
* 海康考勤打卡记录汇总信息 service实现
* 海康考勤打卡记录汇总信息 service实现
*
*
* @author zxfei
* @author zxfei
* @date 2023-04-08
* @date 2023-04-08
*/
*/
@Service
(
"attendanceRecordHikService"
)
@Service
(
"attendanceRecordHikService"
)
public
class
AttendanceRecordHikServiceImpl
extends
AbstractCRUDServiceImpl
<
AttendanceRecordHikDao
,
AttendanceRecordHikEntity
,
Long
>
implements
AttendanceRecordHikService
{
public
class
AttendanceRecordHikServiceImpl
extends
AbstractCRUDServiceImpl
<
AttendanceRecordHikDao
,
AttendanceRecordHikEntity
,
Long
>
implements
AttendanceRecordHikService
{
...
@@ -54,7 +55,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -54,7 +55,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
private
AttendanceRecordErrorService
errorService
;
private
AttendanceRecordErrorService
errorService
;
@Override
@Override
public
void
addAttendanceRecord
(
AttendanceRecordHikEntity
entity
,
Context
context
)
throws
Exception
{
public
void
addAttendanceRecord
(
AttendanceRecordHikEntity
entity
,
Context
context
)
throws
Exception
{
List
<
AttendanceRecordHikEntity
>
hikEntityList
=
attendanceRecordHikService
.
find
(
entity
);
List
<
AttendanceRecordHikEntity
>
hikEntityList
=
attendanceRecordHikService
.
find
(
entity
);
//对考勤数据根据考勤时间进行排序
//对考勤数据根据考勤时间进行排序
...
@@ -75,10 +76,11 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -75,10 +76,11 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
List
<
AttendanceRecordHikEntity
>
attendanceRecordHikEntities
=
map
.
get
(
s
);
List
<
AttendanceRecordHikEntity
>
attendanceRecordHikEntities
=
map
.
get
(
s
);
//对相同工号的人员进行遍历判断考勤规则.
//对相同工号的人员进行遍历判断考勤规则.
AttendanceRecordEntity
attendanceRecordEntity
=
new
AttendanceRecordEntity
();
AttendanceRecordEntity
attendanceRecordEntity
=
new
AttendanceRecordEntity
();
attendanceRecordEntity
.
initAttrValue
();
List
<
AttendanceRecordDetailEntity
>
detailEntity
=
new
ArrayList
<>();
List
<
AttendanceRecordDetailEntity
>
detailEntity
=
new
ArrayList
<>();
for
(
AttendanceRecordHikEntity
item
:
attendanceRecordHikEntities
)
{
for
(
AttendanceRecordHikEntity
item
:
attendanceRecordHikEntities
)
{
//对主表的对象进行赋值
//对主表的对象进行赋值
if
(
StringUtils
.
isNull
(
attendanceRecordEntity
)
||
StringUtils
.
isEmpty
(
attendanceRecordEntity
.
getStaffName
()))
{
if
(
StringUtils
.
isNull
(
attendanceRecordEntity
)
||
StringUtils
.
isEmpty
(
attendanceRecordEntity
.
getStaffName
()))
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
attendanceRecordEntity
.
setStaffId
(
item
.
getStaffId
());
attendanceRecordEntity
.
setStaffId
(
item
.
getStaffId
());
attendanceRecordEntity
.
setStaffName
(
item
.
getStaffName
());
attendanceRecordEntity
.
setStaffName
(
item
.
getStaffName
());
...
@@ -87,10 +89,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -87,10 +89,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity
.
setPositionId
(
item
.
getPositionId
());
attendanceRecordEntity
.
setPositionId
(
item
.
getPositionId
());
attendanceRecordEntity
.
setPositionName
(
item
.
getPositionName
());
attendanceRecordEntity
.
setPositionName
(
item
.
getPositionName
());
attendanceRecordEntity
.
setWorkNum
(
item
.
getWorkNum
());
attendanceRecordEntity
.
setWorkNum
(
item
.
getWorkNum
());
IUser
user
=
context
.
getUser
();
attendanceRecordEntity
.
setCreateTime
(
new
Date
());
attendanceRecordEntity
.
setCreateUserId
(
user
.
getId
());
attendanceRecordEntity
.
setAttendanceDate
(
sdf
.
parse
(
sdf
.
format
(
item
.
getAttendanceDate
())));
attendanceRecordEntity
.
setAttendanceDate
(
sdf
.
parse
(
sdf
.
format
(
item
.
getAttendanceDate
())));
attendanceRecordEntity
.
setCreateTime
(
new
Date
());
attendanceRecordEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
}
}
//获取考勤打卡时间
//获取考勤打卡时间
Date
attendanceDate
=
item
.
getAttendanceDate
();
Date
attendanceDate
=
item
.
getAttendanceDate
();
...
@@ -99,7 +100,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -99,7 +100,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//通过员工id查询考勤人员信息
//通过员工id查询考勤人员信息
List
<
AttendanceGroupStaffEntity
>
attendanceGroupStaffEntities
=
attendanceGroupStaffService
.
find
(
new
AttendanceGroupStaffQuery
().
staffId
(
staffEntity
.
getId
()));
List
<
AttendanceGroupStaffEntity
>
attendanceGroupStaffEntities
=
attendanceGroupStaffService
.
find
(
new
AttendanceGroupStaffQuery
().
staffId
(
staffEntity
.
getId
()));
//查询该考勤人员,如果查出来的考勤人员信息list长度为1 则该考勤人员只有一个考勤组
//查询该考勤人员,如果查出来的考勤人员信息list长度为1 则该考勤人员只有一个考勤组
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
==
1
)
{
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
==
1
)
{
//查询考勤组
//查询考勤组
AttendanceGroupQuery
attendanceGroupQuery
=
new
AttendanceGroupQuery
();
AttendanceGroupQuery
attendanceGroupQuery
=
new
AttendanceGroupQuery
();
AttendanceGroupEntity
attendanceGroupEntity
=
attendanceGroupService
.
selectOne
(
attendanceGroupQuery
.
id
(
attendanceGroupStaffEntities
.
get
(
0
).
getGroupId
()));
AttendanceGroupEntity
attendanceGroupEntity
=
attendanceGroupService
.
selectOne
(
attendanceGroupQuery
.
id
(
attendanceGroupStaffEntities
.
get
(
0
).
getGroupId
()));
...
@@ -114,7 +115,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -114,7 +115,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//通过考勤日期的星期拿到班次id.
//通过考勤日期的星期拿到班次id.
Long
weekClassId
=
this
.
getWeekClassId
(
attendanceGroupFixedworkEntity
,
week
);
Long
weekClassId
=
this
.
getWeekClassId
(
attendanceGroupFixedworkEntity
,
week
);
//weekClassId为-1 则不在考勤
//weekClassId为-1 则不在考勤
if
(
weekClassId
==-
1L
)
{
if
(
weekClassId
==
-
1L
)
{
//跳过本次循环
//跳过本次循环
continue
;
continue
;
}
}
...
@@ -125,7 +126,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -125,7 +126,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
AttendanceClassDetailQuery
attendanceClassDetailQuery
=
new
AttendanceClassDetailQuery
();
AttendanceClassDetailQuery
attendanceClassDetailQuery
=
new
AttendanceClassDetailQuery
();
List
<
AttendanceClassDetailEntity
>
attendanceClassDetailEntities
=
attendanceClassDetailService
.
find
(
attendanceClassDetailQuery
.
classId
(
attendanceClassEntity
.
getId
()));
List
<
AttendanceClassDetailEntity
>
attendanceClassDetailEntities
=
attendanceClassDetailService
.
find
(
attendanceClassDetailQuery
.
classId
(
attendanceClassEntity
.
getId
()));
Integer
orderNum
=
0
;
Integer
orderNum
=
0
;
if
(
detailEntity
==
null
||
detailEntity
.
size
()==
0
)
{
if
(
detailEntity
==
null
||
detailEntity
.
size
()
==
0
)
{
for
(
AttendanceClassDetailEntity
classDetailEntity
:
attendanceClassDetailEntities
)
{
for
(
AttendanceClassDetailEntity
classDetailEntity
:
attendanceClassDetailEntities
)
{
orderNum
++;
orderNum
++;
AttendanceRecordDetailEntity
recordDetailEntity
=
new
AttendanceRecordDetailEntity
();
AttendanceRecordDetailEntity
recordDetailEntity
=
new
AttendanceRecordDetailEntity
();
...
@@ -137,7 +138,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -137,7 +138,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
detailEntity
.
add
(
recordDetailEntity
);
detailEntity
.
add
(
recordDetailEntity
);
}
}
}
}
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
//上班打卡前时间
//上班打卡前时间
Date
goWorkDateBefore
=
sdf
.
parse
(
sdf
.
format
(
DateUtils
.
addMinutes
(
classDetail
.
getGoWorkDate
(),
-
classDetail
.
getGoWorkDateBefore
())));
Date
goWorkDateBefore
=
sdf
.
parse
(
sdf
.
format
(
DateUtils
.
addMinutes
(
classDetail
.
getGoWorkDate
(),
-
classDetail
.
getGoWorkDateBefore
())));
...
@@ -151,15 +152,15 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -151,15 +152,15 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
boolean
goInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
goWorkDateAfter
);
boolean
goInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
goWorkDateAfter
);
//判断考勤时间是否在下班打卡区间内
//判断考勤时间是否在下班打卡区间内
boolean
offInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
offWorkDateBefore
,
offWorkDateAfter
);
boolean
offInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
offWorkDateBefore
,
offWorkDateAfter
);
if
(
goInTime
==
false
&&
offInTime
==
false
)
{
if
(
goInTime
==
false
&&
offInTime
==
false
)
{
continue
;
continue
;
}
}
if
(
goInTime
)
{
if
(
goInTime
)
{
//如果是上班打卡,判断是否迟到
//如果是上班打卡,判断是否迟到
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getGoWorkDate
())));
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getGoWorkDate
())));
if
(!
inTime
)
{
if
(!
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
()){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
())
{
attendanceRecordDetailEntity
.
setGoWorkResult
(
4
);
attendanceRecordDetailEntity
.
setGoWorkResult
(
4
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
}
}
...
@@ -167,26 +168,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -167,26 +168,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
if
(
inTime
)
{
if
(
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
()){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
())
{
attendanceRecordDetailEntity
.
setGoWorkResult
(
1
);
attendanceRecordDetailEntity
.
setGoWorkResult
(
1
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
}
}
}
}
}
}
}
}
if
(
offInTime
)
{
if
(
offInTime
)
{
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getOffWorkDate
())),
offWorkDateAfter
);
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getOffWorkDate
())),
offWorkDateAfter
);
if
(!
inTime
){
if
(!
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
()){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
())
{
attendanceRecordDetailEntity
.
setOffWorkResult
(
5
);
attendanceRecordDetailEntity
.
setOffWorkResult
(
5
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
}
}
}
}
}
}
if
(
inTime
){
if
(
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
())
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
longValue
()
==
classDetail
.
getId
().
longValue
())
{
attendanceRecordDetailEntity
.
setOffWorkResult
(
1
);
attendanceRecordDetailEntity
.
setOffWorkResult
(
1
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
}
}
...
@@ -196,8 +197,8 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -196,8 +197,8 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
}
}
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
>
1
)
{
if
(
StringUtils
.
isNotNull
(
attendanceGroupStaffEntities
)
&&
attendanceGroupStaffEntities
.
size
()
>
1
)
{
for
(
AttendanceGroupStaffEntity
groupStaffEntity
:
attendanceGroupStaffEntities
)
{
for
(
AttendanceGroupStaffEntity
groupStaffEntity
:
attendanceGroupStaffEntities
)
{
{
{
//查询考勤组
//查询考勤组
AttendanceGroupQuery
attendanceGroupQuery
=
new
AttendanceGroupQuery
();
AttendanceGroupQuery
attendanceGroupQuery
=
new
AttendanceGroupQuery
();
...
@@ -211,7 +212,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -211,7 +212,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
//通过考勤日期的星期拿到班次id.
//通过考勤日期的星期拿到班次id.
Long
weekClassId
=
this
.
getWeekClassId
(
attendanceGroupFixedworkEntity
,
week
);
Long
weekClassId
=
this
.
getWeekClassId
(
attendanceGroupFixedworkEntity
,
week
);
//weekClassId为-1 则不在考勤
//weekClassId为-1 则不在考勤
if
(
weekClassId
==-
1L
)
{
if
(
weekClassId
==
-
1L
)
{
//跳过本次循环
//跳过本次循环
continue
;
continue
;
}
}
...
@@ -224,7 +225,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -224,7 +225,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
AttendanceClassDetailQuery
attendanceClassDetailQuery
=
new
AttendanceClassDetailQuery
();
AttendanceClassDetailQuery
attendanceClassDetailQuery
=
new
AttendanceClassDetailQuery
();
List
<
AttendanceClassDetailEntity
>
attendanceClassDetailEntities
=
attendanceClassDetailService
.
find
(
attendanceClassDetailQuery
.
classId
(
attendanceClassEntity
.
getId
()));
List
<
AttendanceClassDetailEntity
>
attendanceClassDetailEntities
=
attendanceClassDetailService
.
find
(
attendanceClassDetailQuery
.
classId
(
attendanceClassEntity
.
getId
()));
Integer
orderNum
=
0
;
Integer
orderNum
=
0
;
if
(
detailEntity
!=
null
||
detailEntity
.
size
()==
0
)
{
if
(
detailEntity
!=
null
||
detailEntity
.
size
()
==
0
)
{
for
(
AttendanceClassDetailEntity
classDetailEntity
:
attendanceClassDetailEntities
)
{
for
(
AttendanceClassDetailEntity
classDetailEntity
:
attendanceClassDetailEntities
)
{
orderNum
++;
orderNum
++;
AttendanceRecordDetailEntity
recordDetailEntity
=
new
AttendanceRecordDetailEntity
();
AttendanceRecordDetailEntity
recordDetailEntity
=
new
AttendanceRecordDetailEntity
();
...
@@ -236,7 +237,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -236,7 +237,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
detailEntity
.
add
(
recordDetailEntity
);
detailEntity
.
add
(
recordDetailEntity
);
}
}
}
}
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
//上班打卡前时间
//上班打卡前时间
Date
goWorkDateBefore
=
sdf
.
parse
(
sdf
.
format
(
DateUtils
.
addMinutes
(
classDetail
.
getGoWorkDate
(),
-
classDetail
.
getGoWorkDateBefore
())));
Date
goWorkDateBefore
=
sdf
.
parse
(
sdf
.
format
(
DateUtils
.
addMinutes
(
classDetail
.
getGoWorkDate
(),
-
classDetail
.
getGoWorkDateBefore
())));
...
@@ -250,15 +251,15 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -250,15 +251,15 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
boolean
goInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
goWorkDateAfter
);
boolean
goInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
goWorkDateAfter
);
//判断考勤时间是否在下班打卡区间内
//判断考勤时间是否在下班打卡区间内
boolean
offInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
offWorkDateBefore
,
offWorkDateAfter
);
boolean
offInTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
offWorkDateBefore
,
offWorkDateAfter
);
if
(
goInTime
==
false
&&
offInTime
==
false
)
{
if
(
goInTime
==
false
&&
offInTime
==
false
)
{
continue
;
continue
;
}
}
if
(
goInTime
)
{
if
(
goInTime
)
{
//如果是上班打卡,判断是否迟到
//如果是上班打卡,判断是否迟到
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getGoWorkDate
())));
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
goWorkDateBefore
,
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getGoWorkDate
())));
if
(!
inTime
)
{
if
(!
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
())){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
()))
{
attendanceRecordDetailEntity
.
setGoWorkResult
(
4
);
attendanceRecordDetailEntity
.
setGoWorkResult
(
4
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
}
}
...
@@ -266,26 +267,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -266,26 +267,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
if
(
inTime
)
{
if
(
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
())){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
()))
{
attendanceRecordDetailEntity
.
setGoWorkResult
(
1
);
attendanceRecordDetailEntity
.
setGoWorkResult
(
1
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setGoWorkDate
(
attendanceDate
);
}
}
}
}
}
}
}
}
if
(
offInTime
)
{
if
(
offInTime
)
{
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getOffWorkDate
())),
offWorkDateAfter
);
boolean
inTime
=
isInTime
(
sdf
.
parse
(
sdf
.
format
(
attendanceDate
)),
sdf
.
parse
(
sdf
.
format
(
classDetail
.
getOffWorkDate
())),
offWorkDateAfter
);
if
(!
inTime
){
if
(!
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
())){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
()))
{
attendanceRecordDetailEntity
.
setOffWorkResult
(
5
);
attendanceRecordDetailEntity
.
setOffWorkResult
(
5
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
}
}
}
}
}
}
if
(
inTime
){
if
(
inTime
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
detailEntity
)
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
())){
if
(
attendanceRecordDetailEntity
.
getShiftsId
().
equals
(
classDetail
.
getId
()))
{
attendanceRecordDetailEntity
.
setOffWorkResult
(
1
);
attendanceRecordDetailEntity
.
setOffWorkResult
(
1
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
attendanceRecordDetailEntity
.
setOffWorkDate
(
attendanceDate
);
}
}
...
@@ -303,7 +304,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -303,7 +304,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
SimpleDateFormat
sdft
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
SimpleDateFormat
sdft
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
Integer
goWorkResult
=
recordDetailEntity
.
getGoWorkResult
();
Integer
goWorkResult
=
recordDetailEntity
.
getGoWorkResult
();
Integer
offWorkResult
=
recordDetailEntity
.
getOffWorkResult
();
Integer
offWorkResult
=
recordDetailEntity
.
getOffWorkResult
();
if
(
goWorkResult
!=
1
)
{
if
(
goWorkResult
!=
1
)
{
AttendanceRecordErrorEntity
errorEntity
=
new
AttendanceRecordErrorEntity
();
AttendanceRecordErrorEntity
errorEntity
=
new
AttendanceRecordErrorEntity
();
errorEntity
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
errorEntity
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
errorEntity
.
setStaffName
(
attendanceRecordEntity
.
getStaffName
());
errorEntity
.
setStaffName
(
attendanceRecordEntity
.
getStaffName
());
...
@@ -316,27 +317,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -316,27 +317,26 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
errorEntity
.
setShiftsName
(
recordDetailEntity
.
getShiftsName
());
errorEntity
.
setShiftsName
(
recordDetailEntity
.
getShiftsName
());
Date
goWorkDate
=
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
recordDetailEntity
.
getShiftsId
())).
getGoWorkDate
();
Date
goWorkDate
=
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
recordDetailEntity
.
getShiftsId
())).
getGoWorkDate
();
errorEntity
.
setGoOffDateTime
(
goWorkDate
);
errorEntity
.
setGoOffDateTime
(
goWorkDate
);
if
(
recordDetailEntity
.
getGoWorkDate
()
!=
null
&&!
recordDetailEntity
.
getGoWorkDate
().
equals
(
""
))
{
if
(
recordDetailEntity
.
getGoWorkDate
()
!=
null
&&
!
recordDetailEntity
.
getGoWorkDate
().
equals
(
""
))
{
errorEntity
.
setErrorDateTime
(
recordDetailEntity
.
getGoWorkDate
());
errorEntity
.
setErrorDateTime
(
recordDetailEntity
.
getGoWorkDate
());
errorEntity
.
setActualAttendanceDateTime
(
recordDetailEntity
.
getGoWorkDate
());
errorEntity
.
setActualAttendanceDateTime
(
recordDetailEntity
.
getGoWorkDate
());
}
else
{
}
else
{
String
s1
=
s
+
" "
+
sdft
.
format
(
goWorkDate
);
String
s1
=
s
+
" "
+
sdft
.
format
(
goWorkDate
);
errorEntity
.
setErrorDateTime
(
sdf
.
parse
(
s1
));
errorEntity
.
setErrorDateTime
(
sdf
.
parse
(
s1
));
errorEntity
.
setActualAttendanceDateTime
(
sdf
.
parse
(
s1
));
errorEntity
.
setActualAttendanceDateTime
(
sdf
.
parse
(
s1
));
}
}
if
(
recordDetailEntity
.
getGoWorkResult
()
==
3
)
{
if
(
recordDetailEntity
.
getGoWorkResult
()
==
3
)
{
errorEntity
.
setErrorStatus
(
0
);
errorEntity
.
setErrorStatus
(
0
);
}
}
if
(
recordDetailEntity
.
getGoWorkResult
()
==
4
)
{
if
(
recordDetailEntity
.
getGoWorkResult
()
==
4
)
{
errorEntity
.
setErrorStatus
(
2
);
errorEntity
.
setErrorStatus
(
2
);
}
}
errorEntity
.
setProcessStatus
(
0
);
errorEntity
.
setProcessStatus
(
0
);
IUser
user
=
context
.
getUser
();
errorEntity
.
setCreateTime
(
new
Date
());
errorEntity
.
setCreateTime
(
new
Date
());
errorEntity
.
setCreateUserId
(
user
.
getId
(
));
errorEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
errorEntityList
.
add
(
errorEntity
);
errorEntityList
.
add
(
errorEntity
);
}
}
if
(
offWorkResult
!=
1
)
{
if
(
offWorkResult
!=
1
)
{
AttendanceRecordErrorEntity
errorEntity
=
new
AttendanceRecordErrorEntity
();
AttendanceRecordErrorEntity
errorEntity
=
new
AttendanceRecordErrorEntity
();
errorEntity
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
errorEntity
.
setStaffId
(
attendanceRecordEntity
.
getStaffId
());
errorEntity
.
setStaffName
(
attendanceRecordEntity
.
getStaffName
());
errorEntity
.
setStaffName
(
attendanceRecordEntity
.
getStaffName
());
...
@@ -349,35 +349,34 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -349,35 +349,34 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
errorEntity
.
setShiftsName
(
recordDetailEntity
.
getShiftsName
());
errorEntity
.
setShiftsName
(
recordDetailEntity
.
getShiftsName
());
Date
offWorkDate
=
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
recordDetailEntity
.
getShiftsId
())).
getOffWorkDate
();
Date
offWorkDate
=
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
recordDetailEntity
.
getShiftsId
())).
getOffWorkDate
();
errorEntity
.
setGoOffDateTime
(
offWorkDate
);
errorEntity
.
setGoOffDateTime
(
offWorkDate
);
if
(
recordDetailEntity
.
getOffWorkDate
()
!=
null
&&!
recordDetailEntity
.
getOffWorkDate
().
equals
(
""
))
{
if
(
recordDetailEntity
.
getOffWorkDate
()
!=
null
&&
!
recordDetailEntity
.
getOffWorkDate
().
equals
(
""
))
{
errorEntity
.
setErrorDateTime
(
recordDetailEntity
.
getOffWorkDate
());
errorEntity
.
setErrorDateTime
(
recordDetailEntity
.
getOffWorkDate
());
errorEntity
.
setActualAttendanceDateTime
(
recordDetailEntity
.
getOffWorkDate
());
errorEntity
.
setActualAttendanceDateTime
(
recordDetailEntity
.
getOffWorkDate
());
}
else
{
}
else
{
errorEntity
.
setErrorDateTime
(
sdf
.
parse
(
s
+
" "
+
sdft
.
format
(
offWorkDate
)));
errorEntity
.
setErrorDateTime
(
sdf
.
parse
(
s
+
" "
+
sdft
.
format
(
offWorkDate
)));
errorEntity
.
setActualAttendanceDateTime
(
sdf
.
parse
(
s
+
" "
+
sdft
.
format
(
offWorkDate
)));
errorEntity
.
setActualAttendanceDateTime
(
sdf
.
parse
(
s
+
" "
+
sdft
.
format
(
offWorkDate
)));
}
}
if
(
recordDetailEntity
.
getOffWorkResult
()
==
3
)
{
if
(
recordDetailEntity
.
getOffWorkResult
()
==
3
)
{
errorEntity
.
setErrorStatus
(
0
);
errorEntity
.
setErrorStatus
(
0
);
}
}
if
(
recordDetailEntity
.
getOffWorkResult
()
==
5
)
{
if
(
recordDetailEntity
.
getOffWorkResult
()
==
5
)
{
errorEntity
.
setErrorStatus
(
1
);
errorEntity
.
setErrorStatus
(
1
);
}
}
errorEntity
.
setProcessStatus
(
0
);
errorEntity
.
setProcessStatus
(
0
);
IUser
user
=
context
.
getUser
();
errorEntity
.
setCreateTime
(
new
Date
());
errorEntity
.
setCreateTime
(
new
Date
());
errorEntity
.
setCreateUserId
(
user
.
getId
(
));
errorEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
errorEntityList
.
add
(
errorEntity
);
errorEntityList
.
add
(
errorEntity
);
}
}
}
}
if
(
detailEntity
!=
null
&&
detailEntity
.
size
()>
0
)
{
if
(
detailEntity
!=
null
&&
detailEntity
.
size
()
>
0
)
{
if
(
errorEntityList
!=
null
&&
errorEntityList
.
size
()>
0
)
{
if
(
errorEntityList
!=
null
&&
errorEntityList
.
size
()
>
0
)
{
errorService
.
save
(
errorEntityList
,
context
);
errorService
.
save
(
errorEntityList
,
context
);
}
}
attendanceRecordEntity
.
setShiftsName
(
detailEntity
.
get
(
0
).
getShiftsName
());
attendanceRecordEntity
.
setShiftsName
(
detailEntity
.
get
(
0
).
getShiftsName
());
attendanceRecordEntity
.
setShiftsId
(
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
detailEntity
.
get
(
0
).
getShiftsId
())).
getClassId
()
);
attendanceRecordEntity
.
setShiftsId
(
attendanceClassDetailService
.
selectOne
(
new
AttendanceClassDetailQuery
().
id
(
detailEntity
.
get
(
0
).
getShiftsId
())).
getClassId
());
attendanceRecordEntity
.
setAttendanceRecordDetailList
(
detailEntity
);
attendanceRecordEntity
.
setAttendanceRecordDetailList
(
detailEntity
);
attendanceRecordService
.
save
(
attendanceRecordEntity
,
context
);
attendanceRecordService
.
save
(
attendanceRecordEntity
,
context
);
}
}
}
}
...
@@ -385,7 +384,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -385,7 +384,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
}
}
public
String
getWeek
(
Date
date
){
public
String
getWeek
(
Date
date
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"EEEE"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"EEEE"
);
String
week
=
sdf
.
format
(
date
);
String
week
=
sdf
.
format
(
date
);
return
week
;
return
week
;
...
@@ -393,55 +392,56 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -393,55 +392,56 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
/**
/**
* 获取通过星期获取班次id 如果返参为-1 则不在考勤
* 获取通过星期获取班次id 如果返参为-1 则不在考勤
*
* @return
* @return
*/
*/
public
Long
getWeekClassId
(
AttendanceGroupFixedworkEntity
attendanceGroupFixedworkEntity
,
String
week
)
{
public
Long
getWeekClassId
(
AttendanceGroupFixedworkEntity
attendanceGroupFixedworkEntity
,
String
week
)
{
Long
weekClassId
=
0L
;
Long
weekClassId
=
0L
;
switch
(
week
){
switch
(
week
)
{
case
"星期一"
:
case
"星期一"
:
if
(
attendanceGroupFixedworkEntity
.
getMonday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getMonday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getMondayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getMondayClassId
();
break
;
break
;
case
"星期二"
:
case
"星期二"
:
if
(
attendanceGroupFixedworkEntity
.
getTuesday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getTuesday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getTuesdayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getTuesdayClassId
();
break
;
break
;
case
"星期三"
:
case
"星期三"
:
if
(
attendanceGroupFixedworkEntity
.
getWednesday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getWednesday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getWednesdayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getWednesdayClassId
();
break
;
break
;
case
"星期四"
:
case
"星期四"
:
if
(
attendanceGroupFixedworkEntity
.
getThursday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getThursday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getThursdayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getThursdayClassId
();
break
;
break
;
case
"星期五"
:
case
"星期五"
:
if
(
attendanceGroupFixedworkEntity
.
getFriday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getFriday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getFridayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getFridayClassId
();
break
;
break
;
case
"星期六"
:
case
"星期六"
:
if
(
attendanceGroupFixedworkEntity
.
getSaturday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getSaturday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
weekClassId
=
attendanceGroupFixedworkEntity
.
getSaturdayClassId
();
weekClassId
=
attendanceGroupFixedworkEntity
.
getSaturdayClassId
();
break
;
break
;
case
"星期日"
:
case
"星期日"
:
if
(
attendanceGroupFixedworkEntity
.
getSunday
()
==
0
)
{
if
(
attendanceGroupFixedworkEntity
.
getSunday
()
==
0
)
{
weekClassId
=
-
1L
;
weekClassId
=
-
1L
;
return
weekClassId
;
return
weekClassId
;
}
}
...
@@ -452,12 +452,10 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
...
@@ -452,12 +452,10 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
}
/**
/**
*
* @param nowTime 当前时间
* @param nowTime 当前时间
* @param startTime
开始时间
* @param startTime
开始时间
* @param endTime 结束时间
* @param endTime 结束时间
* @return
* @return 判断当前时间在时间区间内
* 判断当前时间在时间区间内
*/
*/
public
static
boolean
isInTime
(
Date
nowTime
,
Date
startTime
,
Date
endTime
)
{
public
static
boolean
isInTime
(
Date
nowTime
,
Date
startTime
,
Date
endTime
)
{
if
(
nowTime
.
getTime
()
==
startTime
.
getTime
()
if
(
nowTime
.
getTime
()
==
startTime
.
getTime
()
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java
View file @
9d25b0a7
package
com.mortals.xhx.module.attendance.service.impl
;
package
com.mortals.xhx.module.attendance.service.impl
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
...
@@ -12,18 +13,19 @@ import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
...
@@ -12,18 +13,19 @@ import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordDetailQuery
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordDetailQuery
;
import
com.mortals.xhx.module.attendance.service.AttendanceRecordDetailService
;
import
com.mortals.xhx.module.attendance.service.AttendanceRecordDetailService
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
* AttendanceRecordService
* AttendanceRecordService
* 考勤打卡记录信息 service实现
* 考勤打卡记录信息 service实现
*
*
* @author zxfei
* @author zxfei
* @date 2023-04-07
* @date 2023-04-07
*/
*/
@Service
(
"attendanceRecordService"
)
@Service
(
"attendanceRecordService"
)
public
class
AttendanceRecordServiceImpl
extends
AbstractCRUDServiceImpl
<
AttendanceRecordDao
,
AttendanceRecordEntity
,
Long
>
implements
AttendanceRecordService
{
public
class
AttendanceRecordServiceImpl
extends
AbstractCRUDServiceImpl
<
AttendanceRecordDao
,
AttendanceRecordEntity
,
Long
>
implements
AttendanceRecordService
{
@Autowired
@Autowired
...
@@ -32,12 +34,10 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
...
@@ -32,12 +34,10 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Override
@Override
protected
void
findAfter
(
AttendanceRecordEntity
params
,
PageInfo
pageInfo
,
Context
context
,
List
<
AttendanceRecordEntity
>
list
)
throws
AppException
{
protected
void
findAfter
(
AttendanceRecordEntity
params
,
PageInfo
pageInfo
,
Context
context
,
List
<
AttendanceRecordEntity
>
list
)
throws
AppException
{
list
.
stream
().
map
(
item
->{
list
.
stream
().
map
(
item
->
{
//chax
List
<
AttendanceRecordDetailEntity
>
attendanceRecordDetailEntities
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordId
(
item
.
getId
()));
List
<
AttendanceRecordDetailEntity
>
attendanceRecordDetailEntities
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordId
(
item
.
getId
()));
item
.
setAttendanceRecordDetailList
(
attendanceRecordDetailEntities
);
item
.
setAttendanceRecordDetailList
(
attendanceRecordDetailEntities
);
return
item
;
return
item
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
...
@@ -46,11 +46,10 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
...
@@ -46,11 +46,10 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Override
@Override
protected
void
saveAfter
(
AttendanceRecordEntity
entity
,
Context
context
)
throws
AppException
{
protected
void
saveAfter
(
AttendanceRecordEntity
entity
,
Context
context
)
throws
AppException
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getAttendanceRecordDetailList
()))
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getAttendanceRecordDetailList
()))
{
entity
.
getAttendanceRecordDetailList
().
stream
().
peek
(
item
->
{
entity
.
getAttendanceRecordDetailList
().
stream
().
peek
(
item
->
{
item
.
setRecordId
(
entity
.
getId
());
item
.
setRecordId
(
entity
.
getId
());
item
.
setCreateUser
(
context
==
null
?
"admin"
:
context
.
getUser
().
getLoginName
());
item
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
item
.
setCreateUserId
(
context
==
null
?
1L
:
context
.
getUser
().
getId
());
item
.
setCreateTime
(
new
Date
());
item
.
setCreateTime
(
new
Date
());
}).
count
();
}).
count
();
attendanceRecordDetailService
.
save
(
entity
.
getAttendanceRecordDetailList
());
attendanceRecordDetailService
.
save
(
entity
.
getAttendanceRecordDetailList
());
...
@@ -60,16 +59,14 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
...
@@ -60,16 +59,14 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Override
@Override
protected
void
updateAfter
(
AttendanceRecordEntity
entity
,
Context
context
)
throws
AppException
{
protected
void
updateAfter
(
AttendanceRecordEntity
entity
,
Context
context
)
throws
AppException
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getAttendanceRecordDetailList
()))
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getAttendanceRecordDetailList
()))
{
Long
[]
attendanceRecordDetailIds
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordId
(
entity
.
getId
())).
stream
().
map
(
AttendanceRecordDetailEntity:
:
getId
).
toArray
(
Long
[]::
new
);
Long
[]
attendanceRecordDetailIds
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordId
(
entity
.
getId
())).
stream
().
map
(
AttendanceRecordDetailEntity:
:
getId
).
toArray
(
Long
[]::
new
);
attendanceRecordDetailService
.
remove
(
attendanceRecordDetailIds
,
context
);
attendanceRecordDetailService
.
remove
(
attendanceRecordDetailIds
,
context
);
entity
.
getAttendanceRecordDetailList
().
stream
().
peek
(
item
->{
entity
.
getAttendanceRecordDetailList
().
stream
().
peek
(
item
->
{
item
.
setRecordId
(
entity
.
getId
());
item
.
setRecordId
(
entity
.
getId
());
item
.
setCreateUser
(
context
==
null
?
"admin"
:
context
.
getUser
().
getLoginName
());
item
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
item
.
setCreateUserId
(
context
==
null
?
1L
:
context
.
getUser
().
getId
());
item
.
setCreateTime
(
new
Date
());
item
.
setCreateTime
(
new
Date
());
item
.
setUpdateUser
(
context
==
null
?
"admin"
:
context
.
getUser
().
getLoginName
());
item
.
setUpdateUserId
(
this
.
getContextUserId
(
context
));
item
.
setUpdateUserId
(
context
==
null
?
1L
:
context
.
getUser
().
getId
());
item
.
setUpdateTime
(
new
Date
());
item
.
setUpdateTime
(
new
Date
());
}).
count
();
}).
count
();
attendanceRecordDetailService
.
save
(
entity
.
getAttendanceRecordDetailList
());
attendanceRecordDetailService
.
save
(
entity
.
getAttendanceRecordDetailList
());
...
@@ -80,7 +77,7 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
...
@@ -80,7 +77,7 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
@Override
@Override
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
List
<
AttendanceRecordDetailEntity
>
attendanceRecordDetaillist
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordIdList
(
Arrays
.
asList
(
ids
)));
List
<
AttendanceRecordDetailEntity
>
attendanceRecordDetaillist
=
attendanceRecordDetailService
.
find
(
new
AttendanceRecordDetailQuery
().
recordIdList
(
Arrays
.
asList
(
ids
)));
attendanceRecordDetailService
.
removeList
(
attendanceRecordDetaillist
,
context
);
attendanceRecordDetailService
.
removeList
(
attendanceRecordDetaillist
,
context
);
super
.
removeAfter
(
ids
,
context
,
result
);
super
.
removeAfter
(
ids
,
context
,
result
);
}
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
View file @
9d25b0a7
...
@@ -36,7 +36,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
...
@@ -36,7 +36,7 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
try
{
try
{
log
.
info
(
"door events req=>{}"
,
JSON
.
toJSONString
(
doorEventReq
));
log
.
info
(
"door events req=>{}"
,
JSON
.
toJSONString
(
doorEventReq
));
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
doorEventReq
),
null
,
null
,
"application/json"
);
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
doorEventReq
),
null
,
null
,
"application/json"
);
//
log.info("door events error resp=>{}", respJson);
//
log.info("door events error resp=>{}", respJson);
HikApiRest
<
DoorEventDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
DoorEventDataInfo
>>()
{
HikApiRest
<
DoorEventDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
DoorEventDataInfo
>>()
{
});
});
log
.
info
(
"door events resp=>{}"
,
rest
.
getCode
());
log
.
info
(
"door events resp=>{}"
,
rest
.
getCode
());
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/model/rsp/person/PersonInfo.java
View file @
9d25b0a7
...
@@ -7,19 +7,17 @@ import java.util.Date;
...
@@ -7,19 +7,17 @@ import java.util.Date;
@Data
@Data
public
class
PersonInfo
{
public
class
PersonInfo
{
private
String
personId
;
private
String
personName
;
private
int
gender
;
private
int
gender
;
private
String
orgPath
;
private
String
orgPath
;
private
String
orgPathName
;
private
String
orgIndexCode
;
private
String
orgIndexCode
;
private
String
orgName
;
private
int
certificateType
;
private
String
certificateNo
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
private
Date
updateTime
;
private
Date
updateTime
;
private
String
certificateNo
;
private
String
phoneNo
;
private
String
phoneNo
;
private
String
personName
;
private
PersonPhoto
personPhoto
;
private
PersonPhoto
personPhoto
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
private
Date
createTime
;
private
String
jobNo
;
private
String
jobNo
;
private
String
personId
;
private
int
certificateType
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/person/service/impl/HikPersonServiceImpl.java
View file @
9d25b0a7
...
@@ -36,6 +36,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
...
@@ -36,6 +36,7 @@ public class HikPersonServiceImpl extends AbstractHikService implements IHikPers
path
.
put
(
protocol
,
getCamsApi
);
path
.
put
(
protocol
,
getCamsApi
);
try
{
try
{
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
personReq
),
null
,
null
,
"application/json"
);
String
respJson
=
ArtemisHttpUtil
.
doPostStringArtemis
(
config
,
path
,
JSON
.
toJSONString
(
personReq
),
null
,
null
,
"application/json"
);
log
.
info
(
"person resp=>{}"
,
respJson
);
HikApiRest
<
PersonDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
PersonDataInfo
>>()
{
HikApiRest
<
PersonDataInfo
>
rest
=
JSON
.
parseObject
(
respJson
,
new
TypeReference
<
HikApiRest
<
PersonDataInfo
>>()
{
});
});
if
(
"0"
.
equals
(
rest
.
getCode
()))
{
if
(
"0"
.
equals
(
rest
.
getCode
()))
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
View file @
9d25b0a7
package
com.mortals.xhx.module.staff.service.impl
;
package
com.mortals.xhx.module.staff.service.impl
;
import
com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl
;
import
com.mortals.xhx.common.code.StaffSatusEnum
;
import
com.mortals.xhx.common.code.StaffTypeEnum
;
import
com.mortals.xhx.common.code.StatusEnum
;
import
com.mortals.xhx.module.staff.dao.StaffDao
;
import
com.mortals.xhx.module.staff.dao.StaffDao
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffDaoImpl
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffDaoImpl
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffLeaveDaoImpl
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffLeaveDaoImpl
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.model.vo.StaffInfoVo
;
import
com.mortals.xhx.module.staff.model.vo.StaffInfoVo
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* StaffService
* StaffService
...
@@ -22,14 +29,6 @@ import java.util.List;
...
@@ -22,14 +29,6 @@ import java.util.List;
@Service
(
"staffService"
)
@Service
(
"staffService"
)
public
class
StaffServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
StaffDao
,
StaffEntity
,
Long
>
implements
StaffService
{
public
class
StaffServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
StaffDao
,
StaffEntity
,
Long
>
implements
StaffService
{
@Autowired
private
StaffDaoImpl
staffDao
;
@Autowired
private
StaffLeaveDaoImpl
staffLeaveDao
;
@Override
@Override
protected
String
getExtKey
(
StaffEntity
data
)
{
protected
String
getExtKey
(
StaffEntity
data
)
{
//工号作为redis 扩展key
//工号作为redis 扩展key
...
@@ -40,26 +39,33 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
...
@@ -40,26 +39,33 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
public
StaffInfoVo
queryAll
()
{
public
StaffInfoVo
queryAll
()
{
StaffInfoVo
staffInfoVo
=
new
StaffInfoVo
();
StaffInfoVo
staffInfoVo
=
new
StaffInfoVo
();
//在职
//在职
staffInfoVo
.
setInWorkStaff
(
staffDao
.
queryInWork
());
StaffQuery
staffQuery
=
new
StaffQuery
();
staffQuery
.
setStatusList
(
Arrays
.
asList
(
StaffSatusEnum
.
正式
.
getValue
(),
StaffSatusEnum
.
试用
.
getValue
()));
List
<
StaffEntity
>
staffEntities
=
this
.
find
(
staffQuery
);
staffInfoVo
.
setInWorkStaff
(
staffEntities
.
size
());
//全职
//全职
staffInfoVo
.
setFullStaff
(
staffDao
.
queryFull
());
Map
<
Integer
,
Long
>
collect
=
staffEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getStaffType
(),
Collectors
.
counting
()));
//正式
staffInfoVo
.
setFullStaff
(
collect
.
getOrDefault
(
StaffTypeEnum
.
全职
.
getValue
(),
0L
).
intValue
());
staffInfoVo
.
setFormalStaff
(
staffDao
.
queryFormal
());
//实习
staffInfoVo
.
setPricateStaff
(
collect
.
getOrDefault
(
StaffTypeEnum
.
实习
.
getValue
(),
0L
).
intValue
());
//兼职
//兼职
staffInfoVo
.
setConcurrentlyStaff
(
staffDao
.
queryConcurrently
());
staffInfoVo
.
setConcurrentlyStaff
(
collect
.
getOrDefault
(
StaffTypeEnum
.
兼职
.
getValue
(),
0L
).
intValue
());
//试用
//试用
staffInfoVo
.
setOnTrialStaff
(
staffDao
.
queryOnTrial
());
staffInfoVo
.
setOnTrialStaff
(
this
.
find
(
new
StaffQuery
().
status
(
StaffSatusEnum
.
试用
.
getValue
())).
size
());
//
实习
//
正式
staffInfoVo
.
set
PricateStaff
(
staffDao
.
queryPricat
e
());
staffInfoVo
.
set
FormalStaff
(
this
.
find
(
new
StaffQuery
().
status
(
StaffSatusEnum
.
正式
.
getValue
())).
siz
e
());
//待离职
//待离职
staffInfoVo
.
setResignationStaff
(
staffLeaveDao
.
queryResignation
());
staffInfoVo
.
setResignationStaff
(
this
.
find
(
new
StaffQuery
().
status
(
StaffSatusEnum
.
离职
.
getValue
())).
size
());
return
staffInfoVo
;
return
staffInfoVo
;
}
}
@Override
@Override
public
int
queryAllPerson
()
{
public
int
queryAllPerson
()
{
return
staffDao
.
queryInWork
();
StaffQuery
staffQuery
=
new
StaffQuery
();
staffQuery
.
setStatusList
(
Arrays
.
asList
(
StaffSatusEnum
.
正式
.
getValue
(),
StaffSatusEnum
.
试用
.
getValue
()));
List
<
StaffEntity
>
staffEntities
=
this
.
find
(
staffQuery
);
return
staffEntities
.
size
();
}
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffController.java
View file @
9d25b0a7
...
@@ -76,7 +76,6 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
...
@@ -76,7 +76,6 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
//todo 员工统计信息
//todo 员工统计信息
List
<
HolidayListVo
>
holidayListVos
=
new
ArrayList
<>();
List
<
HolidayListVo
>
holidayListVos
=
new
ArrayList
<>();
HolidayListVo
vo
=
new
HolidayListVo
();
HolidayListVo
vo
=
new
HolidayListVo
();
StaffEntity
staffEntity
=
this
.
service
.
get
(
id
);
StaffEntity
staffEntity
=
this
.
service
.
get
(
id
);
vo
.
setWorkName
(
staffEntity
.
getName
());
vo
.
setWorkName
(
staffEntity
.
getName
());
vo
.
setWorkStatus
(
String
.
valueOf
(
staffEntity
.
getStatus
()));
vo
.
setWorkStatus
(
String
.
valueOf
(
staffEntity
.
getStatus
()));
...
@@ -96,9 +95,7 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
...
@@ -96,9 +95,7 @@ public class StaffController extends BaseCRUDJsonBodyMappingController<StaffServ
vo
.
setPaternityLeaveDay
(
"10"
);
vo
.
setPaternityLeaveDay
(
"10"
);
holidayListVos
.
add
(
vo
);
holidayListVos
.
add
(
vo
);
entity
.
setHolidayLists
(
holidayListVos
);
entity
.
setHolidayLists
(
holidayListVos
);
// StaffEntity cache = this.service.getCache(entity.getWorkNum());
// StaffEntity cache = this.service.getCache(entity.getWorkNum());
return
super
.
infoAfter
(
id
,
model
,
entity
,
context
);
return
super
.
infoAfter
(
id
,
model
,
entity
,
context
);
}
}
...
...
attendance-performance-manager/src/test/java/Sample.java
0 → 100644
View file @
9d25b0a7
// This file is auto-generated, don't edit it. Thanks.
import
com.aliyun.tea.*
;
public
class
Sample
{
/**
* 使用 Token 初始化账号Client
* @return Client
* @throws Exception
*/
public
static
com
.
aliyun
.
dingtalkoauth2_1_0
.
Client
createClient
()
throws
Exception
{
com
.
aliyun
.
teaopenapi
.
models
.
Config
config
=
new
com
.
aliyun
.
teaopenapi
.
models
.
Config
();
config
.
protocol
=
"https"
;
config
.
regionId
=
"central"
;
return
new
com
.
aliyun
.
dingtalkoauth2_1_0
.
Client
(
config
);
}
public
static
void
main
(
String
[]
args_
)
throws
Exception
{
java
.
util
.
List
<
String
>
args
=
java
.
util
.
Arrays
.
asList
(
args_
);
com
.
aliyun
.
dingtalkoauth2_1_0
.
Client
client
=
Sample
.
createClient
();
com
.
aliyun
.
dingtalkoauth2_1_0
.
models
.
GetAccessTokenRequest
getAccessTokenRequest
=
new
com
.
aliyun
.
dingtalkoauth2_1_0
.
models
.
GetAccessTokenRequest
();
try
{
client
.
getAccessToken
(
getAccessTokenRequest
);
}
catch
(
TeaException
err
)
{
if
(!
com
.
aliyun
.
teautil
.
Common
.
empty
(
err
.
code
)
&&
!
com
.
aliyun
.
teautil
.
Common
.
empty
(
err
.
message
))
{
// err 中含有 code 和 message 属性,可帮助开发定位问题
}
}
catch
(
Exception
_err
)
{
TeaException
err
=
new
TeaException
(
_err
.
getMessage
(),
_err
);
if
(!
com
.
aliyun
.
teautil
.
Common
.
empty
(
err
.
code
)
&&
!
com
.
aliyun
.
teautil
.
Common
.
empty
(
err
.
message
))
{
// err 中含有 code 和 message 属性,可帮助开发定位问题
}
}
}
}
\ No newline at end of file
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