Compare commits

..

No commits in common. "e55d2cd93979cb8d5f77c7cee2fd8be65e04198e" and "907e27c6a1a9d2285b2b73f9dc99ca6f42d9122f" have entirely different histories.

16 changed files with 64 additions and 306 deletions

View File

@ -1,7 +1,5 @@
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;
@ -18,7 +16,6 @@ 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;
@ -173,27 +170,4 @@ 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");
}
}
}

View File

@ -52,11 +52,6 @@ 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
*/

View File

@ -61,15 +61,6 @@
<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>
@ -734,7 +725,7 @@ export default {
{
...this.queryParams,
},
`材料取样复试_${new Date().getTime()}.xlsx`
`checkDetection_${new Date().getTime()}.xlsx`
);
},
/** 选择见证人*/

View File

@ -58,15 +58,6 @@
<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>
@ -595,7 +586,7 @@ export default {
{
...this.queryParams,
},
`材料封样_${new Date().getTime()}.xlsx`
`materialSeal_${new Date().getTime()}.xlsx`
);
},
/** 选择见证人*/

View File

@ -64,15 +64,6 @@
<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>
@ -627,7 +618,7 @@ export default {
{
...this.queryParams,
},
`举牌验收_${new Date().getTime()}.xlsx`
`projectChecking_${new Date().getTime()}.xlsx`
);
},
/** 选择质量专员*/

View File

@ -63,15 +63,6 @@
<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>
@ -614,7 +605,7 @@ export default {
{
...this.queryParams,
},
`实测实量_${new Date().getTime()}.xlsx`
`projectMeasure_${new Date().getTime()}.xlsx`
);
},
/** 选择质量专员*/

View File

@ -21,19 +21,15 @@ 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 = "送检类型",dictType = "check_detection_check_type")
@Excel(name = "送检类型")
private String checkType;
/** 材料名称 */
@ -49,16 +45,19 @@ public class SurProjectCheckDetection extends BaseEntity
private String sampleNum;
/** 提供合格证 */
@Excel(name = "是否提供合格证",dictType = "sys_yes_no")
@Excel(name = "提供合格证")
private String qualifiedFlag;
/** 代表数量 */
@Excel(name = "代表数量")
private String represenNum;
/** 取样人 */
@Excel(name = "取样人")
private String sampleUser;
/** 取样人名称 */
@Excel(name = "取样人名称")
private String sampleUserName;
/** 见证人 */
@ -79,15 +78,19 @@ 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;
@ -118,12 +121,13 @@ public class SurProjectCheckDetection extends BaseEntity
}
private String specimenPhoto;
/** 审核状态 */
@Excel(name = "审核状态",dictType = "project_check_status")
@Excel(name = "审核状态")
private String approveStatus;
private String checkTypeName;
private String projectName;
private String deptName;
private String createByName;
private String updateByName;

View File

@ -63,6 +63,7 @@ public class SurProjectChecking extends BaseEntity
private Long checkingNum;
/** 验收结果 */
@Excel(name = "验收结果")
private String checkResult;
/** 验收描述 */
@ -86,9 +87,11 @@ public class SurProjectChecking extends BaseEntity
private String superviseUserName;
/** 分包单位用户 */
@Excel(name = "分包单位用户")
private String groupDeptUser;
/** 分包单位用户名称 */
@Excel(name = "分包单位用户名称")
private String groupDeptUserName;
/** 验收时间 */
@ -97,16 +100,19 @@ public class SurProjectChecking extends BaseEntity
private Date checkingDate;
/** 验收附件 */
@Excel(name = "验收附件")
private String checkingFiles;
/** 数据状态 */
@Excel(name = "数据状态")
private Long isDel;
/** 审核状态 */
@Excel(name = "审核状态",dictType = "project_check_status")
@Excel(name = "审核状态")
private String approveStatus;
@Excel(name = "验收类型")
private String dataTypeLvl1;
public String getDataTypeLvl1() {
@ -125,6 +131,7 @@ public class SurProjectChecking extends BaseEntity
this.dataTypeLvl2 = dataTypeLvl2;
}
@Excel(name = "子验收类型")
private String dataTypeLvl2;
public void setId(Long id)

View File

@ -33,9 +33,11 @@ public class SurProjectMaterialSeal extends BaseEntity
private String deptName;
/** 封样主图 */
@Excel(name = "封样主图")
private String mainImage;
/** 图片集合 */
@Excel(name = "图片集合")
private String imageUrls;
/** 封样名称 */
@ -60,11 +62,25 @@ 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;
@ -73,16 +89,6 @@ 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;

View File

@ -33,13 +33,15 @@ public class SurProjectMeasure extends BaseEntity
private String deptName;
/** 测量主图 */
@Excel(name = "测量主图")
private String mainImage;
/** 图片集合 */
@Excel(name = "图片集合")
private String imageUrls;
/** 测量类型 */
@Excel(name = "测量类型",dictType = "project_measure_type")
@Excel(name = "测量类型")
private String measureType;
/** 测量部位 */
@ -47,7 +49,7 @@ public class SurProjectMeasure extends BaseEntity
private String measurePosition;
/** 测量内容 */
@Excel(name = "测量内容",dictType = "project_measure_info_type")
@Excel(name = "测量内容")
private String measureInfo;
/** 测量时间 */
@ -60,9 +62,11 @@ public class SurProjectMeasure extends BaseEntity
private String measurePointPosition;
/** 测量结果 */
@Excel(name = "测量结果")
private String measureResult;
/** 测量文件 */
@Excel(name = "测量文件")
private String measureFiles;
/** 质量专员 */
@ -82,10 +86,11 @@ public class SurProjectMeasure extends BaseEntity
private String superviseUserName;
/** 数据状态 */
@Excel(name = "数据状态")
private String isDel;
/** 审核状态 */
@Excel(name = "审核状态",dictType = "project_check_status")
@Excel(name = "审核状态")
private String approveStatus;
private String measureTypeName;

View File

@ -6,7 +6,6 @@ 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;
@ -35,11 +34,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 boGuanPush(@RequestBody Map<String,Object> dataMap)
public void push(@RequestBody Map<String,Object> dataMap)
{
try{
List<Map<String,Object>> list = (List<Map<String,Object>>)dataMap.get("BehaviorResults");
@ -47,24 +46,10 @@ 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();
}
}
}

View File

@ -1,23 +0,0 @@
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;
}

View File

@ -11,12 +11,6 @@ import com.yanzhu.jh.video.domain.DevAiProjectConfig;
*/
public interface IDevAiProjectConfigService
{
/**
*
*/
public void loadingDevAiConfigCache();
/**
*
*

View File

@ -5,7 +5,6 @@ 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
@ -47,14 +46,6 @@ public interface IDevAiProjectDataService
*/
public void insertHttpDevAiProjectData(DevAiProjectDataVO devAiProjectDataVO);
/**
*
*
* @param devBwAiProjectDataVo
* @return
*/
public void insertHttpBwDevAiProjectData(DevBwAiProjectDataVo devBwAiProjectDataVo);
/**
*
*

View File

@ -3,11 +3,8 @@ 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;
@ -18,9 +15,6 @@ 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
*
@ -30,35 +24,9 @@ import javax.annotation.PostConstruct;
@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);
}
}
}
/**
*
*
@ -103,9 +71,6 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
devAiProjectConfig.setCreateTime(DateUtils.getNowDate());
int rows = devAiProjectConfigMapper.insertDevAiProjectConfig(devAiProjectConfig);
insertDevAiProjectConfigPassage(devAiProjectConfig);
if(rows>0){
this.loadingDevAiConfigCache();
}
return rows;
}
@ -123,11 +88,7 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
devAiProjectConfig.setUpdateTime(DateUtils.getNowDate());
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxId(devAiProjectConfig.getId());
insertDevAiProjectConfigPassage(devAiProjectConfig);
int rows = devAiProjectConfigMapper.updateDevAiProjectConfig(devAiProjectConfig);
if(rows>0){
this.loadingDevAiConfigCache();
}
return rows;
return devAiProjectConfigMapper.updateDevAiProjectConfig(devAiProjectConfig);
}
/**
@ -141,11 +102,7 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
public int deleteDevAiProjectConfigByIds(Long[] ids)
{
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxIds(ids);
int rows = devAiProjectConfigMapper.deleteDevAiProjectConfigByIds(ids);
if(rows>0){
this.loadingDevAiConfigCache();
}
return rows;
return devAiProjectConfigMapper.deleteDevAiProjectConfigByIds(ids);
}
/**
@ -159,11 +116,7 @@ public class DevAiProjectConfigServiceImpl implements IDevAiProjectConfigService
public int deleteDevAiProjectConfigById(Long id)
{
devAiProjectConfigMapper.deleteDevAiProjectConfigPassageByAiboxId(id);
int rows = devAiProjectConfigMapper.deleteDevAiProjectConfigById(id);
if(rows>0){
this.loadingDevAiConfigCache();
}
return rows;
return devAiProjectConfigMapper.deleteDevAiProjectConfigById(id);
}
/**

View File

@ -3,20 +3,14 @@ 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;
@ -38,9 +32,6 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
{
private static final Logger logger = LoggerFactory.getLogger("DevAiProjectDataServiceImpl");
@Autowired
private RedisCache redisCache;
@Autowired
private DevAiProjectDataMapper devAiProjectDataMapper;
@ -93,11 +84,6 @@ 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());
@ -164,101 +150,18 @@ public class DevAiProjectDataServiceImpl implements IDevAiProjectDataService
}
devAiProjectData.setCreateTime(DateUtils.getNowDate());
devAiProjectData.setIsDel(PublicStateEnum.OK.getCode());
devAiProjectData.setProjectId(config.getProjectId());
devAiProjectData.setDeptId(config.getDeptId());
//根据设备配置查询设备绑定的项目和单位信息
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());
}
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;
}
/**
*
*