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
53a4b33d
Commit
53a4b33d
authored
Jul 20, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改考勤汇总
parent
d3882485
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
117 additions
and
11 deletions
+117
-11
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
...r/src/main/java/com/mortals/xhx/busiz/TestController.java
+105
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java
.../mortals/xhx/module/dingding/AbstractDingTalkService.java
+6
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
...dingding/personal/service/impl/DingPersonServiceImpl.java
+6
-4
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
View file @
53a4b33d
...
...
@@ -3,11 +3,15 @@ package com.mortals.xhx.busiz;
import
cn.hutool.core.codec.Base64
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.PageUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.utils.ServletUtils
;
import
com.mortals.xhx.base.system.idgenerator.service.IdgeneratorService
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
...
...
@@ -17,9 +21,15 @@ import com.mortals.xhx.base.system.user.service.UserService;
import
com.mortals.xhx.busiz.h5.rsp.ApiResp
;
import
com.mortals.xhx.common.code.ApiRespCodeEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery
;
import
com.mortals.xhx.module.attendance.service.AttendanceRecordHikService
;
import
com.mortals.xhx.module.dept.model.DeptEntity
;
import
com.mortals.xhx.module.dept.model.DeptQuery
;
import
com.mortals.xhx.module.dept.service.DeptService
;
import
com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.rsp.door.DoorEventDataInfo
;
import
com.mortals.xhx.module.hik.door.service.IHikDoorService
;
import
com.mortals.xhx.module.hik.face.model.req.img.ImgReq
;
import
com.mortals.xhx.module.hik.face.service.IHikFaceService
;
import
com.mortals.xhx.module.perform.service.PerformPerposeStaffService
;
...
...
@@ -35,10 +45,7 @@ import org.springframework.web.multipart.MultipartFile;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -72,6 +79,12 @@ public class TestController {
@Autowired
private
PerformPerposeStaffService
performPerposeStaffService
;
@Autowired
private
AttendanceRecordHikService
recordHikService
;
@Autowired
private
IHikDoorService
hikDoorService
;
/**
* 同步指定日期的海康数据
*
...
...
@@ -79,14 +92,98 @@ public class TestController {
* @return
*/
@PostMapping
(
"hik"
)
public
String
register
(
@RequestBody
Base
Req
req
)
{
public
String
register
(
@RequestBody
Test
Req
req
)
{
log
.
info
(
"【测试消息】【请求体】--> "
+
JSONObject
.
toJSONString
(
req
));
DoorEventReq
doorEventReq
=
new
DoorEventReq
();
List
<
Integer
>
eventTypes
=
new
ArrayList
<>();
eventTypes
.
add
(
196885
);
eventTypes
.
add
(
196887
);
eventTypes
.
add
(
196893
);
eventTypes
.
add
(
196888
);
eventTypes
.
add
(
196889
);
eventTypes
.
add
(
196890
);
eventTypes
.
add
(
196891
);
doorEventReq
.
setEventTypes
(
eventTypes
);
doorEventReq
.
setStartTime
(
req
.
getCreateTimeStart
());
doorEventReq
.
setEndTime
(
req
.
getCreateTimeEnd
());
doorEventReq
.
setPageNo
(
1
);
doorEventReq
.
setPageSize
(
1
);
Rest
<
DoorEventDataInfo
>
doorEventsRest
=
hikDoorService
.
getDoorEvents
(
doorEventReq
);
log
.
info
(
"doorEventsRest:{} msg:{}"
,
doorEventsRest
.
getCode
(),
doorEventsRest
.
getMsg
());
if
(
doorEventsRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
//分页获取考勤数据
Integer
total
=
doorEventsRest
.
getData
().
getTotal
();
int
pageCount
=
PageUtil
.
totalPage
(
total
,
1000
);
for
(
int
i
=
1
;
i
<=
pageCount
;
i
++)
{
doorEventReq
.
setPageNo
(
i
);
doorEventReq
.
setPageSize
(
1000
);
doorEventsRest
=
hikDoorService
.
getDoorEvents
(
doorEventReq
);
log
.
info
(
"doorEventsRest:{} msg:{},page:{}"
,
doorEventsRest
.
getCode
(),
doorEventsRest
.
getMsg
(),
doorEventReq
.
getPageNo
());
getDoorEvents
(
doorEventsRest
);
}
}
return
"ok"
;
}
private
void
getDoorEvents
(
Rest
<
DoorEventDataInfo
>
doorEventsRest
)
{
//同步当前考勤数据
List
<
AttendanceRecordHikEntity
>
attRecords
=
doorEventsRest
.
getData
().
getList
().
stream
().
map
(
item
->
{
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
StaffEntity
staffCache
=
staffService
.
getExtCache
(
StrUtil
.
padPre
(
item
.
getJobNo
(),
8
,
"0"
));
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
{
log
.
info
(
"staff is null !staffCode:{}"
,
item
.
getJobNo
());
return
null
;
}
recordHikEntity
.
setStaffId
(
staffCache
.
getId
());
recordHikEntity
.
setStaffName
(
staffCache
.
getName
());
recordHikEntity
.
setWorkNum
(
staffCache
.
getWorkNum
());
recordHikEntity
.
setDeptId
(
staffCache
.
getDeptId
());
recordHikEntity
.
setDeptName
(
staffCache
.
getDeptName
());
recordHikEntity
.
setPositionId
(
staffCache
.
getPositionId
());
recordHikEntity
.
setPositionName
(
staffCache
.
getPositionName
());
recordHikEntity
.
setAttendanceDate
(
item
.
getEventTime
());
recordHikEntity
.
setAttendanceAddress
(
item
.
getDoorName
());
recordHikEntity
.
setEventSource
(
"门禁点"
);
recordHikEntity
.
setRemark
(
item
.
getEventId
());
recordHikEntity
.
setCreateTime
(
item
.
getEventTime
());
recordHikEntity
.
setCreateUserName
(
"system"
);
recordHikEntity
.
setCreateUserId
(
1L
);
return
recordHikEntity
;
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
());
log
.
info
(
"attRecords size:{}"
,
attRecords
.
size
());
if
(!
ObjectUtils
.
isEmpty
(
attRecords
))
{
recordHikService
.
save
(
attRecords
);
}
/*
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();
recordHikQuery.setAttendanceDateStart(DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd"));
recordHikQuery.setAttendanceDateEnd(DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd"));
recordHikQuery.setRemarkList(eventIds);
Set<String> eventIdSet = recordHikService.find(recordHikQuery).parallelStream().map(i -> i.getRemark()).collect(Collectors.toSet());
List<AttendanceRecordHikEntity> saveRecordList = attRecords.stream().filter(f -> !eventIdSet.contains(f.getRemark())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(saveRecordList)) {
recordHikService.save(saveRecordList);
}
log.info("saveRecordList size:{}", saveRecordList.size());*/
}
@GetMapping
(
"updateDeptNum"
)
@UnAuth
public
String
updateDeptNum
()
{
...
...
@@ -115,12 +212,13 @@ public class TestController {
Long
deptId
=
item
.
getKey
();
if
(
deptId
==
-
1
)
continue
;
DeptEntity
deptEntity
=
deptService
.
get
(
deptId
);
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
)
)
{
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
))
{
//查询当前父节点的所有子部门
DeptQuery
deptQuery
=
new
DeptQuery
();
deptQuery
.
setParentId
(
deptEntity
.
getParentId
());
int
sum
=
deptService
.
find
(
new
DeptQuery
().
parentId
(
deptEntity
.
getParentId
())).
stream
().
map
(
i
->
i
.
getPersonNum
()).
reduce
(
0
,
Integer:
:
sum
);;
int
sum
=
deptService
.
find
(
new
DeptQuery
().
parentId
(
deptEntity
.
getParentId
())).
stream
().
map
(
i
->
i
.
getPersonNum
()).
reduce
(
0
,
Integer:
:
sum
);
;
DeptEntity
parentDept
=
deptService
.
get
(
deptEntity
.
getParentId
());
log
.
info
(
"dept:{},sum:{}"
,
parentDept
.
getDeptName
(),
sum
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java
View file @
53a4b33d
...
...
@@ -52,6 +52,12 @@ public abstract class AbstractDingTalkService implements IDingPersonService {
@Value
(
"${dingtalk.AppSecret:''}"
)
protected
String
appSecret
;
/**
* appKey
*/
@Value
(
"${dingtalk.oaUrl:}"
)
protected
String
oaUrl
;
@Autowired
private
ICacheService
cacheService
;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
View file @
53a4b33d
...
...
@@ -120,9 +120,11 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
*/
public
com
.
aliyun
.
dingtalkworkflow_1_0
.
Client
createClient
()
throws
Exception
{
com
.
aliyun
.
teaopenapi
.
models
.
Config
config
=
new
com
.
aliyun
.
teaopenapi
.
models
.
Config
();
//config.protocol = "https";
config
.
protocol
=
"https"
;
config
.
regionId
=
"central"
;
// config.endpoint = domain.replace("http://", "");
//config.endpoint = domain.replace("http://", "");
//config.endpoint = oaUrl;
return
new
com
.
aliyun
.
dingtalkworkflow_1_0
.
Client
(
config
);
}
...
...
@@ -132,11 +134,11 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
com
.
aliyun
.
dingtalkworkflow_1_0
.
Client
client
=
createClient
();
com
.
aliyun
.
dingtalkworkflow_1_0
.
models
.
GetProcessInstanceHeaders
getProcessInstanceHeaders
=
new
com
.
aliyun
.
dingtalkworkflow_1_0
.
models
.
GetProcessInstanceHeaders
();
getProcessInstanceHeaders
.
xAcsDingtalkAccessToken
=
getToken
();
/*
HashMap<String, String> map = new HashMap<>();
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
getProcessInstanceHeaders
.
setCommonHeaders
(
map
);
getProcessInstanceHeaders
.
getCommonHeaders
().
put
(
"host"
,
"172.15.28.113"
);
getProcessInstanceHeaders.getCommonHeaders().put("port", "891
8
");
getProcessInstanceHeaders.getCommonHeaders().put("protocol", "http");
*/
getProcessInstanceHeaders
.
getCommonHeaders
().
put
(
"port"
,
"891
9
"
);
getProcessInstanceHeaders
.
getCommonHeaders
().
put
(
"protocol"
,
"http"
);
com
.
aliyun
.
dingtalkworkflow_1_0
.
models
.
GetProcessInstanceRequest
getProcessInstanceRequest
=
new
com
.
aliyun
.
dingtalkworkflow_1_0
.
models
.
GetProcessInstanceRequest
()
.
setProcessInstanceId
(
processInstanceId
);
...
...
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