From 0bc230dd458e1e5e4681c3194e7c0fd5b8a1f145 Mon Sep 17 00:00:00 2001 From: GUO <1923636941@qq.com> Date: Sat, 1 Jun 2024 19:41:18 +0800 Subject: [PATCH] =?UTF-8?q?AI=E9=A2=84=E8=AD=A6=E4=BF=AE=E6=94=B9=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/call/HikvisionCall.java | 37 +++++++++++-------- .../basicdata/service/UploadFileService.java | 25 +++++++++---- .../service/impl/UploadFileServiceImpl.java | 12 ++++-- ...AnalyseHardWareAlarmRecordServiceImpl.java | 16 ++++++-- src/main/java/com/zhgd/xmgl/task/JzgTask.java | 11 +++--- .../java/com/zhgd/xmgl/util/PathUtil.java | 13 ++++--- src/main/java/com/zhgd/xmgl/util/UrlUtil.java | 22 ++++++++++- 7 files changed, 92 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 9bebbbbbc..5c01331e4 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -6,6 +6,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.xuyanwu.spring.file.storage.FileStorageService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -21,6 +22,7 @@ import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.base.*; import com.zhgd.xmgl.call.entity.ChargeDeletionParam; import com.zhgd.xmgl.constant.Cts; +import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; import com.zhgd.xmgl.modules.car.entity.CarCamera; import com.zhgd.xmgl.modules.car.entity.CarInfo; @@ -37,7 +39,9 @@ import com.zhgd.xmgl.modules.frontierprotectionnonet.mapper.FrontierProtectionNo import com.zhgd.xmgl.modules.frontierprotectionnonet.service.IFrontierProtectionNoNetDevService; import com.zhgd.xmgl.modules.frontierprotectionnonet.service.impl.FrontierProtectionNoNetDataServiceImpl; import com.zhgd.xmgl.modules.project.entity.Project; +import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; +import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper; @@ -52,10 +56,10 @@ import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.impl.WorkerAttendanceServiceImpl; -import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper; -import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService; import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; +import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper; import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; +import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService; import com.zhgd.xmgl.modules.xz.service.impl.XzHikvisionSyncServiceImpl; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.*; @@ -90,6 +94,15 @@ public class HikvisionCall { XzHikvisionSyncServiceImpl xzHikvisionSyncService; @Lazy @Autowired + UploadFileService uploadFileService; + @Lazy + @Autowired + ProjectServiceImpl projectService; + @Lazy + @Autowired + FileStorageService fileStorageService; + @Lazy + @Autowired CarPassRecordServiceImpl carPassRecordService; @Lazy @Autowired @@ -385,6 +398,7 @@ public class HikvisionCall { log.info("重复的ai预警数据不保存,deviceID:{},createTime:{}", deviceID, createTime); return; } + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(dev.getProjectSn()); AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord = new AiAnalyseHardWareAlarmRecord(); aiAnalyseHardWareAlarmRecord.setCreateTime(createTime); aiAnalyseHardWareAlarmRecord.setAlarmType(Integer.valueOf(eventType)); @@ -393,7 +407,8 @@ public class HikvisionCall { aiAnalyseHardWareAlarmRecord.setLocation(srcName); aiAnalyseHardWareAlarmRecord.setProjectSn(dev.getProjectSn()); aiAnalyseHardWareAlarmRecord.setStatus(1); - aiAnalyseHardWareAlarmRecord.setImageUrl(saveToLocal(imageUrl)); + String relativePath = projectInfoBySn.getProjectName() + "/" + DateUtil.today(); + aiAnalyseHardWareAlarmRecord.setImageUrl(uploadFileService.uploadUrlReturnFileName(imageUrl, relativePath)); aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord); //将数据通过MQTT转发到前台 asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN); @@ -1294,9 +1309,9 @@ public class HikvisionCall { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } - deleteWorkerFace(uniqueId,workerInfo, project); + deleteWorkerFace(uniqueId, workerInfo, project); - deleteWorkerFromHttp(uniqueId,workerInfo, project); + deleteWorkerFromHttp(uniqueId, workerInfo, project); } public void deleteWorkerFromHttp(String uniqueId, WorkerInfo workerInfo, Project project) throws Exception { @@ -2261,17 +2276,7 @@ public class HikvisionCall { public String saveToLocal(String url) { - if (StringUtils.isBlank(url)) { - return null; - } - String fileName = IdUtil.simpleUUID() + ".png"; - try { - X509TrustManagerUtil.downLoadFromUrl(url, fileName, basePath); - } catch (Exception e) { - log.error("下载海康图片出现异常:" + e); - return null; - } - return fileName; + return UrlUtil.saveToLocal(url, basePath, IdUtil.simpleUUID() + ".png"); } /** diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/UploadFileService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/UploadFileService.java index a4a4d060d..97784224b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/UploadFileService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/UploadFileService.java @@ -34,17 +34,28 @@ public interface UploadFileService { FileInfo uploadFileBase64Image(String base64Image); + /** + * 上传url返回文件名称 + * + * @param url + * @return + */ + String uploadUrlReturnFileName(String url); + + /** + * 上传url返回文件名称 + * + * @param url + * @param relativePath 相对路径 + * @return + */ + String uploadUrlReturnFileName(String url, String relativePath); + + FileInfo uploadFileBufferedImage(BufferedImage bufferedImage); Map uploadUrlResource(String url); - String uploadUrlResourceRtName(String url); - - /** - * 异步文件上传 - * - * @param file - */ void uploadAsync(MultipartFile file); Result uploadSjImage(MultipartFile file); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java index c6029e23c..57d391c72 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java @@ -5,7 +5,6 @@ import cn.xuyanwu.spring.file.storage.FileInfo; import cn.xuyanwu.spring.file.storage.FileStorageService; import com.zhgd.file.FileUtil; import com.zhgd.jeecg.common.api.vo.Result; -import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.basicdata.entity.vo.UploadImageVo; import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.util.MessageUtil; @@ -38,8 +37,7 @@ public class UploadFileServiceImpl implements UploadFileService { private FileStorageService fileStorageService; /** - * @throws Exception - * 2017年7月20日 下午5:17:36 @throws + * @throws Exception 2017年7月20日 下午5:17:36 @throws */ @Override public Map uploadImage(MultipartFile[] files) throws Exception { @@ -146,7 +144,7 @@ public class UploadFileServiceImpl implements UploadFileService { } @Override - public String uploadUrlResourceRtName(String url) { + public String uploadUrlReturnFileName(String url) { try { return ((List>) uploadUrlResource(url).get("data")).get(0).get("imageUrl").toString(); } catch (Exception e) { @@ -155,6 +153,12 @@ public class UploadFileServiceImpl implements UploadFileService { throw new RuntimeException("转码错误!"); } + @Override + public String uploadUrlReturnFileName(String url, String relativePath) { + FileInfo fileInfo = fileStorageService.of(UrlUtil.uploadImgUrlToMultipartFile(url)).setPath(relativePath).upload(); + return relativePath + "/" + fileInfo.getFilename(); + } + /** * 异步文件上传 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java index 757a2e65f..67a221fc1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java @@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.video.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import cn.xuyanwu.spring.file.storage.FileInfo; import cn.xuyanwu.spring.file.storage.FileStorageService; @@ -32,6 +33,7 @@ import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.ProjectJqmDev; +import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.ProjectJqmDevService; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; @@ -202,16 +204,18 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl map = new HashMap<>(); map.put("k1", "v1"); map.put("k", "v"); System.out.println(urlJoin("http://baidu.com", map)); } - }