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
73fa84cc
Commit
73fa84cc
authored
Mar 27, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改同步人员接口
parent
dd107ff9
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
89 additions
and
128 deletions
+89
-128
attendance-performance-manager-ui/admin/vue.config.js
attendance-performance-manager-ui/admin/vue.config.js
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
...r/src/main/java/com/mortals/xhx/busiz/TestController.java
+49
-112
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java
...-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java
+4
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+1
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
...er/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
...mortals/xhx/module/door/service/impl/DoorServiceImpl.java
+0
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
...ortals/xhx/module/hik/staff/service/IHikStaffService.java
+17
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
...hx/module/hik/staff/service/impl/HikStaffServiceImpl.java
+10
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
...rtals/xhx/module/staff/service/impl/StaffServiceImpl.java
+0
-5
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
...-manager/src/test/java/com/mortals/httpclient/system.http
+5
-0
No files found.
attendance-performance-manager-ui/admin/vue.config.js
View file @
73fa84cc
...
...
@@ -8,9 +8,9 @@ module.exports = {
hot
:
true
,
//自动保存
proxy
:
{
'
/attendance
'
:
{
target
:
'
http://192.168.0.98:11039
'
,
//
target: 'http://192.168.0.98:11039',
// target: 'http://112.19.80.237:11039',
//
target: 'http://localhost:17500',
target
:
'
http://localhost:17500
'
,
changeOrigin
:
true
,
secure
:
false
,
cookieDomainRewrite
:
'
localhost
'
,
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
View file @
73fa84cc
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
;
...
...
@@ -9,32 +8,30 @@ 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
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
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.AttendanceLeaveRecordEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery
;
import
com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService
;
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.door.model.DoorEntity
;
import
com.mortals.xhx.module.door.model.DoorQuery
;
import
com.mortals.xhx.module.door.service.DoorService
;
import
com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.req.door.HikDoorEventReq
;
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.PerformPerpose
StaffService
;
import
com.mortals.xhx.module.
hik.staff.service.IHik
StaffService
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.service.StaffService
;
...
...
@@ -45,9 +42,11 @@ import org.springframework.util.ObjectUtils;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -61,10 +60,6 @@ import java.util.stream.Collectors;
@Slf4j
@RequestMapping
(
"/test"
)
public
class
TestController
{
@Autowired
private
IdgeneratorService
idgeneratorService
;
@Autowired
private
ICacheService
cacheService
;
@Autowired
...
...
@@ -77,15 +72,15 @@ public class TestController {
private
UploadService
uploadService
;
@Autowired
private
DeptService
deptService
;
@Autowired
private
PerformPerposeStaffService
performPerposeStaffService
;
@Autowired
private
AttendanceRecordHikService
recordHikService
;
@Autowired
private
IHikDoorService
hikDoorService
;
@Autowired
private
DoorService
doorService
;
@Autowired
private
IHikStaffService
hikStaffService
;
/**
* 同步指定日期的海康数据
...
...
@@ -174,26 +169,8 @@ public class TestController {
}
catch
(
Exception
e
)
{
log
.
error
(
"异常"
,
e
);
}
}
}
/*
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());*/
}
...
...
@@ -241,73 +218,15 @@ public class TestController {
// updateDeptPersonNum(parentDept);
}
}
}
/*
//更新父部门的人数归集
collect.entrySet().stream().forEach(item -> {
Long deptId = item.getKey();
DeptEntity deptEntity = deptService.get(deptId);
if (!ObjectUtils.isEmpty(deptEntity) && !ObjectUtils.isEmpty(deptEntity.getParentId())) {
int sum = deptService.find(new DeptQuery().parentId(deptEntity.getId())).stream().mapToInt(i -> i.getPersonNum()).sum();
DeptEntity parentDept = deptService.get(deptEntity.getParentId());
if (ObjectUtils.isEmpty(parentDept)) {
parentDept.setPersonNum(sum);
deptService.update(parentDept);
updateDeptPersonNum(parentDept);
}
}
// updateDeptPersonNum(deptEntity);
});*/
return
"ok"
;
}
public
static
void
calculateParentValue
(
DeptEntity
root
)
{
if
(
root
==
null
)
{
return
;
}
// 递归处理叶子节点
if
(
root
.
getChildren
().
isEmpty
())
{
return
;
}
// 递归计算所有子节点的值之和
int
sum
=
0
;
for
(
DeptEntity
child
:
root
.
getChildren
())
{
calculateParentValue
(
child
);
sum
+=
child
.
getPersonNum
();
}
// 更新当前节点的值为所有子节点值之和
root
.
setPersonNum
(
sum
);
}
private
void
updateDeptPersonNum
(
DeptEntity
deptEntity
)
{
if
(!
ObjectUtils
.
isEmpty
(
deptEntity
)
&&
!
ObjectUtils
.
isEmpty
(
deptEntity
.
getParentId
()))
{
int
sum
=
deptService
.
find
(
new
DeptQuery
().
parentId
(
deptEntity
.
getId
())).
stream
().
mapToInt
(
i
->
i
.
getPersonNum
()).
sum
();
DeptEntity
parentDept
=
deptService
.
get
(
deptEntity
.
getParentId
());
if
(
ObjectUtils
.
isEmpty
(
parentDept
))
{
parentDept
.
setPersonNum
(
sum
);
deptService
.
update
(
parentDept
);
updateDeptPersonNum
(
parentDept
);
}
}
}
//
@GetMapping
(
"updatePersons"
)
@UnAuth
public
String
updatePersons
()
{
log
.
info
(
"更新用户手机号码"
);
cacheService
.
select
(
1
);
Map
<
String
,
String
>
map
=
cacheService
.
hgetAll
(
"com:mortals:xhx:module:workman:model:WorkmanEntity"
);
cacheService
.
select
(
14
);
...
...
@@ -363,7 +282,6 @@ public class TestController {
ImgReq
imgReq
=
new
ImgReq
();
imgReq
.
setUrl
(
staffEntity
.
getPicUri
());
imgReq
.
setServerIndexCode
(
staffEntity
.
getServerIndexCode
());
//Rest<String> rest = faceService.downloadPicture(imgReq);
try
{
InputStream
in
=
faceService
.
callPostImgs
(
imgReq
);
if
(!
ObjectUtils
.
isEmpty
(
in
))
{
...
...
@@ -375,20 +293,6 @@ public class TestController {
}
catch
(
Exception
e
)
{
log
.
error
(
"下载出错"
);
}
/*
if (YesNoEnum.YES.getValue() == rest.getCode()) {
byte[] bytes = Base64.decode(rest.getData());
if (!org.springframework.util.ObjectUtils.isEmpty(bytes)) {
InputStream inputStream = new ByteArrayInputStream(bytes);
MultipartFile file = ServletUtils.getMultipartFile(inputStream, "snap.jpg");
String filePath = uploadService.saveFileUpload(file, "file/fileupload/snap/" + DateUtil.today(), null);
staffEntity.setPhotoPath(filePath);
updateList.add(staffEntity);
}
} else {
log.info("download:{}", JSON.toJSONString(rest));
}*/
}
}
if
(!
ObjectUtils
.
isEmpty
(
updateList
))
{
...
...
@@ -462,11 +366,44 @@ public class TestController {
try
{
attendanceLeaveRecordService
.
doUpdateRecord
(
processInstanceId
,
leaveRecordEntity
);
}
catch
(
Exception
e
)
{
log
.
error
(
"异常"
,
e
);
log
.
error
(
"异常"
,
e
);
}
return
Rest
.
ok
();
}
return
Rest
.
ok
();
/**
* 同步指定设备人员信息
*
* @param testReq
* @return
*/
@PostMapping
(
"updatePersonsByDevices"
)
@UnAuth
public
String
updatePersonsByDevices
(
@RequestBody
TestReq
testReq
)
{
log
.
info
(
"更新设备人员==>{}"
,
JSON
.
toJSONString
(
testReq
));
staffService
.
syncPersonsByDevices
(
null
);
return
"ok"
;
}
/**
* 查询设备考勤事件信息
*
* @param testReq
* @return
*/
@PostMapping
(
"searchEventsByDevices"
)
@UnAuth
public
String
searchEventsByDevices
(
@RequestBody
TestReq
testReq
)
{
log
.
info
(
"查询设备考勤信息==>{}"
,
JSON
.
toJSONString
(
testReq
));
HikDoorEventReq
hikDoorEventReq
=
new
HikDoorEventReq
();
hikDoorEventReq
.
setStartTime
(
testReq
.
getCreateTimeStart
());
hikDoorEventReq
.
setEndTime
(
testReq
.
getCreateTimeEnd
());
DoorEntity
doorEntity
=
doorService
.
get
(
testReq
.
getDeviceId
());
doorService
.
syncDoorDeviceEvents
(
doorEntity
,
hikDoorEventReq
);
return
"ok"
;
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java
View file @
73fa84cc
...
...
@@ -11,4 +11,8 @@ public class TestReq {
private
Date
createTimeStart
;
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTimeEnd
;
private
Long
deviceId
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
73fa84cc
...
...
@@ -99,12 +99,9 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
log
.
error
(
"同步钉钉usreId失败"
);
}
}
else
{
//todo 设备直连
// deptService.syncDeptByDevice(null);
log
.
info
(
"设备直连同步人员信息"
);
staffService
.
syncPersonsByDevices
(
null
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"同步人事异常"
,
e
);
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
View file @
73fa84cc
...
...
@@ -92,7 +92,7 @@ public class AcsMain {
/**登录*/
login_V40
(
"1
92.168.0.111"
,
"admin"
,
"asd12345
"
,(
short
)
8000
);
login_V40
(
"1
0.102.221.201"
,
"admin"
,
"10.102.221.201
"
,(
short
)
8000
);
/**远程控门*/
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
View file @
73fa84cc
...
...
@@ -53,13 +53,9 @@ public class DoorServiceImpl extends AbstractCRUDServiceImpl<DoorDao, DoorEntity
@Override
public
Rest
<
Void
>
syncDoorDeviceEvents
(
DoorEntity
doorEntity
,
HikDoorEventReq
hikDoorEventReq
)
{
Rest
<
List
<
EventInfo
>>
listRest
=
hikDoorService
.
searchDoorEventsList
(
hikDoorEventReq
,
doorEntity
);
if
(
listRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
List
<
EventInfo
>
list
=
listRest
.
getData
();
List
<
AttendanceRecordHikEntity
>
attRecords
=
list
.
stream
().
map
(
item
->
{
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
View file @
73fa84cc
...
...
@@ -33,4 +33,21 @@ public interface IHikStaffService {
/**
* 获取人员人脸信息
*
* @param personReq
* @return
*/
Rest
<
UserSearchInfo
>
getPersonPicByDevices
(
StaffReq
personReq
,
DoorEntity
doorEntity
);
/**
* 下发图片到指定设备
*
* @param personReq
* @return
*/
Rest
<
UserSearchInfo
>
downPersonPicToDevice
(
StaffReq
personReq
,
DoorEntity
doorEntity
);
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
View file @
73fa84cc
...
...
@@ -202,4 +202,14 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
}
@Override
public
Rest
<
UserSearchInfo
>
getPersonPicByDevices
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
return
null
;
}
@Override
public
Rest
<
UserSearchInfo
>
downPersonPicToDevice
(
StaffReq
personReq
,
DoorEntity
doorEntity
)
{
return
null
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
View file @
73fa84cc
...
...
@@ -352,10 +352,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
//设置初始密码
entity
.
setLoginPwd
(
"123456"
);
}
//生成用户id,不与门户服务用户相同
// Long userId = idgeneratorService.getLongId(USER_KEY);
// entity.setId(userId);
userEntity
.
setLoginName
(
StrUtil
.
cleanBlank
(
entity
.
getLoginName
()));
userEntity
.
setRealName
(
entity
.
getName
());
userEntity
.
setUserType
(
UserType
.
WORK_PERSON
.
getValue
());
...
...
@@ -537,7 +533,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
staffCollect
.
remove
(
userInfoItem
.
getEmployeeNo
());
}
StaffEntity
staffEntity
=
this
.
getExtCache
(
StrUtil
.
padPre
(
userInfoItem
.
getEmployeeNo
(),
8
,
"0"
));
//DeptEntity deptEntity = deptService.selectOne(new DeptQuery().deptCode(userInfoItem.getBelongGroup()));
//设置到默认部门
//判断本地数据是否为空
if
(
ObjectUtils
.
isEmpty
(
staffEntity
))
{
...
...
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
View file @
73fa84cc
...
...
@@ -146,3 +146,8 @@ Content-Type: application/json
"windowNum": "123123"
}
###设备直连更新人员
GET {{baseUrl}}/test/updatePersonsByDevices
Content-Type: application/json
{}
\ 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