Compare commits
4 Commits
907e27c6a1
...
e55d2cd939
Author | SHA1 | Date |
---|---|---|
|
e55d2cd939 | |
|
9d3cbc5237 | |
|
6d14455417 | |
|
7c4c765124 |
|
@ -1,5 +1,7 @@
|
|||
package com.ruoyi.api.labour.controller;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.ruoyi.api.base.PubTokenReqVo;
|
||||
import com.ruoyi.api.labour.domain.AiBoxApiReqVo;
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
|
@ -16,6 +18,7 @@ import com.ruoyi.common.enums.*;
|
|||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.sign.Md5Utils;
|
||||
import com.ruoyi.framework.web.service.SysLoginService;
|
||||
import com.ruoyi.system.domain.SysApplyConfig;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
|
@ -170,4 +173,27 @@ public class AiBoxApiController extends BaseController {
|
|||
}
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
private static final String baseUrl = "http://localhost:8090/jhapi";
|
||||
|
||||
public static void main(String[] args) {
|
||||
String appId = "jhcf17140956314490N6VSHsPjx008";
|
||||
String AppSecret = "xx+UsVJ9cIJ8PTWpWU5GcNx+x+chJBQIDAQAB";
|
||||
Long time = System.currentTimeMillis();
|
||||
String sign = Md5Utils.hash(appId+AppSecret+time);
|
||||
System.out.println(time);
|
||||
System.out.println(sign);
|
||||
String url = baseUrl + "/api/aiboxs/v1/getToken";
|
||||
Map<String, Object> body = new HashMap<>();
|
||||
body.put("appId",appId);
|
||||
body.put("sign",sign);
|
||||
body.put("timestamp",time);
|
||||
String result = HttpUtil.post(url, body);
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
if(jsonObject.getInteger("code")==200){
|
||||
// 获取到存入redis,设置30分钟有效期
|
||||
String token = jsonObject.getString("Authorization");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,11 @@ public class CacheConstants
|
|||
*/
|
||||
public static final String YANZHU_DEVICE_TOWER = "device.tower_cfg:";
|
||||
|
||||
/**
|
||||
* yanzhu设备塔吊检测 redis key
|
||||
*/
|
||||
public static final String YANZHU_DEVICE_AI = "device.aibox_cfg:";
|
||||
|
||||
/**
|
||||
* 微信公众号模板消息 redis key
|
||||
*/
|
||||
|
|
|
@ -61,6 +61,15 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['project:checkDetection:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
@ -725,7 +734,7 @@ export default {
|
|||
{
|
||||
...this.queryParams,
|
||||
},
|
||||
`checkDetection_${new Date().getTime()}.xlsx`
|
||||
`材料取样复试_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
/** 选择见证人*/
|
||||
|
|
|
@ -58,6 +58,15 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['project:materialSeal:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
@ -586,7 +595,7 @@ export default {
|
|||
{
|
||||
...this.queryParams,
|
||||
},
|
||||
`materialSeal_${new Date().getTime()}.xlsx`
|
||||
`材料封样_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
/** 选择见证人*/
|
||||
|
|
|
@ -64,6 +64,15 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['project:projectChecking:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
@ -618,7 +627,7 @@ export default {
|
|||
{
|
||||
...this.queryParams,
|
||||
},
|
||||
`projectChecking_${new Date().getTime()}.xlsx`
|
||||
`举牌验收_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
/** 选择质量专员*/
|
||||
|
|
|
@ -63,6 +63,15 @@
|
|||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['project:projectMeasure:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
@ -605,7 +614,7 @@ export default {
|
|||
{
|
||||
...this.queryParams,
|
||||
},
|
||||
`projectMeasure_${new Date().getTime()}.xlsx`
|
||||
`实测实量_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
/** 选择质量专员*/
|
||||
|
|
|
@ -21,15 +21,19 @@ public class SurProjectCheckDetection extends BaseEntity
|
|||
private Long id;
|
||||
|
||||
/** 项目主键 */
|
||||
@Excel(name = "项目主键")
|
||||
private Long projectId;
|
||||
|
||||
/** 单位主键 */
|
||||
@Excel(name = "单位主键")
|
||||
private Long deptId;
|
||||
|
||||
@Excel(name = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
@Excel(name = "单位名称")
|
||||
private String deptName;
|
||||
|
||||
/** 送检类型 */
|
||||
@Excel(name = "送检类型")
|
||||
@Excel(name = "送检类型",dictType = "check_detection_check_type")
|
||||
private String checkType;
|
||||
|
||||
/** 材料名称 */
|
||||
|
@ -45,19 +49,16 @@ public class SurProjectCheckDetection extends BaseEntity
|
|||
private String sampleNum;
|
||||
|
||||
/** 提供合格证 */
|
||||
@Excel(name = "提供合格证")
|
||||
@Excel(name = "是否提供合格证",dictType = "sys_yes_no")
|
||||
private String qualifiedFlag;
|
||||
|
||||
/** 代表数量 */
|
||||
@Excel(name = "代表数量")
|
||||
private String represenNum;
|
||||
|
||||
/** 取样人 */
|
||||
@Excel(name = "取样人")
|
||||
private String sampleUser;
|
||||
|
||||
/** 取样人名称 */
|
||||
@Excel(name = "取样人名称")
|
||||
private String sampleUserName;
|
||||
|
||||
/** 见证人 */
|
||||
|
@ -78,19 +79,15 @@ public class SurProjectCheckDetection extends BaseEntity
|
|||
private Date checkTime;
|
||||
|
||||
/** 送检状态 */
|
||||
@Excel(name = "送检状态")
|
||||
private String checkState;
|
||||
|
||||
/** 检测结果 */
|
||||
@Excel(name = "检测结果")
|
||||
private String detectionResult;
|
||||
|
||||
/** 检测报告 */
|
||||
@Excel(name = "检测报告")
|
||||
private String detectionFile;
|
||||
|
||||
/** 数据状态 */
|
||||
@Excel(name = "数据状态")
|
||||
private String isDel;
|
||||
|
||||
private String attachment;
|
||||
|
@ -121,13 +118,12 @@ public class SurProjectCheckDetection extends BaseEntity
|
|||
}
|
||||
|
||||
private String specimenPhoto;
|
||||
|
||||
/** 审核状态 */
|
||||
@Excel(name = "审核状态")
|
||||
@Excel(name = "审核状态",dictType = "project_check_status")
|
||||
private String approveStatus;
|
||||
|
||||
private String checkTypeName;
|
||||
private String projectName;
|
||||
private String deptName;
|
||||
|
||||
private String createByName;
|
||||
private String updateByName;
|
||||
|
|
|
@ -63,7 +63,6 @@ public class SurProjectChecking extends BaseEntity
|
|||
private Long checkingNum;
|
||||
|
||||
/** 验收结果 */
|
||||
@Excel(name = "验收结果")
|
||||
private String checkResult;
|
||||
|
||||
/** 验收描述 */
|
||||
|
@ -87,11 +86,9 @@ public class SurProjectChecking extends BaseEntity
|
|||
private String superviseUserName;
|
||||
|
||||
/** 分包单位用户 */
|
||||
@Excel(name = "分包单位用户")
|
||||
private String groupDeptUser;
|
||||
|
||||
/** 分包单位用户名称 */
|
||||
@Excel(name = "分包单位用户名称")
|
||||
private String groupDeptUserName;
|
||||
|
||||
/** 验收时间 */
|
||||
|
@ -100,19 +97,16 @@ public class SurProjectChecking extends BaseEntity
|
|||
private Date checkingDate;
|
||||
|
||||
/** 验收附件 */
|
||||
@Excel(name = "验收附件")
|
||||
private String checkingFiles;
|
||||
|
||||
/** 数据状态 */
|
||||
@Excel(name = "数据状态")
|
||||
private Long isDel;
|
||||
|
||||
/** 审核状态 */
|
||||
@Excel(name = "审核状态")
|
||||
@Excel(name = "审核状态",dictType = "project_check_status")
|
||||
private String approveStatus;
|
||||
|
||||
|
||||
@Excel(name = "验收类型")
|
||||
private String dataTypeLvl1;
|
||||
|
||||
public String getDataTypeLvl1() {
|
||||
|
@ -131,7 +125,6 @@ public class SurProjectChecking extends BaseEntity
|
|||
this.dataTypeLvl2 = dataTypeLvl2;
|
||||
}
|
||||
|
||||
@Excel(name = "子验收类型")
|
||||
private String dataTypeLvl2;
|
||||
|
||||
public void setId(Long id)
|
||||
|
|
|
@ -33,11 +33,9 @@ public class SurProjectMaterialSeal extends BaseEntity
|
|||
private String deptName;
|
||||
|
||||
/** 封样主图 */
|
||||
@Excel(name = "封样主图")
|
||||
private String mainImage;
|
||||
|
||||
/** 图片集合 */
|
||||
@Excel(name = "图片集合")
|
||||
private String imageUrls;
|
||||
|
||||
/** 封样名称 */
|
||||
|
@ -62,25 +60,11 @@ public class SurProjectMaterialSeal extends BaseEntity
|
|||
private Date sealDate;
|
||||
|
||||
/** 会签单 */
|
||||
@Excel(name = "会签单")
|
||||
private String signFiles;
|
||||
|
||||
/** 变更单 */
|
||||
@Excel(name = "变更单")
|
||||
private String alterationFiles;
|
||||
|
||||
/** 数据状态 */
|
||||
@Excel(name = "数据状态")
|
||||
private String isDel;
|
||||
|
||||
/** 审核状态 */
|
||||
@Excel(name = "审核状态")
|
||||
private String approveStatus;
|
||||
|
||||
/** 封样状态 */
|
||||
@Excel(name = "封样状态")
|
||||
private String materialResult;
|
||||
|
||||
/** 监理人 */
|
||||
@Excel(name = "监理人")
|
||||
private String witnessUser;
|
||||
|
@ -89,6 +73,16 @@ public class SurProjectMaterialSeal extends BaseEntity
|
|||
@Excel(name = "监理人名称")
|
||||
private String witnessUserName;
|
||||
|
||||
/** 数据状态 */
|
||||
private String isDel;
|
||||
|
||||
/** 审核状态 */
|
||||
@Excel(name = "审核状态",dictType = "project_check_status")
|
||||
private String approveStatus;
|
||||
|
||||
/** 封样状态 */
|
||||
private String materialResult;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
|
|
|
@ -33,15 +33,13 @@ public class SurProjectMeasure extends BaseEntity
|
|||
private String deptName;
|
||||
|
||||
/** 测量主图 */
|
||||
@Excel(name = "测量主图")
|
||||
private String mainImage;
|
||||
|
||||
/** 图片集合 */
|
||||
@Excel(name = "图片集合")
|
||||
private String imageUrls;
|
||||
|
||||
/** 测量类型 */
|
||||
@Excel(name = "测量类型")
|
||||
@Excel(name = "测量类型",dictType = "project_measure_type")
|
||||
private String measureType;
|
||||
|
||||
/** 测量部位 */
|
||||
|
@ -49,7 +47,7 @@ public class SurProjectMeasure extends BaseEntity
|
|||
private String measurePosition;
|
||||
|
||||
/** 测量内容 */
|
||||
@Excel(name = "测量内容")
|
||||
@Excel(name = "测量内容",dictType = "project_measure_info_type")
|
||||
private String measureInfo;
|
||||
|
||||
/** 测量时间 */
|
||||
|
@ -62,11 +60,9 @@ public class SurProjectMeasure extends BaseEntity
|
|||
private String measurePointPosition;
|
||||
|
||||
/** 测量结果 */
|
||||
@Excel(name = "测量结果")
|
||||
private String measureResult;
|
||||
|
||||
/** 测量文件 */
|
||||
@Excel(name = "测量文件")
|
||||
private String measureFiles;
|
||||
|
||||
/** 质量专员 */
|
||||
|
@ -86,11 +82,10 @@ public class SurProjectMeasure extends BaseEntity
|
|||
private String superviseUserName;
|
||||
|
||||
/** 数据状态 */
|
||||
@Excel(name = "数据状态")
|
||||
private String isDel;
|
||||
|
||||
/** 审核状态 */
|
||||
@Excel(name = "审核状态")
|
||||
@Excel(name = "审核状态",dictType = "project_check_status")
|
||||
private String approveStatus;
|
||||
|
||||
private String measureTypeName;
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.ruoyi.common.annotation.RateLimiter;
|
|||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.enums.LimitType;
|
||||
import com.yanzhu.jh.video.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.jh.video.domain.DevBwAiProjectDataVo;
|
||||
import com.yanzhu.jh.video.service.IDevAiProjectDataService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -34,11 +35,11 @@ public class AIBoxController extends BaseController {
|
|||
private static final Logger logger = LoggerFactory.getLogger("AIBoxController");
|
||||
|
||||
/**
|
||||
* aibox推送预警数据
|
||||
* aibox推送预警数据【博观】
|
||||
*/
|
||||
@PostMapping("/v1/push")
|
||||
@RateLimiter(count = 10, limitType = LimitType.IP)
|
||||
public void push(@RequestBody Map<String,Object> dataMap)
|
||||
public void boGuanPush(@RequestBody Map<String,Object> dataMap)
|
||||
{
|
||||
try{
|
||||
List<Map<String,Object>> list = (List<Map<String,Object>>)dataMap.get("BehaviorResults");
|
||||
|
@ -46,10 +47,24 @@ public class AIBoxController extends BaseController {
|
|||
devAiProjectDataService.insertHttpDevAiProjectData(devAiProjectDataVO);
|
||||
}catch (Exception e){
|
||||
logger.info("AiBox解析参数失败!!!");
|
||||
logger.info(dataMap.toString());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* aibox推送预警数据【博瓦】
|
||||
*/
|
||||
@PostMapping("/v2/push")
|
||||
public void boWaPush(@RequestBody DevBwAiProjectDataVo data)
|
||||
{
|
||||
try{
|
||||
logger.info("BOWAN...{}");
|
||||
devAiProjectDataService.insertHttpBwDevAiProjectData(data);
|
||||
}catch (Exception e){
|
||||
logger.info("BW...AiBox解析参数失败!!!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.yanzhu.jh.video.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 博瓦盒子数据集
|
||||
*/
|
||||
@Data
|
||||
public class DevBwAiProjectDataVo {
|
||||
|
||||
private String device_sn;
|
||||
private String device_version;
|
||||
private String date;
|
||||
private Long timestamp;
|
||||
private String label;
|
||||
private String alias;
|
||||
private String count;
|
||||
private String img;
|
||||
private Map<String, Object> extend;
|
||||
|
||||
}
|
|
@ -11,6 +11,12 @@ import com.yanzhu.jh.video.domain.DevAiProjectConfig;
|
|||
*/
|
||||
public interface IDevAiProjectConfigService
|
||||
{
|
||||
|
||||
/**
|
||||
* 加载注册设备
|
||||
*/
|
||||
public void loadingDevAiConfigCache();
|
||||
|
||||
/**
|
||||
* 查询设备配置
|
||||
*
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.Map;
|
|||
|
||||
import com.yanzhu.jh.video.domain.DevAiProjectData;
|
||||
import com.yanzhu.jh.video.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.jh.video.domain.DevBwAiProjectDataVo;
|
||||
|
||||
/**
|
||||
* 设备数据Service接口
|
||||
|
@ -46,6 +47,14 @@ public interface IDevAiProjectDataService
|
|||
*/
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO);
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devBwAiProjectDataVo 设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
public void insertHttpBwDevAiProjectData(DevBwAiProjectDataVo devBwAiProjectDataVo);
|
||||
|
||||
/**
|
||||
* 修改设备数据
|
||||
*
|
||||
|
|
|
@ -3,8 +3,11 @@ package com.yanzhu.jh.video.service.impl;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.constant.CacheConstants;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.enums.PublicStateEnum;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.ArrayList;
|
||||
|
@ -15,6 +18,9 @@ import com.yanzhu.jh.video.mapper.DevAiProjectConfigMapper;
|
|||
import com.yanzhu.jh.video.domain.DevAiProjectConfig;
|
||||
import com.yanzhu.jh.video.service.IDevAiProjectConfigService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
/**
|
||||
* 设备配置Service业务层处理
|
||||
*
|
||||
|
@ -24,9 +30,35 @@ import com.ruoyi.common.utils.SecurityUtils;
|
|||
@Service
|
||||
public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
|
||||
{
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Autowired
|
||||
private DevAiProjectConfigMapper devAiProjectConfigMapper;
|
||||
|
||||
/**
|
||||
* 项目启动时,初始化注册应用到缓存
|
||||
*/
|
||||
@PostConstruct
|
||||
public void init()
|
||||
{
|
||||
loadingDevAiConfigCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载注册设备
|
||||
*/
|
||||
@Override
|
||||
public void loadingDevAiConfigCache()
|
||||
{
|
||||
List<DevAiProjectConfig> configList = devAiProjectConfigMapper.selectDevAiProjectConfigList(new DevAiProjectConfig());
|
||||
if(CollectionUtils.isNotEmpty(configList)){
|
||||
for (DevAiProjectConfig devConfig : configList) {
|
||||
redisCache.setCacheObject(CacheConstants.YANZHU_DEVICE_AI + devConfig.getSerialNumber(), devConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设备配置
|
||||
*
|
||||
|
@ -71,6 +103,9 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
|
|||
devAiProjectConfig.setCreateTime(DateUtils.getNowDate());
|
||||
int rows = devAiProjectConfigMapper.insertDevAiProjectConfig(devAiProjectConfig);
|
||||
insertDevAiProjectConfigPassage(devAiProjectConfig);
|
||||
if(rows>0){
|
||||
this.loadingDevAiConfigCache();
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
|
@ -88,7 +123,11 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
|
|||
devAiProjectConfig.setUpdateTime(DateUtils.getNowDate());
|
||||
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxId(devAiProjectConfig.getId());
|
||||
insertDevAiProjectConfigPassage(devAiProjectConfig);
|
||||
return devAiProjectConfigMapper.updateDevAiProjectConfig(devAiProjectConfig);
|
||||
int rows = devAiProjectConfigMapper.updateDevAiProjectConfig(devAiProjectConfig);
|
||||
if(rows>0){
|
||||
this.loadingDevAiConfigCache();
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,7 +141,11 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
|
|||
public int deleteDevAiProjectConfigByIds(Long[] ids)
|
||||
{
|
||||
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxIds(ids);
|
||||
return devAiProjectConfigMapper.deleteDevAiProjectConfigByIds(ids);
|
||||
int rows = devAiProjectConfigMapper.deleteDevAiProjectConfigByIds(ids);
|
||||
if(rows>0){
|
||||
this.loadingDevAiConfigCache();
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -116,7 +159,11 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
|
|||
public int deleteDevAiProjectConfigById(Long id)
|
||||
{
|
||||
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxId(id);
|
||||
return devAiProjectConfigMapper.deleteDevAiProjectConfigById(id);
|
||||
int rows = devAiProjectConfigMapper.deleteDevAiProjectConfigById(id);
|
||||
if(rows>0){
|
||||
this.loadingDevAiConfigCache();
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,14 +3,20 @@ package com.yanzhu.jh.video.service.impl;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.ruoyi.common.config.RuoYiConfig;
|
||||
import com.ruoyi.common.constant.CacheConstants;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.enums.PublicStateEnum;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||
import com.ruoyi.common.utils.file.MultipartFileUtils;
|
||||
import com.yanzhu.jh.video.domain.DevAiProjectConfig;
|
||||
import com.yanzhu.jh.video.domain.DevAiProjectDataVO;
|
||||
import com.yanzhu.jh.video.domain.DevBwAiProjectDataVo;
|
||||
import com.yanzhu.jh.video.mapper.DevAiProjectConfigMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -32,6 +38,9 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
{
|
||||
private static final Logger logger = LoggerFactory.getLogger("DevAiProjectDataServiceImpl");
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Autowired
|
||||
private DevAiProjectDataMapper devAiProjectDataMapper;
|
||||
|
||||
|
@ -84,6 +93,11 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
@Override
|
||||
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO)
|
||||
{
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig config = redisCache.getCacheObject(CacheConstants.YANZHU_DEVICE_AI+devAiProjectDataVO.getSerialNumber());
|
||||
if(Objects.isNull(config)){
|
||||
throw new ServiceException("设备信息未注册...");
|
||||
}
|
||||
logger.info("AiBox消息解析成功!!开始转换实体!!!");
|
||||
DevAiProjectData devAiProjectData = new DevAiProjectData();
|
||||
devAiProjectData.setDeviceId(devAiProjectDataVO.getDeviceId());
|
||||
|
@ -150,18 +164,101 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
|
|||
}
|
||||
devAiProjectData.setCreateTime(DateUtils.getNowDate());
|
||||
devAiProjectData.setIsDel(PublicStateEnum.OK.getCode());
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig devAiProjectConfig = new DevAiProjectConfig();
|
||||
devAiProjectConfig.setSerialNumber(devAiProjectData.getSerialNumber());
|
||||
List<DevAiProjectConfig> devAiProjectConfigList = devAiProjectConfigMapper.selectDevAiProjectConfigList(devAiProjectConfig);
|
||||
if(devAiProjectConfigList!=null && devAiProjectConfigList.size()>0){
|
||||
devAiProjectData.setProjectId(devAiProjectConfigList.get(0).getProjectId());
|
||||
devAiProjectData.setDeptId(devAiProjectConfigList.get(0).getDeptId());
|
||||
}
|
||||
devAiProjectData.setProjectId(config.getProjectId());
|
||||
devAiProjectData.setDeptId(config.getDeptId());
|
||||
logger.info("新增AI设备数据成功");
|
||||
devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备数据
|
||||
*
|
||||
* @param devBwAiProjectDataVo 设备数据
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public void insertHttpBwDevAiProjectData(DevBwAiProjectDataVo devBwAiProjectDataVo){
|
||||
//根据设备配置查询设备绑定的项目和单位信息
|
||||
DevAiProjectConfig config = redisCache.getCacheObject(CacheConstants.YANZHU_DEVICE_AI+devBwAiProjectDataVo.getDevice_sn());
|
||||
if(Objects.isNull(config)){
|
||||
throw new ServiceException("设备信息未注册...");
|
||||
}
|
||||
Map<String, Object> extendMap = devBwAiProjectDataVo.getExtend();
|
||||
logger.info("AiBox消息解析成功!!开始转换实体!!!");
|
||||
DevAiProjectData devAiProjectData = new DevAiProjectData();
|
||||
devAiProjectData.setDeviceName(config.getDeviceName());
|
||||
/** 设备的序列号 */
|
||||
devAiProjectData.setSerialNumber(devBwAiProjectDataVo.getDevice_sn());
|
||||
/** 相机的序列号 */
|
||||
devAiProjectData.setIpcSerialNum(devBwAiProjectDataVo.getDevice_sn());
|
||||
if(Objects.nonNull(extendMap)){
|
||||
devAiProjectData.setChannelId(Convert.toLong(extendMap.get("ch")));
|
||||
devAiProjectData.setChannelName(Convert.toStr(extendMap.get("source_name")));
|
||||
}
|
||||
/** 报警类型 */
|
||||
String type = this.switchAlarmType(devBwAiProjectDataVo.getLabel());
|
||||
if(!type.equals("-1")){
|
||||
devAiProjectData.setAlarmType(Convert.toLong(type));
|
||||
/** 采集时间 */
|
||||
devAiProjectData.setTimestamp(new Date(devBwAiProjectDataVo.getTimestamp()));
|
||||
logger.info("实体转换成功!!Base64开始转换图片!!!");
|
||||
String objImg64 = devBwAiProjectDataVo.getImg();
|
||||
try {
|
||||
MultipartFile file = MultipartFileUtils.base64ToMultipartFile("data:image/png;base64,"+objImg64);
|
||||
// 上传文件路径
|
||||
String filePath = RuoYiConfig.getUploadPath();
|
||||
// 上传并返回新文件名称
|
||||
String profileFile = FileUploadUtils.upload(filePath, file);
|
||||
devAiProjectData.setImageUrl(profileFile);
|
||||
logger.info("Base64上传图片成功!!!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
devAiProjectData.setCreateTime(DateUtils.getNowDate());
|
||||
devAiProjectData.setIsDel(PublicStateEnum.OK.getCode());
|
||||
devAiProjectData.setProjectId(config.getProjectId());
|
||||
devAiProjectData.setDeptId(config.getDeptId());
|
||||
logger.info("新增AI设备数据成功");
|
||||
devAiProjectDataMapper.insertDevAiProjectData(devAiProjectData);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换博瓦预警类型
|
||||
* @return
|
||||
*/
|
||||
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 "fire" : alarmType="8";break;
|
||||
case "vest" : alarmType="65";break;
|
||||
case "smoke" : alarmType="7";break;
|
||||
case "smoking" : alarmType="8";break;
|
||||
case "calling" : alarmType="6";break;
|
||||
case "face" : alarmType="face";break;
|
||||
case "mask" : alarmType="mask";break;
|
||||
case "garbage" : alarmType="garbage";break;
|
||||
case "tricycle" : alarmType="tricycle";break;
|
||||
case "person" : alarmType="person";break;
|
||||
case "clothes" : alarmType="65";break;
|
||||
case "down" : alarmType="62";break;
|
||||
case "phone" : alarmType="6";break;
|
||||
case "body" : alarmType="body";break;
|
||||
case "ponding" : alarmType="ponding";break;
|
||||
case "car" : alarmType="car";break;
|
||||
case "bicycle" : alarmType="bicycle";break;
|
||||
case "motorcycle" : alarmType="motorcycle";break;
|
||||
case "bus" : alarmType="bus";break;
|
||||
case "truck" : alarmType="truck";break;
|
||||
case "van" : alarmType="van";break;
|
||||
default : alarmType="0";
|
||||
}
|
||||
return alarmType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备数据
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue