同步通道任务完善
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
package org.dromara.sis.dubbo;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sis.api.RemoteDeviceService;
|
||||
import org.dromara.sis.api.domain.RemoteSdkChannel;
|
||||
import org.dromara.sis.api.domain.RemoteSisDeviceChannel;
|
||||
import org.dromara.sis.api.domain.RemoteSisDeviceManage;
|
||||
import org.dromara.sis.domain.SisDeviceChannel;
|
||||
import org.dromara.sis.domain.SisDeviceManage;
|
||||
import org.dromara.sis.domain.covert.CommonBeanCovert;
|
||||
import org.dromara.sis.sdk.hik.HikSdkConstans;
|
||||
import org.dromara.sis.service.ISisDeviceChannelService;
|
||||
import org.dromara.sis.service.ISisDeviceManageService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 海康设备远程服务调用
|
||||
*
|
||||
* @author lxj
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class RemoteDeviceServiceImpl implements RemoteDeviceService {
|
||||
|
||||
private final ISisDeviceManageService deviceManageService;
|
||||
private final ISisDeviceChannelService deviceChannelService;
|
||||
|
||||
@Override
|
||||
public List<RemoteSisDeviceManage> queryHikDevices() {
|
||||
List<SisDeviceManage> sisDeviceManages = deviceManageService.queryHikDevices();
|
||||
return CommonBeanCovert.INSTANCE.entity2Remote(sisDeviceManages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateDeviceState(RemoteSisDeviceManage item) {
|
||||
return deviceManageService.updateDeviceState(CommonBeanCovert.INSTANCE.Remote2Entity(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RemoteSisDeviceChannel> queryDeviceChannels(String deviceIp) {
|
||||
List<SisDeviceChannel> channels = deviceChannelService.queryByDeviceIp(deviceIp);
|
||||
return CommonBeanCovert.INSTANCE.channelEntity2Remote(channels);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateDeviceChannelState(String deviceIp, Integer onLineState) {
|
||||
return deviceChannelService.updateDeviceChannelState(deviceIp, onLineState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteByChannelIps(List<String> list) {
|
||||
return deviceChannelService.deleteByChannelIps(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean insertChannel(List<RemoteSdkChannel> insertData) {
|
||||
List<SisDeviceChannel> list = insertData.stream().map(item -> {
|
||||
SisDeviceChannel channel = new SisDeviceChannel();
|
||||
// 通道设备信息
|
||||
channel.setDeviceIp(item.getChannelIp());
|
||||
channel.setDevicePort(Integer.valueOf(item.getChannelPort()));
|
||||
channel.setDeviceAccount(item.getChannelAccount());
|
||||
// 目前没发获取通道设备厂商,默认跟着录像机走
|
||||
channel.setFactoryNo(item.getNvrFactoryNo());
|
||||
channel.setChannelNo(HikSdkConstans.DEFAULT_CHANNEL);
|
||||
channel.setChannelState(item.getChannelStatus());
|
||||
if (StrUtil.isNotEmpty(item.getChannelPwd())) {
|
||||
channel.setDevicePwd(item.getChannelPwd());
|
||||
}
|
||||
// nvr 设备信息
|
||||
channel.setNvrIp(item.getNvrIp());
|
||||
channel.setNvrPort(HikSdkConstans.DEFAULT_RTSP_PORT);
|
||||
channel.setNvrAccount(item.getNvrAccount());
|
||||
channel.setNvrPwd(item.getNvrPwd());
|
||||
channel.setNvrFactoryNo(item.getNvrFactoryNo());
|
||||
channel.setNvrChannelNo(item.getChannelId() + HikSdkConstans.DEFAULT_CHANNEL_PREFX);
|
||||
|
||||
// 系统设备信息
|
||||
// 将设备id 更改为nvr的设备id
|
||||
channel.setDeviceId(item.getDeviceId());
|
||||
channel.setGroupId(item.getGroupId());
|
||||
channel.setChannelName(item.getChannelName());
|
||||
channel.setChannelNo(item.getChannelId() + HikSdkConstans.DEFAULT_CHANNEL_PREFX);
|
||||
channel.setTenantId(item.getTenantId());
|
||||
return channel;
|
||||
}).toList();
|
||||
return deviceChannelService.batchInsert(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updateChannelInfo(List<RemoteSisDeviceChannel> updateData) {
|
||||
int num = 0;
|
||||
for (RemoteSisDeviceChannel item : updateData) {
|
||||
Boolean b = deviceChannelService.updateDeviceChannelState(item.getDeviceIp(), item.getChannelState());
|
||||
if (b) {
|
||||
num++;
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
@@ -1,51 +0,0 @@
|
||||
package org.dromara.sis.dubbo;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sis.api.RemoteHikDeviceService;
|
||||
import org.dromara.sis.api.domain.RemoteSisDeviceChannel;
|
||||
import org.dromara.sis.api.domain.RemoteSisDeviceManage;
|
||||
import org.dromara.sis.domain.SisDeviceChannel;
|
||||
import org.dromara.sis.domain.SisDeviceManage;
|
||||
import org.dromara.sis.domain.covert.CommonBeanCovert;
|
||||
import org.dromara.sis.service.ISisDeviceChannelService;
|
||||
import org.dromara.sis.service.ISisDeviceManageService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 海康设备远程服务调用
|
||||
*
|
||||
* @author lxj
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class RemoteHikDeviceServiceImpl implements RemoteHikDeviceService {
|
||||
|
||||
private final ISisDeviceManageService deviceManageService;
|
||||
private final ISisDeviceChannelService deviceChannelService;
|
||||
|
||||
@Override
|
||||
public List<RemoteSisDeviceManage> queryHikDevices() {
|
||||
List<SisDeviceManage> sisDeviceManages = deviceManageService.queryHikDevices();
|
||||
return CommonBeanCovert.INSTANCE.entity2Remote(sisDeviceManages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateDeviceState(RemoteSisDeviceManage item) {
|
||||
return deviceManageService.updateDeviceState(CommonBeanCovert.INSTANCE.Remote2Entity(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RemoteSisDeviceChannel> queryDeviceChannels(String deviceIp) {
|
||||
List<SisDeviceChannel> channels = deviceChannelService.queryByDeviceIp(deviceIp);
|
||||
return CommonBeanCovert.INSTANCE.channelEntity2Remote(channels);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateDeviceChannelState(String deviceIp, Integer onLineState) {
|
||||
return deviceChannelService.updateDeviceChannelState(deviceIp, onLineState);
|
||||
}
|
||||
}
|
@@ -8,14 +8,18 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.dromara.property.api.RemoteFloorService;
|
||||
import org.dromara.property.api.domain.vo.RemoteFloorVo;
|
||||
import org.dromara.sis.domain.vo.*;
|
||||
import org.dromara.sis.domain.vo.SisAccessControlVo;
|
||||
import org.dromara.sis.domain.vo.SisAuthGroupRefVo;
|
||||
import org.dromara.sis.domain.vo.SisAuthRecordVo;
|
||||
import org.dromara.sis.domain.vo.SisDeviceBindRefVo;
|
||||
import org.dromara.sis.sdk.e8.E8PlatformApi;
|
||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq;
|
||||
import org.dromara.sis.sdk.hik.HCNetSDK;
|
||||
import org.dromara.sis.sdk.hik.HikApiService;
|
||||
import org.dromara.sis.sdk.huawei.HuaWeiBoxApi;
|
||||
import org.dromara.sis.service.*;
|
||||
import org.dromara.sis.service.ISisAccessControlService;
|
||||
import org.dromara.sis.service.ISisAuthGroupRefService;
|
||||
import org.dromara.sis.service.ISisAuthRecordService;
|
||||
import org.dromara.sis.service.ISisDeviceBindRefService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
@@ -23,7 +27,9 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static org.dromara.sis.sdk.hik.HCNetSDK.*;
|
||||
|
||||
@@ -35,10 +41,8 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 {
|
||||
private final HuaWeiBoxApi huaWeiBoxApi;
|
||||
private final ISisAuthRecordService authRecordService;
|
||||
private final ISisAuthGroupRefService authGroupRefService;
|
||||
private final ISisElevatorInfoService elevatorInfoService;
|
||||
private final ISisDeviceBindRefService deviceBindRefService;
|
||||
private final ISisAccessControlService accessControlService;
|
||||
private final ISisElevatorFloorRefService elevatorFloorRefService;
|
||||
private final E8PlatformApi e8PlatformApi;
|
||||
|
||||
@DubboReference
|
||||
@@ -330,7 +334,7 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 {
|
||||
}
|
||||
|
||||
Date now = new Date();
|
||||
if(DateUtil.compare(now, authRecord.getEndDate()) > 0){
|
||||
if (DateUtil.compare(now, authRecord.getEndDate()) > 0) {
|
||||
log.info("当前人脸已过期,暂不处理。");
|
||||
return true;
|
||||
}
|
||||
|
@@ -24,6 +24,7 @@ public class HikDevWorkStateCallBack implements HCNetSDK.DEV_WORK_STATE_CB {
|
||||
}
|
||||
lpWorkState.read();
|
||||
log.info(JSON.toJSONString(lpWorkState));
|
||||
log.info("海康sdk心跳信息上报, tda = {}", JSON.toJSONString(lpWorkState));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -60,6 +60,14 @@ public interface ISisDeviceChannelService {
|
||||
*/
|
||||
Boolean insert(SisDeviceChannel channel);
|
||||
|
||||
/**
|
||||
* 批量写入通道信息
|
||||
*
|
||||
* @param list 批量写入通道信息
|
||||
* @return 返回写入数量
|
||||
*/
|
||||
Boolean batchInsert(List<SisDeviceChannel> list);
|
||||
|
||||
/**
|
||||
* 修改设备通道管理
|
||||
*
|
||||
@@ -77,6 +85,21 @@ public interface ISisDeviceChannelService {
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 通过设备ids 删除设备通道信息
|
||||
*
|
||||
* @param deviceIds 设备ids
|
||||
* @return 返回删除数量
|
||||
*/
|
||||
Integer deleteByDeviceIds(List<Long> deviceIds);
|
||||
|
||||
/**
|
||||
* 通过通道ip删除设备通道
|
||||
*
|
||||
* @param list ip列表
|
||||
*/
|
||||
Integer deleteByChannelIps(List<String> list);
|
||||
|
||||
/**
|
||||
* 查询设备通道树
|
||||
*
|
||||
@@ -87,13 +110,6 @@ public interface ISisDeviceChannelService {
|
||||
|
||||
void handleHikDeviceChannel(SisDeviceManageBo bo);
|
||||
|
||||
/**
|
||||
* 通过设备ids 删除设备通道信息
|
||||
*
|
||||
* @param deviceIds 设备ids
|
||||
* @return 返回删除数量
|
||||
*/
|
||||
Integer deleteByDeviceIds(List<Long> deviceIds);
|
||||
|
||||
SisDeviceChannel queryByChannelIp(String channelIp);
|
||||
|
||||
@@ -107,8 +123,11 @@ public interface ISisDeviceChannelService {
|
||||
|
||||
/**
|
||||
* 更新设备状态
|
||||
*
|
||||
* @param deviceIp 设备ip
|
||||
* @return 返回是否操作成功
|
||||
*/
|
||||
Boolean updateDeviceChannelState(String deviceIp, Integer onLineState);
|
||||
|
||||
|
||||
}
|
||||
|
@@ -123,6 +123,11 @@ public class SisDeviceChannelServiceImpl implements ISisDeviceChannelService {
|
||||
return baseMapper.insert(channel) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchInsert(List<SisDeviceChannel> list) {
|
||||
return baseMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备通道管理
|
||||
*
|
||||
@@ -302,6 +307,13 @@ public class SisDeviceChannelServiceImpl implements ISisDeviceChannelService {
|
||||
return baseMapper.delete(lqw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteByChannelIps(List<String> list) {
|
||||
LambdaQueryWrapper<SisDeviceChannel> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.in(SisDeviceChannel::getDeviceIp, list);
|
||||
return baseMapper.delete(lqw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SisDeviceChannel> queryByDeviceIp(String deviceIp) {
|
||||
LambdaQueryWrapper<SisDeviceChannel> lqw = new LambdaQueryWrapper<>();
|
||||
|
Reference in New Issue
Block a user