Commit 086c28cd authored by 姬鋆屾's avatar 姬鋆屾
parents e202fb1d 8cf1ab7b
......@@ -45,8 +45,6 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
@Autowired
private UserService userService;
@Autowired
private IHikPersonService hikPersonService;
@Autowired
private IDingPersonService dingPersonService;
@Value("${hik.host:}")
protected String hikhost;
......
......@@ -64,6 +64,8 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
//定义接收结果的结构体
HCNetSDK.BYTE_ARRAY ptrOutuff = new HCNetSDK.BYTE_ARRAY(1024 * 1024);
IntByReference pInt = new IntByReference(0);
int recount=0;
while (true) {
int dwState = hCNetSDK.NET_DVR_SendWithRecvRemoteConfig(lHandler, ptrInbuff.getPointer(), strInbuff.length(), ptrOutuff.getPointer(), 1024 * 1024, pInt);
log.info("dwState<=={}", dwState);
......@@ -73,13 +75,12 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
// break;
} else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_NEED_WAIT) {
log.info("配置等待");
if(recount>3) throw new AppException("配置等待失败!");
try {
Thread.sleep(10);
Thread.sleep(1000);
recount++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
continue;
} else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FAILED) {
log.info("查询人员失败");
throw new AppException(String.format("查询人员失败,错误码:%s", HCNetSDK.NET_SDK_CONFIG_STATUS_FAILED));
......@@ -107,11 +108,13 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
UserSearchInfo userSearchInfo = JSON.parseObject(resp, new TypeReference<UserSearchInfo>() {
});
logout(hCNetSDK,userID);
// logout(hCNetSDK,userID);
return Rest.ok(userSearchInfo);
} catch (Exception e) {
log.error("获取人员异常", e);
return Rest.fail(e.getMessage());
}finally {
logout(hCNetSDK,userID);
}
}
......@@ -150,6 +153,7 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
//定义接收结果的结构体
HCNetSDK.BYTE_ARRAY ptrOutuff = new HCNetSDK.BYTE_ARRAY(1 * 1024);
IntByReference pInt = new IntByReference(0);
int recount=0;
while (true) {
int dwState = hCNetSDK.NET_DVR_SendWithRecvRemoteConfig(lHandler, ptrInbuff.getPointer(), strInbuff.length(), ptrOutuff.getPointer(), 1 * 1024, pInt);
log.info("dwState<=={}", dwState);
......@@ -159,11 +163,12 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
// break;
} else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_NEED_WAIT) {
log.info("配置等待");
if(recount>3) throw new AppException("配置等待失败!");
try {
Thread.sleep(10);
Thread.sleep(1000);
recount++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
continue;
} else if (dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FAILED) {
......@@ -194,11 +199,12 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
UserSearchInfo userSearchInfo = JSON.parseObject(resp, new TypeReference<UserSearchInfo>() {
});
logout(hCNetSDK,userID);
return Rest.ok(userSearchInfo);
} catch (Exception e) {
log.error("获取人员异常", e);
return Rest.fail(e.getMessage());
}finally {
logout(hCNetSDK,userID);
}
}
......
......@@ -522,8 +522,10 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
Map<String, StaffEntity> staffCollect = this.find(staffQuery).stream().collect(Collectors.toMap(x -> x.getWorkNum(), y -> y, (o, n) -> n));
List<DoorEntity> doorEntities = doorService.find(new DoorQuery());
if(ObjectUtils.isEmpty(doorEntities)) return Rest.fail("未找到门禁设备!");
try {
for (DoorEntity doorEntity : doorEntities) {
DoorEntity doorEntity = doorEntities.get(0);
//for (DoorEntity doorEntity : doorEntities) {
StaffReq staffReq = new StaffReq();
Rest<UserSearchInfo> personCountRest = hikStaffService.getPersonCount(staffReq, doorEntity);
if (personCountRest.getCode() == YesNoEnum.YES.getValue()) {
......@@ -570,12 +572,28 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
staffEntity.setCreateUserId(1L);
staffEntity.setCreateTime(new Date());
this.save(staffEntity);
}else{
//更新员工状态
staffEntity.setStatus(StaffSatusEnum.正式.getValue());
staffEntity.setUpdateUserId(1L);
staffEntity.setUpdateTime(new Date());
this.update(staffEntity);
StaffLeaveQuery staffLeaveQuery = new StaffLeaveQuery();
staffLeaveQuery.setWorkNum(staffEntity.getWorkNum());
StaffLeaveEntity staffLeaveEntity = staffLeaveService.selectOne(staffLeaveQuery, null);
if(!ObjectUtils.isEmpty(staffEntity)){
staffLeaveService.remove(staffLeaveEntity.getId(),null);
}
}
}
}
}
}else {
log.info("人员信息为空");
throw new AppException(personCountRest.getMsg());
}
}
// }
} catch (Exception e) {
log.error("同步人员信息失败:{}", e.getMessage());
staffCollect = new HashMap<>();
......@@ -623,10 +641,10 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
if (count == 0) {
staffLeaveService.save(staffLeaveEntity);
}
Long[] groudStaffIds = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staff.getId())).stream().map(m -> m.getId()).toArray(Long[]::new);
/* Long[] groudStaffIds = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staff.getId())).stream().map(m -> m.getId()).toArray(Long[]::new);
if (!ObjectUtils.isEmpty(groudStaffIds)) {
attendanceGroupStaffService.remove(groudStaffIds, null);
}
}*/
}
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment