提交代码
parent
bc4d6e14ca
commit
e1a8ab5ade
|
@ -67,47 +67,15 @@ public class DevAiProjectData extends BaseEntity
|
|||
|
||||
/** 报警类型 */
|
||||
@Excel(name = "报警类型")
|
||||
private Long alarmType;
|
||||
private String alarmType;
|
||||
|
||||
/** 告警 ID */
|
||||
@Excel(name = "告警 ID")
|
||||
private Long alarmId;
|
||||
|
||||
/** 左上角 X 坐标 */
|
||||
@Excel(name = "左上角 X 坐标")
|
||||
private String leftTopX;
|
||||
|
||||
/** 左上角 Y 坐标 */
|
||||
@Excel(name = "左上角 Y 坐标")
|
||||
private String leftTopY;
|
||||
|
||||
/** 右下角 X 坐标 */
|
||||
@Excel(name = "右下角 X 坐标")
|
||||
private String rightBtmX;
|
||||
|
||||
/** 右下角 Y 坐标 */
|
||||
@Excel(name = "右下角 Y 坐标")
|
||||
private String rightBtmY;
|
||||
|
||||
/** 当前告警区域人数 */
|
||||
@Excel(name = "当前告警区域人数")
|
||||
private Long personNum;
|
||||
|
||||
/** 绊线进入人数数量 */
|
||||
@Excel(name = "绊线进入人数数量")
|
||||
private Long inNum;
|
||||
|
||||
/** 绊线离开人数数量 */
|
||||
@Excel(name = "绊线离开人数数量")
|
||||
private Long outNum;
|
||||
/** 告警编号 */
|
||||
@Excel(name = "告警编号")
|
||||
private String alarmId;
|
||||
|
||||
/** 车牌号 */
|
||||
@Excel(name = "车牌号")
|
||||
private Long plateNo;
|
||||
|
||||
/** ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测; */
|
||||
@Excel(name = "ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测;")
|
||||
private String valueType;
|
||||
private String plateNo;
|
||||
|
||||
/** 告警短视频的地址 */
|
||||
@Excel(name = "告警短视频的地址")
|
||||
|
@ -117,10 +85,6 @@ public class DevAiProjectData extends BaseEntity
|
|||
@Excel(name = "告警短视频的名称")
|
||||
private String alarmVideoName;
|
||||
|
||||
/** 人脸比对结果 */
|
||||
@Excel(name = "人脸比对结果")
|
||||
private String compareResult;
|
||||
|
||||
/** 数据状态 */
|
||||
@Excel(name = "数据状态")
|
||||
private Long isDel;
|
||||
|
@ -231,105 +195,33 @@ public class DevAiProjectData extends BaseEntity
|
|||
{
|
||||
return channelName;
|
||||
}
|
||||
public void setAlarmType(Long alarmType)
|
||||
public void setAlarmType(String alarmType)
|
||||
{
|
||||
this.alarmType = alarmType;
|
||||
}
|
||||
|
||||
public Long getAlarmType()
|
||||
public String getAlarmType()
|
||||
{
|
||||
return alarmType;
|
||||
}
|
||||
public void setAlarmId(Long alarmId)
|
||||
public void setAlarmId(String alarmId)
|
||||
{
|
||||
this.alarmId = alarmId;
|
||||
}
|
||||
|
||||
public Long getAlarmId()
|
||||
public String getAlarmId()
|
||||
{
|
||||
return alarmId;
|
||||
}
|
||||
public void setLeftTopX(String leftTopX)
|
||||
{
|
||||
this.leftTopX = leftTopX;
|
||||
}
|
||||
|
||||
public String getLeftTopX()
|
||||
{
|
||||
return leftTopX;
|
||||
}
|
||||
public void setLeftTopY(String leftTopY)
|
||||
{
|
||||
this.leftTopY = leftTopY;
|
||||
}
|
||||
|
||||
public String getLeftTopY()
|
||||
{
|
||||
return leftTopY;
|
||||
}
|
||||
public void setRightBtmX(String rightBtmX)
|
||||
{
|
||||
this.rightBtmX = rightBtmX;
|
||||
}
|
||||
|
||||
public String getRightBtmX()
|
||||
{
|
||||
return rightBtmX;
|
||||
}
|
||||
public void setRightBtmY(String rightBtmY)
|
||||
{
|
||||
this.rightBtmY = rightBtmY;
|
||||
}
|
||||
|
||||
public String getRightBtmY()
|
||||
{
|
||||
return rightBtmY;
|
||||
}
|
||||
public void setPersonNum(Long personNum)
|
||||
{
|
||||
this.personNum = personNum;
|
||||
}
|
||||
|
||||
public Long getPersonNum()
|
||||
{
|
||||
return personNum;
|
||||
}
|
||||
public void setInNum(Long inNum)
|
||||
{
|
||||
this.inNum = inNum;
|
||||
}
|
||||
|
||||
public Long getInNum()
|
||||
{
|
||||
return inNum;
|
||||
}
|
||||
public void setOutNum(Long outNum)
|
||||
{
|
||||
this.outNum = outNum;
|
||||
}
|
||||
|
||||
public Long getOutNum()
|
||||
{
|
||||
return outNum;
|
||||
}
|
||||
public void setPlateNo(Long plateNo)
|
||||
public void setPlateNo(String plateNo)
|
||||
{
|
||||
this.plateNo = plateNo;
|
||||
}
|
||||
|
||||
public Long getPlateNo()
|
||||
public String getPlateNo()
|
||||
{
|
||||
return plateNo;
|
||||
}
|
||||
public void setValueType(String valueType)
|
||||
{
|
||||
this.valueType = valueType;
|
||||
}
|
||||
|
||||
public String getValueType()
|
||||
{
|
||||
return valueType;
|
||||
}
|
||||
public void setAlarmVideourl(String alarmVideourl)
|
||||
{
|
||||
this.alarmVideourl = alarmVideourl;
|
||||
|
@ -348,15 +240,6 @@ public class DevAiProjectData extends BaseEntity
|
|||
{
|
||||
return alarmVideoName;
|
||||
}
|
||||
public void setCompareResult(String compareResult)
|
||||
{
|
||||
this.compareResult = compareResult;
|
||||
}
|
||||
|
||||
public String getCompareResult()
|
||||
{
|
||||
return compareResult;
|
||||
}
|
||||
public void setIsDel(Long isDel)
|
||||
{
|
||||
this.isDel = isDel;
|
||||
|
@ -382,18 +265,9 @@ public class DevAiProjectData extends BaseEntity
|
|||
.append("channelName", getChannelName())
|
||||
.append("alarmType", getAlarmType())
|
||||
.append("alarmId", getAlarmId())
|
||||
.append("leftTopX", getLeftTopX())
|
||||
.append("leftTopY", getLeftTopY())
|
||||
.append("rightBtmX", getRightBtmX())
|
||||
.append("rightBtmY", getRightBtmY())
|
||||
.append("personNum", getPersonNum())
|
||||
.append("inNum", getInNum())
|
||||
.append("outNum", getOutNum())
|
||||
.append("plateNo", getPlateNo())
|
||||
.append("valueType", getValueType())
|
||||
.append("alarmVideourl", getAlarmVideourl())
|
||||
.append("alarmVideoName", getAlarmVideoName())
|
||||
.append("compareResult", getCompareResult())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("isDel", getIsDel())
|
||||
.toString();
|
||||
|
|
|
@ -19,24 +19,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="channelName" column="channel_name" />
|
||||
<result property="alarmType" column="alarm_type" />
|
||||
<result property="alarmId" column="alarm_id" />
|
||||
<result property="leftTopX" column="left_top_x" />
|
||||
<result property="leftTopY" column="left_top_y" />
|
||||
<result property="rightBtmX" column="right_btm_x" />
|
||||
<result property="rightBtmY" column="right_btm_y" />
|
||||
<result property="personNum" column="person_num" />
|
||||
<result property="inNum" column="in_num" />
|
||||
<result property="outNum" column="out_num" />
|
||||
<result property="plateNo" column="plate_no" />
|
||||
<result property="valueType" column="value_type" />
|
||||
<result property="alarmVideourl" column="alarm_videoURL" />
|
||||
<result property="alarmVideoName" column="alarm_video_name" />
|
||||
<result property="compareResult" column="compare_result" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="isDel" column="is_del" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDevAiProjectDataVo">
|
||||
select dapd.id, dapd.com_id, sd.dept_name as com_name, dapd.project_id, pi.project_name, dapd.device_id, dapd.device_name, dapd.serial_number, dapd.IPC_serial_num, dapd.image_url, dapd.channel_id, dapd.channel_name, dapd.alarm_type, dapd.alarm_id, dapd.left_top_x, dapd.left_top_y, dapd.right_btm_x, dapd.right_btm_y, dapd.person_num, dapd.in_num, dapd.out_num, dapd.plate_no, dapd.value_type, dapd.alarm_videoURL, dapd.alarm_video_name, dapd.compare_result, dapd.create_time, dapd.is_del from dev_ai_project_data dapd
|
||||
select dapd.id, dapd.com_id, sd.dept_name as com_name, dapd.project_id, pi.project_name, dapd.device_id, dapd.device_name, dapd.serial_number, dapd.IPC_serial_num, dapd.image_url, dapd.channel_id, dapd.channel_name, dapd.alarm_type, dapd.alarm_id, dapd.plate_no, dapd.alarm_videoURL, dapd.alarm_video_name, dapd.create_time, dapd.is_del from dev_ai_project_data dapd
|
||||
left join pro_project_info pi on pi.id = dapd.project_id
|
||||
left join sys_dept sd on sd.dept_id = dapd.com_id
|
||||
</sql>
|
||||
|
@ -78,18 +69,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="channelName != null">channel_name,</if>
|
||||
<if test="alarmType != null">alarm_type,</if>
|
||||
<if test="alarmId != null">alarm_id,</if>
|
||||
<if test="leftTopX != null">left_top_x,</if>
|
||||
<if test="leftTopY != null">left_top_y,</if>
|
||||
<if test="rightBtmX != null">right_btm_x,</if>
|
||||
<if test="rightBtmY != null">right_btm_y,</if>
|
||||
<if test="personNum != null">person_num,</if>
|
||||
<if test="inNum != null">in_num,</if>
|
||||
<if test="outNum != null">out_num,</if>
|
||||
<if test="plateNo != null">plate_no,</if>
|
||||
<if test="valueType != null">value_type,</if>
|
||||
<if test="alarmVideourl != null">alarm_videoURL,</if>
|
||||
<if test="alarmVideoName != null">alarm_video_name,</if>
|
||||
<if test="compareResult != null">compare_result,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="isDel != null">is_del,</if>
|
||||
</trim>
|
||||
|
@ -105,18 +87,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="channelName != null">#{channelName},</if>
|
||||
<if test="alarmType != null">#{alarmType},</if>
|
||||
<if test="alarmId != null">#{alarmId},</if>
|
||||
<if test="leftTopX != null">#{leftTopX},</if>
|
||||
<if test="leftTopY != null">#{leftTopY},</if>
|
||||
<if test="rightBtmX != null">#{rightBtmX},</if>
|
||||
<if test="rightBtmY != null">#{rightBtmY},</if>
|
||||
<if test="personNum != null">#{personNum},</if>
|
||||
<if test="inNum != null">#{inNum},</if>
|
||||
<if test="outNum != null">#{outNum},</if>
|
||||
<if test="plateNo != null">#{plateNo},</if>
|
||||
<if test="valueType != null">#{valueType},</if>
|
||||
<if test="alarmVideourl != null">#{alarmVideourl},</if>
|
||||
<if test="alarmVideoName != null">#{alarmVideoName},</if>
|
||||
<if test="compareResult != null">#{compareResult},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="isDel != null">#{isDel},</if>
|
||||
</trim>
|
||||
|
@ -136,18 +109,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="channelName != null">channel_name = #{channelName},</if>
|
||||
<if test="alarmType != null">alarm_type = #{alarmType},</if>
|
||||
<if test="alarmId != null">alarm_id = #{alarmId},</if>
|
||||
<if test="leftTopX != null">left_top_x = #{leftTopX},</if>
|
||||
<if test="leftTopY != null">left_top_y = #{leftTopY},</if>
|
||||
<if test="rightBtmX != null">right_btm_x = #{rightBtmX},</if>
|
||||
<if test="rightBtmY != null">right_btm_y = #{rightBtmY},</if>
|
||||
<if test="personNum != null">person_num = #{personNum},</if>
|
||||
<if test="inNum != null">in_num = #{inNum},</if>
|
||||
<if test="outNum != null">out_num = #{outNum},</if>
|
||||
<if test="plateNo != null">plate_no = #{plateNo},</if>
|
||||
<if test="valueType != null">value_type = #{valueType},</if>
|
||||
<if test="alarmVideourl != null">alarm_videoURL = #{alarmVideourl},</if>
|
||||
<if test="alarmVideoName != null">alarm_video_name = #{alarmVideoName},</if>
|
||||
<if test="compareResult != null">compare_result = #{compareResult},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="isDel != null">is_del = #{isDel},</if>
|
||||
</trim>
|
||||
|
|
|
@ -1,24 +1,21 @@
|
|||
package com.yanzhu.manage.controller.wechat;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yanzhu.common.core.annotation.RateLimiter;
|
||||
import com.yanzhu.common.core.enums.LimitType;
|
||||
import com.yanzhu.common.core.web.controller.BaseController;
|
||||
import com.yanzhu.manage.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.DevBGAiDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiDataVO;
|
||||
import com.yanzhu.manage.service.IDevAiProjectDataService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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 java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 项目信息Controller
|
||||
*
|
||||
|
@ -32,36 +29,43 @@ public class DevAiBoxController extends BaseController {
|
|||
@Autowired
|
||||
private IDevAiProjectDataService devAiProjectDataService;
|
||||
|
||||
private static final boolean opt = false;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger("DevAiBoxController");
|
||||
|
||||
|
||||
/**
|
||||
* aibox推送预警数据【博观】
|
||||
*/
|
||||
@PostMapping("/v1/push")
|
||||
@RateLimiter(count = 10, limitType = LimitType.IP)
|
||||
public void boGuanPush(@RequestBody Map<String,Object> dataMap)
|
||||
@PostMapping("/bg/push")
|
||||
@RateLimiter(count = 30, limitType = LimitType.IP)
|
||||
public void boGuanPush(@Validated @RequestBody DevBGAiDataVO devBGAiDataVO)
|
||||
{
|
||||
// 只需要行为分析告警数据
|
||||
if(devBGAiDataVO.getType()==1){
|
||||
try{
|
||||
List<Map<String,Object>> list = (List<Map<String,Object>>)dataMap.get("BehaviorResults");
|
||||
if(list!=null && list.size()>0){
|
||||
DevAiProjectDataVO devAiProjectDataVO = JSON.parseObject(JSONObject.toJSONString(list.get(0)), DevAiProjectDataVO.class);
|
||||
devAiProjectDataService.insertHttpDevAiProjectData(devAiProjectDataVO);
|
||||
if(opt){
|
||||
logger.info("BGAI...请求...{}",JSON.toJSONString(devBGAiDataVO));
|
||||
}
|
||||
devAiProjectDataService.insertHttpBGDevAiData(devBGAiDataVO);
|
||||
}catch (Exception e){
|
||||
logger.info("BG...AiBox解析参数失败!!!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* aibox推送预警数据【博瓦】
|
||||
*/
|
||||
@PostMapping("/v2/push")
|
||||
public void boWaPush(@RequestBody DevBwAiProjectDataVO data)
|
||||
@PostMapping("/bw/push")
|
||||
public void boWaPush(@RequestBody DevBwAiDataVO devBwAiDataVO)
|
||||
{
|
||||
if(opt){
|
||||
logger.info("BWAI...请求...{}",JSON.toJSONString(devBwAiDataVO));
|
||||
}
|
||||
try{
|
||||
devAiProjectDataService.insertHttpBwDevAiProjectData(data);
|
||||
devAiProjectDataService.insertHttpBwDevAiData(devBwAiDataVO);
|
||||
}catch (Exception e){
|
||||
logger.info("BW...AiBox解析参数失败!!!");
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 博观行为分析(告警恢复)数据
|
||||
*/
|
||||
@Data
|
||||
public class BGBehaviourVO {
|
||||
|
||||
/** 算法类型 */
|
||||
private String algo_model;
|
||||
|
||||
/** 图片 */
|
||||
private String image_base64;
|
||||
|
||||
/** 图片相对路径 */
|
||||
private String image_path;
|
||||
|
||||
/** 抓拍时间 */
|
||||
private Integer capture_time;
|
||||
|
||||
/** 绊线进入人数(瞬时) */
|
||||
private Integer in_num;
|
||||
|
||||
/** 绊线离开人数(瞬时) */
|
||||
private Integer out_num;
|
||||
|
||||
/** 区域统计人数 */
|
||||
private Integer area_num;
|
||||
|
||||
/** 告警视频 uuid */
|
||||
private String video_uuid;
|
||||
|
||||
/** 告警视频相对路径 */
|
||||
private String video_url;
|
||||
|
||||
/** 目标信息 */
|
||||
private List<BGCaptureInfoVO> capture_info;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 博观目标信息数据
|
||||
*/
|
||||
@Data
|
||||
public class BGCaptureInfoVO {
|
||||
|
||||
/** 目标编号 */
|
||||
private Integer target_id;
|
||||
|
||||
/** 目标横坐标信息 "x0,x1" */
|
||||
private String point_x;
|
||||
|
||||
/** 目标横坐标信息 "y0,y1" */
|
||||
private String point_y;
|
||||
|
||||
/** 区域入侵目标类型(1 人 2 机动车 3 非机动车) */
|
||||
private Integer object_type;
|
||||
|
||||
/** 车速 */
|
||||
private Integer speed;
|
||||
|
||||
/** 车牌号 */
|
||||
private String plate_no;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 博观点位信息
|
||||
*/
|
||||
@Data
|
||||
public class BGChannelInfoVO {
|
||||
|
||||
/**
|
||||
* 上报模式:
|
||||
* 0:点位信息
|
||||
* 1:添加点位
|
||||
* 2:修改点位
|
||||
* 3:删除点位
|
||||
* 4:点位状态变化
|
||||
*/
|
||||
private Integer mode;
|
||||
|
||||
/** 相机序列号 */
|
||||
private String ipc_sn;
|
||||
|
||||
/** 相机 ip 地址 */
|
||||
private String ipc_addr;
|
||||
|
||||
/** 点位编号 */
|
||||
private Long channel_id;
|
||||
|
||||
/** 点位名称 */
|
||||
private String channel_name;
|
||||
|
||||
/** 点位状态(1:在线 2:离线) */
|
||||
private Integer status;
|
||||
|
||||
/** 自定义编码 */
|
||||
private String custom_code;
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 博观设备信息
|
||||
*/
|
||||
@Data
|
||||
public class BGDeviceInfoVO {
|
||||
|
||||
/** 设备编码(1-255) */
|
||||
private Long device_code;
|
||||
|
||||
/** 设备名称 */
|
||||
private String device_name;
|
||||
|
||||
/** 设备序列号 */
|
||||
private String device_sn;
|
||||
|
||||
/** 自定义编码 */
|
||||
private String custom_code;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.yanzhu.manage.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 博观盒子数据集
|
||||
*/
|
||||
@Data
|
||||
public class DevBGAiDataVO {
|
||||
|
||||
/**
|
||||
* 上报内容
|
||||
* 1:行为分析告警数据
|
||||
* 2:告警恢复数据
|
||||
* 3:人脸抓拍数据
|
||||
* 4:人脸比对数据
|
||||
* 5:行为比对数据
|
||||
* 6:保活数据
|
||||
* 7:点位变更数据
|
||||
* ...
|
||||
*/
|
||||
@NotNull(message = "上报内容不能为空")
|
||||
private Integer type;
|
||||
|
||||
/** 告警编号 */
|
||||
@NotBlank(message = "告警编号不能为空")
|
||||
private String event_id;
|
||||
|
||||
/** 有无比对结果(1 有 0 无) */
|
||||
@NotBlank(message = "有无比对结果不能为空")
|
||||
private String has_result;
|
||||
|
||||
/** 设备信息 */
|
||||
@NotNull(message = "设备信息不能为空")
|
||||
private BGDeviceInfoVO device_info;
|
||||
|
||||
/** 点位信息 */
|
||||
private BGChannelInfoVO channel_info;
|
||||
|
||||
/** 行为分析(告警恢复)数据 */
|
||||
@NotNull(message = "分析数据不能为空")
|
||||
private BGBehaviourVO behaviour;
|
||||
}
|
|
@ -8,7 +8,7 @@ import java.util.Map;
|
|||
* 博瓦盒子数据集
|
||||
*/
|
||||
@Data
|
||||
public class DevBwAiProjectDataVO {
|
||||
public class DevBwAiDataVO {
|
||||
|
||||
private String device_sn;
|
||||
private String device_version;
|
|
@ -3,7 +3,8 @@ package com.yanzhu.manage.service;
|
|||
import java.util.List;
|
||||
import com.yanzhu.manage.domain.DevAiProjectData;
|
||||
import com.yanzhu.manage.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.DevBGAiDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiDataVO;
|
||||
|
||||
/**
|
||||
* AI设备数据Service接口
|
||||
|
@ -40,18 +41,18 @@ public interface IDevAiProjectDataService
|
|||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devAiProjectDataVO 设备数据
|
||||
* @param devBGAiDataVO 博观设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO);
|
||||
public void insertHttpBGDevAiData(DevBGAiDataVO devBGAiDataVO);
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devBwAiProjectDataVo 设备数据
|
||||
* @param devBwAiDataVO 博瓦设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
public void insertHttpBwDevAiProjectData(DevBwAiProjectDataVO devBwAiProjectDataVo);
|
||||
public void insertHttpBwDevAiData(DevBwAiDataVO devBwAiDataVO);
|
||||
|
||||
/**
|
||||
* 修改AI设备数据
|
||||
|
|
|
@ -8,10 +8,7 @@ import com.yanzhu.common.core.utils.DateUtils;
|
|||
import com.yanzhu.common.core.utils.file.MultipartFileUtils;
|
||||
import com.yanzhu.common.redis.service.RedisService;
|
||||
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||
import com.yanzhu.manage.domain.DevAiProjectConfig;
|
||||
import com.yanzhu.manage.domain.DevAiProjectData;
|
||||
import com.yanzhu.manage.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiProjectDataVO;
|
||||
import com.yanzhu.manage.domain.*;
|
||||
import com.yanzhu.manage.mapper.DevAiProjectDataMapper;
|
||||
import com.yanzhu.manage.service.IDevAiProjectDataService;
|
||||
import com.yanzhu.system.api.RemoteFileService;
|
||||
|
@ -22,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
@ -90,60 +86,49 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param data 设备数据
|
||||
* @param data 博观设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO data)
|
||||
public void insertHttpBGDevAiData(DevBGAiDataVO data)
|
||||
{
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig config = redisService.getCacheObject(CacheConstants.DEV_AI_CONFIG+data.getSerialNumber());
|
||||
BGDeviceInfoVO bGDeviceInfoVO = data.getDevice_info();
|
||||
DevAiProjectConfig config = redisService.getCacheObject(CacheConstants.DEV_AI_CONFIG+bGDeviceInfoVO.getDevice_sn());
|
||||
if(Objects.isNull(config)){
|
||||
throw new ServiceException("设备信息未注册...");
|
||||
}
|
||||
logger.info("AiBox消息解析成功!!开始转换实体!!!");
|
||||
DevAiProjectData devAiProjectData = new DevAiProjectData();
|
||||
devAiProjectData.setDeviceId(data.getDeviceId());
|
||||
devAiProjectData.setDeviceId(bGDeviceInfoVO.getDevice_code());
|
||||
/** 设备名称 */
|
||||
devAiProjectData.setDeviceName(data.getDeviceName());
|
||||
devAiProjectData.setDeviceName(bGDeviceInfoVO.getDevice_name());
|
||||
/** 设备的序列号 */
|
||||
devAiProjectData.setSerialNumber(data.getSerialNumber());
|
||||
devAiProjectData.setSerialNumber(bGDeviceInfoVO.getDevice_sn());
|
||||
/** 相机的序列号 */
|
||||
devAiProjectData.setIpcSerialNum(data.getIPCSerialNum());
|
||||
/** 通道号,用来唯一标识任务 ID */
|
||||
devAiProjectData.setChannelId(data.getChannelId());
|
||||
|
||||
BGChannelInfoVO bgChannelInfoVO = data.getChannel_info();
|
||||
/** 相机序列号 */
|
||||
devAiProjectData.setIpcSerialNum(bgChannelInfoVO.getIpc_sn());
|
||||
/** 通道号 */
|
||||
devAiProjectData.setChannelId(bgChannelInfoVO.getChannel_id());
|
||||
/** 通道名称 */
|
||||
devAiProjectData.setChannelName(data.getChannelName());
|
||||
devAiProjectData.setChannelName(bgChannelInfoVO.getChannel_name());
|
||||
|
||||
BGBehaviourVO bgBehaviourVO = data.getBehaviour();
|
||||
/** 报警类型 */
|
||||
devAiProjectData.setAlarmType(data.getAlarmType());
|
||||
devAiProjectData.setAlarmType(bgBehaviourVO.getAlgo_model());
|
||||
/** 告警 ID */
|
||||
devAiProjectData.setAlarmId(data.getAlarmId());
|
||||
/** 左上角 X 坐标 */
|
||||
devAiProjectData.setLeftTopX(data.getLeftTopX());
|
||||
/** 左上角 Y 坐标 */
|
||||
devAiProjectData.setLeftTopY(data.getLeftTopY());
|
||||
/** 右下角 X 坐标 */
|
||||
devAiProjectData.setRightBtmX(data.getRightBtmX());
|
||||
/** 右下角 Y 坐标 */
|
||||
devAiProjectData.setRightBtmY(data.getRightBtmY());
|
||||
/** 当前告警区域人数 */
|
||||
devAiProjectData.setPersonNum(data.getPersonNum());
|
||||
/** 绊线进入人数数量 */
|
||||
devAiProjectData.setInNum(data.getInNum());
|
||||
/** 绊线离开人数数量 */
|
||||
devAiProjectData.setOutNum(data.getOutNum());
|
||||
devAiProjectData.setAlarmId(data.getEvent_id());
|
||||
/** 车牌号 */
|
||||
devAiProjectData.setPlateNo(data.getPlateNo());
|
||||
/** ValueType 为 1 时,代表明火检测;ValueType 为 2 时,代表烟雾检测; */
|
||||
devAiProjectData.setValueType(data.getValueType());
|
||||
devAiProjectData.setPlateNo(bgBehaviourVO.getCapture_info().get(0).getPlate_no());
|
||||
/** 告警短视频的地址 */
|
||||
devAiProjectData.setAlarmVideourl(data.getAlarmVideourl());
|
||||
devAiProjectData.setAlarmVideourl(bgBehaviourVO.getVideo_url());
|
||||
/** 告警短视频的名称 */
|
||||
devAiProjectData.setAlarmVideoName(data.getAlarmVideoName());
|
||||
/** 人脸比对结果 */
|
||||
devAiProjectData.setCompareResult(data.getCompareResult());
|
||||
devAiProjectData.setAlarmVideoName(bgBehaviourVO.getVideo_uuid());
|
||||
logger.info("实体转换成功!!Base64开始转换图片!!!");
|
||||
String objImg64 = data.getBigImage().get("Image").toString();
|
||||
String objImg64 = bgBehaviourVO.getImage_base64();
|
||||
if(objImg64!=null){
|
||||
try {
|
||||
MultipartFile file = MultipartFileUtils.base64ToMultipartFile("data:image/png;base64,"+objImg64);
|
||||
SysFile sysFile = remoteFileService.upload(file).getData();
|
||||
|
@ -159,15 +144,16 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
logger.info("新增AI设备数据成功");
|
||||
devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param data 设备数据
|
||||
* @param data 博瓦设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public void insertHttpBwDevAiProjectData(DevBwAiProjectDataVO data){
|
||||
public void insertHttpBwDevAiData(DevBwAiDataVO data){
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig config = redisService.getCacheObject(CacheConstants.DEV_AI_CONFIG+data.getDevice_sn());
|
||||
if(Objects.isNull(config)){
|
||||
|
@ -188,7 +174,7 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
/** 报警类型 */
|
||||
String type = this.switchAlarmType(data.getLabel());
|
||||
if(!type.equals("-1")){
|
||||
devAiProjectData.setAlarmType(Convert.toLong(type));
|
||||
devAiProjectData.setAlarmType(type);
|
||||
logger.info("实体转换成功!!Base64开始转换图片!!!");
|
||||
String objImg64 = data.getImg();
|
||||
try {
|
||||
|
@ -215,9 +201,9 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
private String switchAlarmType(String aliasLabel){
|
||||
String alarmType;
|
||||
switch (aliasLabel){
|
||||
case "nohelmet" : alarmType="4";break;
|
||||
case "head" : alarmType="4";break;
|
||||
case "helmet" : alarmType="4";break;
|
||||
case "nohelmet" : alarmType = "SafetyHelmetAlarm"; break;
|
||||
case "head" : alarmType = "SafetyHelmetAlarm"; break;
|
||||
case "helmet" : alarmType = "SafetyHelmetAlarm"; break;
|
||||
case "fire" : alarmType = "8"; break;
|
||||
case "vest" : alarmType = "65"; break;
|
||||
case "smoke" : alarmType = "7"; break;
|
||||
|
@ -239,7 +225,7 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
case "bus" : alarmType = "bus"; break;
|
||||
case "truck" : alarmType = "truck"; break;
|
||||
case "van" : alarmType = "van"; break;
|
||||
default : alarmType="0";
|
||||
default : alarmType = "-";
|
||||
}
|
||||
return alarmType;
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<el-table-column label="设备名称" align="center" prop="deviceName" />
|
||||
<el-table-column label="设备序列号" align="center" prop="serialNumber" />
|
||||
<el-table-column label="厂商名称" align="center" prop="manufacturer" />
|
||||
<el-table-column label="预警类型" align="center" prop="passageType" width="280">
|
||||
<el-table-column v-if="false" label="预警类型" align="center" prop="passageType" width="280">
|
||||
<template #default="scope">
|
||||
<div class="flex gap-2">
|
||||
<dict-tag :options="aibox_alarm_type" :value="scope.row.passageType" :showValue="false"/>
|
||||
|
@ -127,7 +127,7 @@
|
|||
<el-form-item label="厂商名称" prop="manufacturer">
|
||||
<el-input v-model="form.manufacturer" placeholder="请输入厂商名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="预警类型" prop="passageType">
|
||||
<el-form-item v-if="false" label="预警类型" prop="passageType">
|
||||
<el-select v-model="form.passageType" multiple placeholder="请选择预警类型" style="width:100%">
|
||||
<el-option
|
||||
v-for="dict in aibox_alarm_type"
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
<dict-tag :options="sys_is_del" :value="scope.row.isDel" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="上报时间" align="center" prop="createTime" width="180">
|
||||
<el-table-column label="上报时间" align="center" prop="createTime" width="160">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
|
||||
</template>
|
||||
|
|
Loading…
Reference in New Issue