增加梯控服务

This commit is contained in:
lxj
2025-07-10 18:36:45 +08:00
parent f98e94ecd1
commit 815fe53f1a
17 changed files with 508 additions and 91 deletions

View File

@@ -93,15 +93,4 @@ public class SisAccessControl extends TenantEntity {
*/
private String outCode;
/**
* 绑定设备id
*/
private Long bindDeviceId;
/**
* 绑定设备ip
*/
private String bindDeviceIp;
}

View File

@@ -0,0 +1,49 @@
package org.dromara.sis.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
/**
* 摄像头绑定(门禁,电梯)关联关系对象 sis_device_bind_ref
*
* @author lxj
* @date 2025-07-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sis_device_bind_ref")
public class SisDeviceBindRef extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 设备id(摄像头id)
*/
private Long deviceId;
private String deviceIp;
/**
* control_type=1是门禁idcontrol_type=2,3 是电梯id
*/
private Long bindId;
/**
* 控制类型(1:门禁2电梯呼梯3:电梯梯控
*/
private Integer controlType;
}

View File

@@ -104,9 +104,4 @@ public class SisAccessControlBo extends BaseEntity {
*/
private Long bindDeviceId;
/**
* 绑定设备ip
*/
private String bindDeviceIp;
}

View File

@@ -0,0 +1,50 @@
package org.dromara.sis.domain.bo;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 摄像头绑定(门禁,电梯)关联关系业务对象 sis_device_bind_ref
*
* @author lxj
* @date 2025-07-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SisDeviceBindRef.class, reverseConvertGenerate = false)
public class SisDeviceBindRefBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 设备id(摄像头id)
*/
@NotNull(message = "设备id(摄像头id)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deviceId;
private String deviceIp;
/**
* control_type=1是门禁idcontrol_type=2,3 是电梯id
*/
@NotNull(message = "control_type=1是门禁idcontrol_type=2,3 是电梯id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long bindId;
/**
* 控制类型(1:门禁2电梯呼梯3:电梯梯控
*/
@NotNull(message = "控制类型(1:门禁2电梯呼梯3:电梯梯控不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer controlType;
}

View File

@@ -0,0 +1,27 @@
package org.dromara.sis.domain.enums;
import lombok.Getter;
@Getter
public enum ControlTypeEnum {
/**
* 门禁
*/
ACCESS_CONTROL(1),
/**
* 远程呼梯
*/
REMOTE_CALL_ELEVATOR(2),
/**
* 梯控
*/
ELEVATOR_CONTROL(3);
private final Integer code;
ControlTypeEnum(Integer code) {
this.code = code;
}
}

View File

@@ -104,12 +104,4 @@ public class SisAccessControlVo implements Serializable {
*/
@ExcelProperty(value = "外部编码")
private String outCode;
private Long bindDeviceId;
/**
* 绑定设备ip
*/
private String bindDeviceIp;
}

View File

@@ -0,0 +1,57 @@
package org.dromara.sis.domain.vo;
import org.dromara.sis.domain.SisDeviceBindRef;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 摄像头绑定(门禁,电梯)关联关系视图对象 sis_device_bind_ref
*
* @author lxj
* @date 2025-07-10
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SisDeviceBindRef.class)
public class SisDeviceBindRefVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 设备id(摄像头id)
*/
@ExcelProperty(value = "设备id(摄像头id)")
private Long deviceId;
private String deviceIp;
/**
* control_type=1是门禁idcontrol_type=2,3 是电梯id
*/
@ExcelProperty(value = "control_type=1是门禁idcontrol_type=2,3 是电梯id")
private Long bindId;
/**
* 控制类型(1:门禁2电梯呼梯3:电梯梯控
*/
@ExcelProperty(value = "控制类型(1:门禁2电梯呼梯3:电梯梯控")
private Integer controlType;
}

View File

@@ -0,0 +1,15 @@
package org.dromara.sis.mapper;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.sis.domain.vo.SisDeviceBindRefVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 摄像头绑定(门禁,电梯)关联关系Mapper接口
*
* @author lxj
* @date 2025-07-10
*/
public interface SisDeviceBindRefMapper extends BaseMapperPlus<SisDeviceBindRef, SisDeviceBindRefVo> {
}

View File

@@ -3,7 +3,8 @@ package org.dromara.sis.sdk.unview.service;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.sis.domain.enums.ControlTypeEnum;
import org.dromara.sis.domain.vo.SisAuthRecordVo;
import org.dromara.sis.sdk.e8.AccessControlService;
import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq;
@@ -11,10 +12,12 @@ import org.dromara.sis.sdk.unview.model.UvModel;
import org.dromara.sis.sdk.unview.model.enums.AlarmTypeEnum;
import org.dromara.sis.service.ISisAccessControlService;
import org.dromara.sis.service.ISisAuthRecordService;
import org.dromara.sis.service.ISisDeviceBindRefService;
import org.dromara.sis.service.ISisDeviceManageService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
* 宇视人体设备告警数据处理
@@ -30,6 +33,7 @@ public class VideoAlarmService {
private final ISisAuthRecordService authRecordService;
private final AccessControlService accessControlService;
private final ISisAccessControlService sisAccessControlService;
private final ISisDeviceBindRefService deviceBindRefService;
public void handleAlarmData(UvModel.AlarmReportInfo alarmReportData) {
@@ -127,37 +131,52 @@ public class VideoAlarmService {
return;
}
compareResults.forEach(result -> {
// 查询设备是偶绑定门径
// SisDeviceManageVo sisDeviceManageVo = deviceManageService.queryVoByDeviceIp(deviceInfo.getDevice_code());
SisAccessControlVo controlVo = sisAccessControlService.queryByBindDeviceIp(channelInfo.getIpc_addr());
if (controlVo == null) {
log.info("设备[{}]未和门禁绑定,不处理此条数据。", channelInfo.getIpc_addr());
// 查询设备绑定关联关系表
SisDeviceBindRef ref = deviceBindRefService.queryByDeviceIp(channelInfo.getIpc_addr());
if (ref == null) {
return;
}
// 人像库id
// Integer libId = result.getLib_id();
// 宇视人员id
Integer personId = result.getPerson_id();
// 门禁id
Long accessControlId = controlVo.getId();
// 校验人脸是偶有同行此门禁的权限
SisAuthRecordVo recordVo = authRecordService.checkAuth(personId, accessControlId);
// 如果有通行权限,则打开门禁
if (recordVo == null) {
log.info("此人像[{}]没有门禁[{}]的通行权限。", personId, accessControlId);
// 门禁
if (Objects.equals(ref.getControlType(), ControlTypeEnum.ACCESS_CONTROL.getCode())) {
// SisAccessControlVo controlVo = sisAccessControlService.queryById(ref.getBindId());
// if (controlVo == null) {
// log.info("设备[{}]未和门禁绑定,不处理此条数据。", channelInfo.getIpc_addr());
// return;
// }
// 人像库id
// Integer libId = result.getLib_id();
// 宇视人员id
Integer personId = result.getPerson_id();
// 门禁id
Long accessControlId = ref.getBindId();
// 校验人脸是偶有同行此门禁的权限
SisAuthRecordVo recordVo = authRecordService.checkAuth(personId, accessControlId);
// 如果有通行权限,则打开门禁
if (recordVo == null) {
log.info("此人像[{}]没有门禁[{}]的通行权限。", personId, accessControlId);
}
// 打开门禁
RemoteOpenDoorReq remoteOpenDoorReq = new RemoteOpenDoorReq();
remoteOpenDoorReq.setType(0);
remoteOpenDoorReq.setReason("宇视人像识别,人像id=" + recordVo.getImgId());
remoteOpenDoorReq.setOperatorId(0L);
RemoteOpenDoorReq.ControlData data = new RemoteOpenDoorReq.ControlData();
data.setDoorId(recordVo.getDoorId());
data.setDeviceId(recordVo.getDeviceId());
remoteOpenDoorReq.setControlList(List.of(data));
log.info("远程开门参数params={}", JSONObject.toJSONString(remoteOpenDoorReq));
Boolean b = accessControlService.remoteOpenDoor(remoteOpenDoorReq);
log.info("远程开门完成, result={}", b);
}
// 远程呼梯
if (Objects.equals(ref.getControlType(), ControlTypeEnum.REMOTE_CALL_ELEVATOR.getCode())) {
// TODO 待实现
}
// 梯控
if (Objects.equals(ref.getControlType(), ControlTypeEnum.ELEVATOR_CONTROL.getCode())) {
// TODO 待实现
}
// 打开门禁
RemoteOpenDoorReq remoteOpenDoorReq = new RemoteOpenDoorReq();
remoteOpenDoorReq.setType(0);
remoteOpenDoorReq.setReason("宇视人像识别,人像id=" + recordVo.getImgId());
remoteOpenDoorReq.setOperatorId(0L);
RemoteOpenDoorReq.ControlData data = new RemoteOpenDoorReq.ControlData();
data.setDoorId(recordVo.getDoorId());
data.setDeviceId(recordVo.getDeviceId());
remoteOpenDoorReq.setControlList(List.of(data));
log.info("远程开门参数params={}", JSONObject.toJSONString(remoteOpenDoorReq));
Boolean b = accessControlService.remoteOpenDoor(remoteOpenDoorReq);
log.info("远程开门完成, result={}", b);
});
}

View File

@@ -1,11 +1,10 @@
package org.dromara.sis.service;
import org.dromara.common.core.domain.TreeNode;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import java.util.Collection;
import java.util.List;
@@ -76,17 +75,9 @@ public interface ISisAccessControlService {
*/
List<SisAccessControlVo> queryListByIds(Collection<Long> ids);
/**
* 通过绑定设备ip查询门禁
* @param deviceCode 设备ip
* @return
*/
SisAccessControlVo queryByBindDeviceIp(String deviceCode);
/**
* 查询门禁树
*
* @return
*/
List<TreeNode<Long>> queryAcTree();

View File

@@ -0,0 +1,84 @@
package org.dromara.sis.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.sis.domain.bo.SisDeviceBindRefBo;
import org.dromara.sis.domain.vo.SisDeviceBindRefVo;
import java.util.Collection;
import java.util.List;
/**
* 摄像头绑定(门禁,电梯)关联关系Service接口
*
* @author lxj
* @date 2025-07-10
*/
public interface ISisDeviceBindRefService {
/**
* 查询摄像头绑定(门禁,电梯)关联关系
*
* @param id 主键
* @return 摄像头绑定(门禁 电梯)关联关系
*/
SisDeviceBindRefVo queryById(Long id);
/**
* 分页查询摄像头绑定(门禁,电梯)关联关系列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 摄像头绑定(门禁 电梯)关联关系分页列表
*/
TableDataInfo<SisDeviceBindRefVo> queryPageList(SisDeviceBindRefBo bo, PageQuery pageQuery);
/**
* 查询符合条件的摄像头绑定(门禁,电梯)关联关系列表
*
* @param bo 查询条件
* @return 摄像头绑定(门禁 电梯)关联关系列表
*/
List<SisDeviceBindRefVo> queryList(SisDeviceBindRefBo bo);
/**
* 新增摄像头绑定(门禁,电梯)关联关系
*
* @param bo 摄像头绑定(门禁,电梯)关联关系
* @return 是否新增成功
*/
Boolean insertByBo(SisDeviceBindRefBo bo);
/**
* 新增摄像头绑定(门禁,电梯)关联关系
*
* @param ref 摄像头绑定(门禁,电梯)关联关系
* @return 是否新增成功
*/
Boolean insert(SisDeviceBindRef ref);
/**
* 修改摄像头绑定(门禁,电梯)关联关系
*
* @param bo 摄像头绑定(门禁,电梯)关联关系
* @return 是否修改成功
*/
Boolean updateByBo(SisDeviceBindRefBo bo);
/**
* 校验并批量删除摄像头绑定(门禁,电梯)关联关系信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 通过ip查询设备关联关系
* @param ipcAddr 设备ip
* @return 返回关联关系表
*/
SisDeviceBindRef queryByDeviceIp(String ipcAddr);
}

View File

@@ -17,7 +17,9 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.property.api.RemoteFloorService;
import org.dromara.property.api.domain.vo.RemoteFloorVo;
import org.dromara.sis.domain.SisAccessControl;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.sis.domain.bo.SisAccessControlBo;
import org.dromara.sis.domain.enums.ControlTypeEnum;
import org.dromara.sis.domain.vo.SisAccessControlVo;
import org.dromara.sis.domain.vo.SisDeviceManageVo;
import org.dromara.sis.mapper.SisAccessControlMapper;
@@ -25,6 +27,7 @@ import org.dromara.sis.sdk.e8.DoorDeviceService;
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
import org.dromara.sis.service.ISisAccessControlService;
import org.dromara.sis.service.ISisDeviceBindRefService;
import org.dromara.sis.service.ISisDeviceManageService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -47,7 +50,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
private final SisAccessControlMapper baseMapper;
private final DoorDeviceService doorDeviceService;
private final ISisDeviceManageService sisDeviceManageService;
private final ISisDeviceBindRefService sisDeviceBindRefService;
@DubboReference
private RemoteFloorService remoteFloorService;
@@ -131,10 +134,18 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
add.setBuildingId(remoteFloorVo.getBuildingId());
add.setUnitId(remoteFloorVo.getUnitId());
add.setFloorId(remoteFloorVo.getId());
add.setBindDeviceIp(sisDeviceManageVo.getDeviceIp());
Assert.notNull(add, "数据处理失败");
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
// 写入关联关系表中
SisDeviceBindRef sisDeviceBindRef = new SisDeviceBindRef();
sisDeviceBindRef.setDeviceId(sisDeviceManageVo.getId());
sisDeviceBindRef.setDeviceIp(sisDeviceManageVo.getDeviceIp());
sisDeviceBindRef.setBindId(add.getId());
sisDeviceBindRef.setControlType(ControlTypeEnum.ACCESS_CONTROL.getCode());
Boolean insert = sisDeviceBindRefService.insert(sisDeviceBindRef);
Assert.isTrue(insert, "写入设备关联表失败!");
// 添加E8门禁设备
if (add.getControlType() == 2L) {
log.info("开始同步写入E8门禁");
@@ -167,14 +178,6 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
Assert.isTrue(update, "外部编码回写失败");
log.info("E8平台写入完成!");
}
// 摄像头不绑定门禁,让门禁去绑定摄像头
/*if (bo.getBindDeviceId() != null) {
SisDeviceManageBo device = new SisDeviceManageBo();
device.setId(bo.getBindDeviceId());
device.setAccessControlId(add.getId());
sisDeviceManageService.updateByBo(device);
}*/
}
return flag;
}
@@ -225,13 +228,6 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
return baseMapper.selectVoByIds(ids);
}
@Override
public SisAccessControlVo queryByBindDeviceIp(String deviceCode) {
LambdaQueryWrapper<SisAccessControl> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SisAccessControl::getBindDeviceIp, deviceCode);
return baseMapper.selectVoOne(wrapper);
}
@Override
public List<TreeNode<Long>> queryAcTree() {
List<TreeNode<Long>> treeNodes = remoteFloorService.queryTreeList();

View File

@@ -0,0 +1,145 @@
package org.dromara.sis.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.SisDeviceBindRef;
import org.dromara.sis.domain.bo.SisDeviceBindRefBo;
import org.dromara.sis.domain.vo.SisDeviceBindRefVo;
import org.dromara.sis.mapper.SisDeviceBindRefMapper;
import org.dromara.sis.service.ISisDeviceBindRefService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 摄像头绑定(门禁,电梯)关联关系Service业务层处理
*
* @author lxj
* @date 2025-07-10
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class SisDeviceBindRefServiceImpl implements ISisDeviceBindRefService {
private final SisDeviceBindRefMapper baseMapper;
/**
* 查询摄像头绑定(门禁,电梯)关联关系
*
* @param id 主键
* @return 摄像头绑定(门禁 电梯)关联关系
*/
@Override
public SisDeviceBindRefVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
* 分页查询摄像头绑定(门禁,电梯)关联关系列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 摄像头绑定(门禁 电梯)关联关系分页列表
*/
@Override
public TableDataInfo<SisDeviceBindRefVo> queryPageList(SisDeviceBindRefBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SisDeviceBindRef> lqw = buildQueryWrapper(bo);
Page<SisDeviceBindRefVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的摄像头绑定(门禁,电梯)关联关系列表
*
* @param bo 查询条件
* @return 摄像头绑定(门禁 电梯)关联关系列表
*/
@Override
public List<SisDeviceBindRefVo> queryList(SisDeviceBindRefBo bo) {
LambdaQueryWrapper<SisDeviceBindRef> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<SisDeviceBindRef> buildQueryWrapper(SisDeviceBindRefBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SisDeviceBindRef> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SisDeviceBindRef::getId);
lqw.eq(bo.getDeviceId() != null, SisDeviceBindRef::getDeviceId, bo.getDeviceId());
lqw.eq(bo.getBindId() != null, SisDeviceBindRef::getBindId, bo.getBindId());
lqw.eq(bo.getControlType() != null, SisDeviceBindRef::getControlType, bo.getControlType());
return lqw;
}
/**
* 新增摄像头绑定(门禁,电梯)关联关系
*
* @param bo 摄像头绑定(门禁,电梯)关联关系
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(SisDeviceBindRefBo bo) {
SisDeviceBindRef add = MapstructUtils.convert(bo, SisDeviceBindRef.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
@Override
public Boolean insert(SisDeviceBindRef ref) {
return baseMapper.insert(ref) > 0;
}
/**
* 修改摄像头绑定(门禁,电梯)关联关系
*
* @param bo 摄像头绑定(门禁,电梯)关联关系
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(SisDeviceBindRefBo bo) {
SisDeviceBindRef update = MapstructUtils.convert(bo, SisDeviceBindRef.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SisDeviceBindRef entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除摄像头绑定(门禁,电梯)关联关系信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public SisDeviceBindRef queryByDeviceIp(String ipcAddr) {
LambdaQueryWrapper<SisDeviceBindRef> lqw = new LambdaQueryWrapper<>();
lqw.eq(SisDeviceBindRef::getDeviceIp, ipcAddr);
return baseMapper.selectOne(lqw);
}
}

View File

@@ -128,13 +128,14 @@ public class SisElevatorInfoServiceImpl implements ISisElevatorInfoService {
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setElevatorId(add.getElevatorId());
// sdk 链接设备
// hik sdk 登录
// short port = bo.getControlPort().shortValue();
// Boolean isLogin = HikApiService.getInstance().login(bo.getControlIp(), port, bo.getControlAccount(), bo.getControlPwd());
// if (!isLogin) {
// throw new RuntimeException("电梯添加失败, 发起梯控设备连接失败.");
// }
// Assert.isTrue(isLogin, "电梯添加失败, 发起梯控设备连接失败.");
// todo 发起电梯楼层信息同步
}
return flag;
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.sis.mapper.SisDeviceBindRefMapper">
</mapper>