| ard-work/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ard-work/src/main/java/com/ruoyi/utils/generator/CodeGeneration.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ard-work/pom.xml
@@ -31,10 +31,6 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common</artifactId> </dependency> <!-- <dependency>--> <!-- <groupId>org.projectlombok</groupId>--> <!-- <artifactId>lombok</artifactId>--> <!-- </dependency>--> <!--海康录像机二次开发依赖jar包--> <dependency> @@ -165,7 +161,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> <version>3.5.1</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> @@ -173,6 +169,30 @@ <version>3.0.3</version> <scope>compile</scope> </dependency> <!--MP代码生成器依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.3.1</version> </dependency> <!--velocity模板引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <!--postgresql数据库依赖--> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency> <!-- <!–mybatis-plus依赖–>--> <!-- <dependency>--> <!-- <groupId>com.baomidou</groupId>--> <!-- <artifactId>mybatis-plus-boot-starter</artifactId>--> <!-- <version>3.5.1</version>--> <!-- </dependency>--> </dependencies> ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -55,7 +55,10 @@ @Override public ArdAppTask selectArdAppTaskById(String id) { ArdAppTask ardAppTask = ardAppTaskMapper.selectArdAppTaskById(id); if(StringUtils.isNull(ardAppTask)) { return null; } List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList(); if(ardAppTaskDetailList.size()>0) { ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -179,7 +179,7 @@ int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (i < 0) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.info("登录异常:" + errorCode); log.error("登录异常:" + errorCode); } } @@ -328,7 +328,7 @@ boolean bool = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(userId, channelNum, dwPTZCommand, dwStop, speed); if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.info("控制失败,请稍后重试" + errorCode); log.error("控制失败,请稍后重试" + errorCode); } return bool; } @@ -356,7 +356,7 @@ boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置聚焦值失败,请稍后重试" + code); log.error("设置聚焦值失败,请稍后重试" + code); } return bool; } @@ -389,7 +389,7 @@ return map; } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("获取聚焦值失败,请稍后重试" + code); log.debug("获取聚焦值失败,请稍后重试" + code); return new HashMap<>(); } } @@ -412,7 +412,7 @@ boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("预置点设置失败,请稍后重试" + code); log.error("预置点设置失败,请稍后重试" + code); } return bool; } @@ -435,7 +435,7 @@ boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("预置点设置失败,请稍后重试" + code); log.error("预置点设置失败,请稍后重试" + code); } return bool; } @@ -537,7 +537,7 @@ } } else { int code = hCNetSDK.NET_DVR_GetLastError(); System.out.println("控制失败,请稍后重试" + code); log.error("控制失败,请稍后重试" + code); } } catch (Exception ex) { log.error(ex.getMessage()); @@ -589,7 +589,7 @@ return ptzMap; } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("控制失败,请稍后重试" + code); log.error("控制失败,请稍后重试" + code); return new HashMap<>(); } @@ -627,7 +627,7 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置ptz失败,请稍后重试" + code); log.error("设置ptz失败,请稍后重试" + code); } return bool; } catch (Exception ex) { @@ -663,7 +663,7 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置ptz失败,请稍后重试" + code); log.error("设置ptz失败,请稍后重试" + code); } return bool; } catch (Exception ex) { @@ -739,7 +739,7 @@ boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZLOCKCFG, channelNum, point, netDvrPtzLockcfg.size(), ibrBytesReturned); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("获取ptz锁定信息失败,请稍后重试" + code); log.error("获取ptz锁定信息失败,请稍后重试" + code); return -1; } else { netDvrPtzLockcfg.read(); @@ -803,7 +803,7 @@ boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZSCOPE, channelNum, point, m_ptzPosCurrent.size(), ibrBytesReturned); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置ptz失败,请稍后重试" + code); log.error("设置ptz失败,请稍后重试" + code); return new HashMap<>(); } else { m_ptzPosCurrent.read(); @@ -853,7 +853,7 @@ log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); } struCameraParam.read(); log.info("是否开启透雾:" + struCameraParam.struDefogCfg.byMode); log.debug("是否开启透雾:" + struCameraParam.struDefogCfg.byMode); NET_DVR_DEFOGCFG defogcfg = new NET_DVR_DEFOGCFG(); if (enable) { @@ -867,9 +867,9 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置透雾失败,请稍后重试" + code); log.error("设置透雾失败,请稍后重试" + code); } log.info("设置透雾成功"); log.debug("设置透雾成功"); return bool; } @@ -899,7 +899,7 @@ log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); } struDayNigh.read(); log.info("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType); log.debug("是否开启夜视:" + struDayNigh.struDayNight.byDayNightFilterType); NET_DVR_DAYNIGHT daynight = new NET_DVR_DAYNIGHT(); if (enable) { @@ -915,9 +915,9 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struDayNigh.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置夜视失败,请稍后重试" + code); log.error("设置夜视失败,请稍后重试" + code); } log.info("设置夜视成功"); log.debug("设置夜视成功"); return bool; } @@ -944,10 +944,10 @@ IntByReference ibrBytesReturned = new IntByReference(0); boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned); if (!b_GetCameraParam) { System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); } struFocusMode.read(); log.info("当前聚焦模式:" + struFocusMode.byFocusMode); log.debug("当前聚焦模式:" + struFocusMode.byFocusMode); if (enable) { struFocusMode.byFocusMode = 1;//手动聚焦 @@ -961,9 +961,9 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_FOCUSMODECFG, channelNum, point, struFocusMode.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置聚焦模式失败,请稍后重试" + code); log.error("设置聚焦模式失败,请稍后重试" + code); } log.info("设置聚焦模式成功"); log.debug("设置聚焦模式成功"); return bool; } @@ -979,10 +979,10 @@ IntByReference ibrBytesReturned = new IntByReference(0); boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned); if (!b_GetCameraParam) { System.out.println("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); } struFocusMode.read(); log.info("当前聚焦模式:" + struFocusMode.byFocusMode); log.debug("当前聚焦模式:" + struFocusMode.byFocusMode); return String.valueOf(struFocusMode.byFocusMode); } @@ -1013,9 +1013,9 @@ boolean bool = hCNetSDK.NET_DVR_PTZControl_Other(userId, channelNum, HEATER_PWRON, dwStop); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置云台加热失败,请稍后重试" + code); log.error("设置云台加热失败,请稍后重试" + code); } log.info("设置云台加热成功"); log.debug("设置云台加热成功"); return bool; } @@ -1045,7 +1045,7 @@ log.error("获取前端参数失败,错误码:" + hCNetSDK.NET_DVR_GetLastError()); } struDeicing.read(); log.info("是否开启除冰:" + struDeicing.byEnableDeicing); log.debug("是否开启除冰:" + struDeicing.byEnableDeicing); if (enable) { struDeicing.byEnableDeicing = 1;//开启 @@ -1056,9 +1056,9 @@ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_DEVSERVER_CFG, channelNum, point, struDeicing.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("设置镜头除冰失败,请稍后重试" + code); log.error("设置镜头除冰失败,请稍后重试" + code); } log.info("设置镜头除冰成功"); log.debug("设置镜头除冰成功"); return bool; } @@ -1090,13 +1090,13 @@ ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024); // 抓图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中 boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a); log.info("-----------这里开始图片存入内存----------" + is); log.debug("-----------这里开始图片存入内存----------" + is); Base64.Encoder decoder = Base64.getEncoder(); // BASE64Encoder encoder = new BASE64Encoder(); String png_base64 = decoder.encodeToString(jpegBuffer.array());//转换成base64串 png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n log.info("-----------处理完成截图数据----------"); log.debug("-----------处理完成截图数据----------"); return png_base64; } @@ -1134,11 +1134,11 @@ //设置图片大小 ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024); // 抓图到内存,单帧数据捕获并保存成JPEG存放在指定的内存空间中 log.info("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------"); log.debug("-----------这里开始封装 NET_DVR_CaptureJPEGPicture_NEW---------"); boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a); log.info("-----------这里开始图片存入内存----------" + is); log.debug("-----------这里开始图片存入内存----------" + is); if (is) { log.info("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError()); log.debug("hksdk(抓图)-结果状态值(0表示成功):" + hCNetSDK.NET_DVR_GetLastError()); byte[] array = jpegBuffer.array(); //存储到minio String BucketName = "pic"; @@ -1152,7 +1152,7 @@ boolean b = MinioUtils.uploadObject(BucketName, ObjectName, input, input.available(), ContentType); if (b) { url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName); log.info("上传文件成功!" + url); log.debug("上传文件成功!" + url); } } catch (IOException ex) { log.error("上传文件异常:" + ex.getMessage()); @@ -1160,7 +1160,7 @@ return url; } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.info("抓图失败,请稍后重试" + code); log.error("抓图失败,请稍后重试" + code); return ""; } } @@ -1212,21 +1212,21 @@ log.error("取流失败" + hCNetSDK.NET_DVR_GetLastError()); return ""; } log.info("取流成功"); log.debug("取流成功"); GlobalVariable.previewMap.put(cameraId, lRealHandle); } if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) { log.error("保存视频文件到临时文件夹失败 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); return ""; } log.info("录像开始"); log.debug("录像开始"); } else { if (GlobalVariable.previewMap.containsKey(cameraId)) { Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); GlobalVariable.previewMap.remove(cameraId); } log.info("录像停止"); log.debug("录像停止"); } return url; } catch (Exception ex) { ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -1,8 +1,6 @@ package com.ruoyi.inspect.service.impl; import java.text.SimpleDateFormat; import java.util.*; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; import com.ruoyi.common.utils.DateUtils; @@ -10,7 +8,6 @@ import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.hiksdk.config.MinioClientSingleton; import com.ruoyi.device.hiksdk.service.IHikClientService; import com.ruoyi.inspect.domain.ArdVideoInspectRecord; import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper; @@ -24,7 +21,6 @@ import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper; import com.ruoyi.inspect.domain.ArdVideoInspectTask; import com.ruoyi.inspect.service.IArdVideoInspectTaskService; import javax.annotation.PostConstruct; import javax.annotation.Resource; @@ -417,7 +413,7 @@ try { String currentStepId = ardVideoInspectTask.getCurrentStepId(); if (StringUtils.isNull(currentStepId)) { log.info("当前开始巡检步骤id为空"); log.debug("当前开始巡检步骤id为空"); return; } log.debug("巡检步骤:" + currentStepId + "尝试开始"); @@ -442,6 +438,11 @@ targetPositon[2] = ardAlarmpointsWell.getAltitude(); /*获取相机坐标*/ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if(StringUtils.isNull(cameras)) { log.debug("找不到相机:"+cameraId); return; } double[] cameraPositon = new double[3]; cameraPositon[0] = cameras.getLongitude(); cameraPositon[1] = cameras.getLatitude(); @@ -474,7 +475,7 @@ try { String currentStepId = ardVideoInspectTask.getCurrentStepId(); if (StringUtils.isNull(currentStepId)) { log.info("当前开始巡检步骤id为空"); log.debug("当前开始巡检步骤id为空"); return; } log.debug("巡检正常,尝试引导:" + currentStepId); @@ -495,6 +496,11 @@ targetPositon[2] = ardAlarmpointsWell.getAltitude(); /*获取相机坐标*/ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId); if(StringUtils.isNull(cameras)) { log.debug("找不到相机:"+cameraId); return; } double[] cameraPositon = new double[3]; cameraPositon[0] = cameras.getLongitude(); cameraPositon[1] = cameras.getLatitude(); ard-work/src/main/java/com/ruoyi/utils/generator/CodeGeneration.java
对比新文件 @@ -0,0 +1,118 @@ package com.ruoyi.utils.generator; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.Collections; /** * @ClassName: CodeGeneration * @Description: mybatisPlus 代码生成工具 * @Author: Administrator * @Date: 2023年03月25日 14:49 * @Version: 1.0 **/ public class CodeGeneration { public static void main(String[] args) { /** * 先配置数据源 */ PostgreSqlQuery postgreSqlQuery = new PostgreSqlQuery() { @Override public String[] fieldCustom() { return new String[]{"Default"}; } }; DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:postgresql://192.168.1.15:5432/ry-vue?stringtype=unspecified","postgres","postgres") .dbQuery(postgreSqlQuery).build(); //通过datasourceConfig创建AutoGenerator AutoGenerator generator = new AutoGenerator(dsc); /** * 全局配置 */ String projectPath = System.getProperty("user.dir"); //获取项目路径 String filePath = projectPath + "/ard-work/src/main/java"; //java下的文件路径 GlobalConfig global = new GlobalConfig.Builder() .outputDir(filePath)//生成的输出路径 .author("刘苏义")//生成的作者名字 //.enableSwagger()开启swagger,需要添加swagger依赖并配置 .dateType(DateType.TIME_PACK)//时间策略 .commentDate("yyyy年MM月dd日")//格式化时间格式 .disableOpenDir()//禁止打开输出目录,默认false .fileOverride()//覆盖生成文件 .build(); /** * 包配置 */ PackageConfig packages = new PackageConfig.Builder() .entity("domian")//实体类包名 .parent("com.ruoyi.test")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名 .controller("controller")//控制层包名 .mapper("mapper")//mapper层包名 .xml("mapper.xml")//数据访问层xml包名 .service("service")//service层包名 .serviceImpl("service.impl")//service实现类包名 .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/ard-work/src/main/resources/mapper")) .build(); /** * 策略配置开始 */ StrategyConfig strategyConfig = new StrategyConfig.Builder() .enableCapitalMode()//开启全局大写命名 //.likeTable()模糊表匹配 .addInclude("school")//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表 //.disableSqlFilter()禁用sql过滤:默认(不使用该方法)true //.enableSchema()启用schema:默认false .entityBuilder() //实体策略配置 //.disableSerialVersionUID()禁用生成SerialVersionUID:默认true .enableChainModel()//开启链式模型 .enableLombok()//开启lombok .enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀 .enableTableFieldAnnotation()//开启生成实体时生成字段注解 //.addTableFills()添加表字段填充 .naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel .columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行 .idType(IdType.AUTO)//添加全局主键类型 .formatFileName("%s")//格式化实体名称,%s取消首字母I .build() .mapperBuilder()//mapper文件策略 .enableMapperAnnotation()//开启mapper注解 .enableBaseResultMap()//启用xml文件中的BaseResultMap 生成 .enableBaseColumnList()//启用xml文件中的BaseColumnList //.cache(缓存类.class)设置缓存实现类 .formatMapperFileName("%sMapper")//格式化Dao类名称 .formatXmlFileName("%sMapper")//格式化xml文件名称 .build() .serviceBuilder()//service文件策略 .formatServiceFileName("%sService")//格式化 service 接口文件名称 .formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称 .build() .controllerBuilder()//控制层策略 //.enableHyphenStyle()开启驼峰转连字符,默认:false .enableRestStyle()//开启生成@RestController .formatFileName("%sController")//格式化文件名称 .build(); /*至此,策略配置才算基本完成!*/ /** * 将所有配置项整合到AutoGenerator中进行执行 */ generator.global(global) .packageInfo(packages) .strategy(strategyConfig) .execute(); } } ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
@@ -61,8 +61,9 @@ * 测试 */ TEST, /** * 控制 */ CONTROL, CONTROL }