feat(sis): 1

This commit is contained in:
zcxlsm 2025-08-06 12:03:06 +08:00
parent a4e40f5123
commit 17d041e51d
2 changed files with 36 additions and 20 deletions

View File

@ -6,10 +6,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sis.sdk.unview.model.UvModel;
import org.dromara.sis.sdk.unview.service.VideoAlarmService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* 宇视告警书记上报
@ -20,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/uniview")
@RequestMapping("/alarm")
public class VideoAlarmController {
@Resource
@ -34,5 +31,10 @@ public class VideoAlarmController {
return UvModel.UniViewResult.success(null);
}
@PostMapping("/huawei/callback")
public void huaweiAlarm(@RequestBody String data) {
log.info("华为上报消息,msg={}", data);
}
}

View File

@ -8,10 +8,11 @@ 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.producer.CleanLiftAuthRocketProducer;
import org.dromara.sis.sdk.e8.E8PlatformApi;
import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq;
import org.dromara.sis.sdk.hik.HikApiService;
import org.dromara.sis.sdk.huawei.HuaWeiBoxApi;
import org.dromara.sis.service.*;
import org.springframework.stereotype.Service;
@ -41,6 +42,8 @@ public class ZeroSensationPassageServiceImpl implements IZeroSensationPassageSer
private final E8PlatformApi e8PlatformApi;
private final ISisAlarmEventsService alarmEventsService;
private final CleanLiftAuthRocketProducer cleanLiftAuthRocketProducer;
@DubboReference
private RemoteFloorService remoteFloorService;
@ -96,9 +99,9 @@ public class ZeroSensationPassageServiceImpl implements IZeroSensationPassageSer
if (item.getControlType() == 1) { // 门禁
handleAc(item.getDeviceId());
} else if (item.getControlType() == 2) { // 电梯外面面板权限
handleEle(item.getDeviceId(), r.getAuthGroupId(), 2);
handleEle(item.getDeviceId(), r.getAuthGroupId(), 2, item.getDeviceFloorId());
} else if (item.getControlType() == 3) { // 电梯里面的面板
handleEle(item.getDeviceId(), r.getAuthGroupId(), 3);
handleEle(item.getDeviceId(), r.getAuthGroupId(), 3, item.getDeviceFloorId());
} else {
log.info("设备绑定了未知的控制类型[{}],不处理", item.getControlType());
}
@ -134,21 +137,32 @@ public class ZeroSensationPassageServiceImpl implements IZeroSensationPassageSer
/**
* 验证电梯权限
*/
public void handleEle(Long deviceId, Long groupId, Integer controlType) {
log.info("开始下发梯控权限....");
// 获取电梯信息
// 获取电梯信息
public void handleEle(Long deviceId, Long groupId, Integer controlType, Long deviceFloorId) {
// 获取当前电梯信息
SisElevatorInfoVo ele = elevatorInfoService.queryById(deviceId);
// 根据单元ID获取楼层信息
List<RemoteFloorVo> floorInfo = remoteFloorService.queryByBuildingId(ele.getBuildingId());
// 获取电梯楼层关联信息
List<SisElevatorFloorRefVo> floorRefList = elevatorFloorRefService.queryByAuthGroupId(groupId);
for (SisElevatorFloorRefVo sisElevatorFloorRefVo : floorRefList) {
//todo 下发梯控权限
// HikApiService.getInstance().controlGateway(ele.getControlIp(), sisElevatorFloorRefVo.getFloorId(), 2);
// 获取权限组下电梯楼层关联信息
List<SisElevatorFloorRefVo> groupRef = elevatorFloorRefService.queryByAuthGroupId(groupId);
// 取出当前电梯的楼层授权信息
List<SisElevatorFloorRefVo> eleRef = groupRef.stream().filter(o -> Objects.equals(o.getElevatorId(), deviceId)).toList();
for (SisElevatorFloorRefVo ref : eleRef){
if (controlType == 2){
log.info("开始下发外面版梯控权限....");
if (ref.getOutChannel() != null && Objects.equals(ref.getFloorId(), deviceFloorId)) {
HikApiService.getInstance().controlGateway(ele.getControlIp(), ref.getOutChannel().intValue(), 2);
}
}else {
log.info("开始下发里面版梯控权限....");
if (ref.getInChannel() != null && Objects.equals(ref.getFloorId(), deviceFloorId)) {
HikApiService.getInstance().controlGateway(ele.getControlIp(), ref.getInChannel().intValue(), 2);
}
}
}
log.info("梯控下发权限完成");
cleanLiftAuthRocketProducer.sendMessage(deviceId, groupId, deviceFloorId, "清除电梯" + deviceId + "梯控权限", 3);
}
}