提交代码
parent
5657b2d806
commit
72a47123b7
|
@ -1,9 +1,11 @@
|
|||
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.DevBGAiDataVO;
|
||||
import com.yanzhu.manage.domain.DevBwAiDataVO;
|
||||
import com.yanzhu.manage.service.IDevAiProjectDataService;
|
||||
|
@ -16,6 +18,9 @@ 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
|
||||
*
|
||||
|
@ -55,6 +60,28 @@ public class DevAiBoxController extends BaseController {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* aibox推送预警数据【博观】
|
||||
*/
|
||||
@PostMapping("/bg_hwj_b300/push")
|
||||
@RateLimiter(count = 30, limitType = LimitType.IP)
|
||||
public void boGuanB300Push(@RequestBody Map<String,Object> dataMap)
|
||||
{
|
||||
try{
|
||||
if(opt){
|
||||
logger.info("BGAI...b300请求...{}",JSON.toJSONString(dataMap));
|
||||
}
|
||||
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);
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.info("AiBox解析参数失败!!!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* aibox推送预警数据【博瓦】
|
||||
*/
|
||||
|
|
|
@ -48,6 +48,14 @@ public interface IDevAiProjectDataService
|
|||
*/
|
||||
public void insertHttpBGDevAiData(DevBGAiDataVO devBGAiDataVO);
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devAiProjectDataVO 设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO);
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
|
|
|
@ -19,6 +19,7 @@ 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;
|
||||
|
@ -148,6 +149,64 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devAiProjectDataVO 设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO){
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig config = redisService.getCacheObject(CacheConstants.DEV_AI_CONFIG+devAiProjectDataVO.getSerialNumber());
|
||||
if(Objects.isNull(config)){
|
||||
throw new ServiceException("设备信息未注册...");
|
||||
}
|
||||
logger.info("AiBox消息解析成功!!开始转换实体!!!");
|
||||
DevAiProjectData devAiProjectData = new DevAiProjectData();
|
||||
devAiProjectData.setDeviceId(devAiProjectDataVO.getDeviceId());
|
||||
/** 设备名称 */
|
||||
devAiProjectData.setDeviceName(devAiProjectDataVO.getDeviceName());
|
||||
/** 设备的序列号 */
|
||||
devAiProjectData.setSerialNumber(devAiProjectDataVO.getSerialNumber());
|
||||
/** 相机的序列号 */
|
||||
devAiProjectData.setIpcSerialNum(devAiProjectDataVO.getIPCSerialNum());
|
||||
/** 通道号,用来唯一标识任务 ID */
|
||||
devAiProjectData.setChannelId(devAiProjectDataVO.getChannelId());
|
||||
/** 通道名称 */
|
||||
devAiProjectData.setChannelName(devAiProjectDataVO.getChannelName());
|
||||
/** 报警类型 */
|
||||
String type = this.switchBgB300AlarmType(Convert.toStr(devAiProjectDataVO.getAlarmType()));
|
||||
if(!type.equals("-1")){
|
||||
/** 报警类型 */
|
||||
devAiProjectData.setAlarmType(type);
|
||||
/** 告警 ID */
|
||||
devAiProjectData.setAlarmId(Convert.toStr(devAiProjectDataVO.getAlarmId()));
|
||||
/** 车牌号 */
|
||||
devAiProjectData.setPlateNo(Convert.toStr(devAiProjectDataVO.getPlateNo()));
|
||||
/** 告警短视频的地址 */
|
||||
devAiProjectData.setAlarmVideourl(devAiProjectDataVO.getAlarmVideourl());
|
||||
/** 告警短视频的名称 */
|
||||
devAiProjectData.setAlarmVideoName(devAiProjectDataVO.getAlarmVideoName());
|
||||
logger.info("实体转换成功!!Base64开始转换图片!!!");
|
||||
String objImg64 = devAiProjectDataVO.getBigImage().get("Image").toString();
|
||||
try {
|
||||
MultipartFile file = MultipartFileUtils.base64ToMultipartFile("data:image/png;base64,"+objImg64);
|
||||
SysFile sysFile = remoteFileService.upload(file).getData();
|
||||
devAiProjectData.setImageUrl(sysFile.getUrl());
|
||||
logger.info("Base64上传图片成功!!!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
devAiProjectData.setComId(config.getComId());
|
||||
devAiProjectData.setProjectId(config.getProjectId());
|
||||
devAiProjectData.setIsDel(IsDelEnums.NO.getCode());
|
||||
devAiProjectData.setCreateTime(DateUtils.getNowDate());
|
||||
logger.info("新增AI设备数据成功");
|
||||
devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
|
@ -174,7 +233,7 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
devAiProjectData.setChannelName(Convert.toStr(extendMap.get("source_name")));
|
||||
}
|
||||
/** 报警类型 */
|
||||
String type = this.switchAlarmType(data.getLabel());
|
||||
String type = this.switchBwAlarmType(data.getLabel());
|
||||
if(!type.equals("-1")){
|
||||
devAiProjectData.setAlarmType(type);
|
||||
logger.info("实体转换成功!!Base64开始转换图片!!!");
|
||||
|
@ -200,7 +259,33 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
* 转换博瓦预警类型
|
||||
* @return
|
||||
*/
|
||||
private String switchAlarmType(String aliasLabel){
|
||||
private String switchBgB300AlarmType(String b300AlarmType){
|
||||
String alarmType;
|
||||
switch (b300AlarmType){
|
||||
case "4": alarmType="SafetyHelmetAlarm"; break;
|
||||
case "5": alarmType="WorkClothesAlarm"; break;
|
||||
case "6": alarmType="TelephoningAlarm"; break;
|
||||
case "7": alarmType="SmokingAlarm"; break;
|
||||
case "8": alarmType="FireDetection"; break;
|
||||
case "19": alarmType="ObjectRemoved"; break;
|
||||
case "20": alarmType="LineDetectorCrossed"; break;
|
||||
case "22": alarmType="AbnormalParkingDetection"; break;
|
||||
case "18": alarmType="DisorderStackingDetection"; break;
|
||||
case "62": alarmType="FallOverAlarm"; break;
|
||||
case "65":
|
||||
case "125": alarmType="ReflectiveClothesDetectionAlarm"; break;
|
||||
case "63": alarmType="CrowdDensityCriticalAlarm"; break;
|
||||
case "144": alarmType="PlayMobilePhoneDetection"; break;
|
||||
default : alarmType = "-1";
|
||||
}
|
||||
return alarmType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换博瓦预警类型
|
||||
* @return
|
||||
*/
|
||||
private String switchBwAlarmType(String aliasLabel){
|
||||
String alarmType;
|
||||
switch (aliasLabel){
|
||||
case "nohelmet" : alarmType = "SafetyHelmetAlarm"; break;
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import {
|
||||
getToken
|
||||
} from '../../../utils/auth'
|
||||
import {
|
||||
getYsToken
|
||||
} from '../../../api/project'
|
||||
const app = getApp()
|
||||
Page({
|
||||
|
||||
|
@ -22,11 +25,11 @@ Page({
|
|||
url: '/pages/login/login',
|
||||
})
|
||||
}
|
||||
this.findYsToken(options.id);
|
||||
let _dat = options.url.replace("ezopen://open.ys7.com/","").split("/");
|
||||
let _cha = _dat[1].split(".")[0];
|
||||
let _url = "rtmp://open.ys7.com/"+_dat[0]+"/"+_cha+"/live";
|
||||
this.setData({
|
||||
ysToken: options.token,
|
||||
palyUrl: _url,
|
||||
channelNo: _cha
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue