人脸远程报警完成
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
lxj 2025-07-02 17:54:54 +08:00
parent d300606070
commit 84de853d7c
5 changed files with 57 additions and 20 deletions

View File

@ -3,6 +3,7 @@ package org.dromara.sis.controller;
import com.alibaba.fastjson2.JSONObject;
import jakarta.annotation.Resource;
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;
@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
* @author lxj
* @since 25-06-24
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/uniview")
@ -27,6 +29,7 @@ public class VideoAlarmController {
@PostMapping("/custom/router")
public UvModel.UniViewResult<?> alarm(@RequestBody String data) {
UvModel.AlarmReportInfo alarmReportData = JSONObject.parseObject(data, UvModel.AlarmReportInfo.class);
// log.info("宇视上报消息,msg={}", alarmReportData);
videoAlarmService.handleAlarmData(alarmReportData);
return UvModel.UniViewResult.success(null);
}

View File

@ -27,11 +27,11 @@ public class SisAccessControlBo extends BaseEntity {
@NotNull(message = "不能为空", groups = {EditGroup.class})
private Long id;
/**
* 门禁设备编码
*/
@NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String accessCode;
// /**
// * 门禁设备编码
// */
// @NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class})
// private String accessCode;
/**
* 门禁名称
@ -80,8 +80,8 @@ public class SisAccessControlBo extends BaseEntity {
/**
*
*/
@NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
private String factoryCode;
// @NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
// private String factoryCode;
/**
* 控制卡类型1-系统2-E8

View File

@ -160,6 +160,25 @@ public class UvModel {
private String image_path;
private String image_base64;
private String similarity;
@Override
public String toString() {
return "CompareResult{" +
"target_id=" + target_id +
", lib_id=" + lib_id +
", lib_name='" + lib_name + '\'' +
", person_id=" + person_id +
", person_name='" + person_name + '\'' +
", sex=" + sex +
", email='" + email + '\'' +
", tel='" + tel + '\'' +
", certificate_type=" + certificate_type +
", certificate_no='" + certificate_no + '\'' +
", image_path='" + image_path + '\'' +
// ", image_base64='" + image_base64 + '\'' +
", similarity='" + similarity + '\'' +
'}';
}
}
@Data
@ -171,6 +190,19 @@ public class UvModel {
private String crop_image_path;
private String orig_image_base64; // 人脸抓拍大图base64
private String crop_image_base64; // 人脸抓拍小图base64
@Override
public String toString() {
return "Face{" +
"capture_time=" + capture_time +
", point_x='" + point_x + '\'' +
", point_y='" + point_y + '\'' +
", orig_image_path='" + orig_image_path + '\'' +
", crop_image_path='" + crop_image_path + '\'' +
// ", orig_image_base64='" + orig_image_base64 + '\'' +
// ", crop_image_base64='" + crop_image_base64 + '\'' +
'}';
}
}
@Data

View File

@ -106,12 +106,22 @@ public class VideoAlarmService {
* @param alarmReportData 告警数据
*/
private void handleFacialCapture(UvModel.AlarmReportInfo alarmReportData) {
}
/**
* 人脸比对数据上报
*
* @param alarmReportData 告警数据
*/
private void handleFacialComparison(UvModel.AlarmReportInfo alarmReportData) {
log.info("人脸数据比对,msg= {}", alarmReportData);
List<UvModel.CompareResult> compareResults = alarmReportData.getCompare_results();
if (compareResults == null) {
if (alarmReportData.getHas_result() == 1 && compareResults == null) {
log.info("无比对结果,不处理此条数据。");
return;
}
UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info();
UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info();
if (channelInfo == null) {
log.info("上报设备信息不存在,不处理词条数据。");
return;
@ -151,15 +161,6 @@ public class VideoAlarmService {
});
}
/**
* 人脸比对数据上报
*
* @param alarmReportData 告警数据
*/
private void handleFacialComparison(UvModel.AlarmReportInfo alarmReportData) {
}
/**
* 行为比对数据上报
*

View File

@ -93,12 +93,12 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SisAccessControl> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(SisAccessControl::getId);
lqw.eq(StringUtils.isNotBlank(bo.getAccessCode()), SisAccessControl::getAccessCode, bo.getAccessCode());
// lqw.eq(StringUtils.isNotBlank(bo.getAccessCode()), SisAccessControl::getAccessCode, bo.getAccessCode());
lqw.like(StringUtils.isNotBlank(bo.getAccessName()), SisAccessControl::getAccessName, bo.getAccessName());
lqw.eq(StringUtils.isNotBlank(bo.getAccessIp()), SisAccessControl::getAccessIp, bo.getAccessIp());
lqw.eq(bo.getAccessPort() != null, SisAccessControl::getAccessPort, bo.getAccessPort());
lqw.eq(bo.getAccessType() != null, SisAccessControl::getAccessType, bo.getAccessType());
lqw.eq(StringUtils.isNotBlank(bo.getFactoryCode()), SisAccessControl::getFactoryCode, bo.getFactoryCode());
// lqw.eq(StringUtils.isNotBlank(bo.getFactoryCode()), SisAccessControl::getFactoryCode, bo.getFactoryCode());
lqw.eq(bo.getControlType() != null, SisAccessControl::getControlType, bo.getControlType());
lqw.eq(StringUtils.isNotBlank(bo.getControlCode()), SisAccessControl::getControlCode, bo.getControlCode());
lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), SisAccessControl::getOutCode, bo.getOutCode());
@ -228,6 +228,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService {
@Override
public SisAccessControlVo queryByBindDeviceIp(String deviceCode) {
LambdaQueryWrapper<SisAccessControl> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SisAccessControl::getBindDeviceIp, deviceCode);
return baseMapper.selectVoOne(wrapper);
}