From 1cad14bca191807e18705c3a5526eda8151be439 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 14 四月 2025 23:10:22 +0800 Subject: [PATCH] 批量审核和图片保存bug --- ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java | 61 +++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 3 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java index 5a16078..95df9ac 100644 --- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java @@ -1,7 +1,10 @@ package com.ycl.service.caseHandler.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.BeanUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hikvision.artemis.sdk.util.HttpUtils; import com.ycl.common.util.UtilNumber; import com.ycl.dto.video.HKAlarmParam; import com.ycl.entity.caseHandler.BaseCase; @@ -19,15 +22,23 @@ import com.ycl.service.caseHandler.IBaseCaseService; import com.ycl.service.caseHandler.IViolationsService; import com.ycl.service.dict.IDataDictionaryService; +import com.ycl.service.oss.OssService; import com.ycl.service.region.ISccgRegionService; import com.ycl.service.resources.IImageResourcesService; import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.service.video.impl.IVideoPointService; import com.ycl.vo.cockpit.enforcementEvents.VideoAndAreaVO; +import net.coobird.thumbnailator.Thumbnails; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; @@ -52,6 +63,8 @@ private IImageResourcesService imageResourcesService; private ISccgRegionService regionService; private IVideoAlarmReportService videoAlarmReportService; + @Autowired + private OssService ossService; @Resource BaseCaseMapper baseCaseMapper; @@ -124,6 +137,12 @@ imageResources.setBelongToId(baseCase.getId()); imageResources.setUrl(videoAlarmReport.getPicData()); imageResources.setCreateTime(LocalDateTime.now()); + + ImageResources imageResources1 = new ImageResources(); + BeanUtil.copyProperties(imageResources, imageResources1); + imageResources1.setType("01"); + + imageResourcesService.save(imageResources1); imageResourcesService.save(imageResources); } catch (Exception ex) { System.out.println("娴峰悍鎺ㄩ�佷繚瀛樺紓甯革細" + ex.getMessage()); @@ -172,8 +191,10 @@ VideoAlarmReport videoAlarmReport = new VideoAlarmReport(); videoAlarmReport.setPlatResourceId(alarmParam.getEventNumber()); + String img0 = ""; if (imgs.length > 0) { - videoAlarmReport.setPicData(imgs[0]); + img0 = saveOSS(imgs[0]); + videoAlarmReport.setPicData(img0); } videoAlarmReport.setAlarmTime(alarmTime); videoAlarmReport.setAlarmId(alarmParam.getEventId()); @@ -189,10 +210,15 @@ ImageResources imageResources = new ImageResources(); imageResources.setType("04"); imageResources.setBelongToId(baseCase.getId()); - imageResources.setUrl(imgs[i]); + imageResources.setUrl(i == 0 ? img0 : saveOSS(imgs[i])); imageResources.setCreateTime(LocalDateTime.now()); - imageResourcesService.save(imageResources); + ImageResources imageResources1 = new ImageResources(); + BeanUtil.copyProperties(imageResources, imageResources1); + imageResources1.setType("01"); + + imageResourcesService.save(imageResources1); + imageResourcesService.save(imageResources); } } catch (Exception ex) { @@ -200,6 +226,35 @@ } + private String saveOSS(String hkUrl) { + InputStream inputStream = getImageStream(hkUrl); + if (inputStream != null) { + String picData = ossService.uploadImages(inputStream, ".png",0); + return picData; + } else return ""; + } + + private InputStream getImageStream(String url) { + try { + HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); + connection.setReadTimeout(5000); + connection.setConnectTimeout(5000); + connection.setRequestMethod("GET"); + if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { + InputStream inputStream = connection.getInputStream(); + ByteArrayOutputStream outs = new ByteArrayOutputStream(); + Thumbnails.of(inputStream).scale(0.6).outputQuality(1).toOutputStream(outs); + InputStream ins = new ByteArrayInputStream(outs.toByteArray()); + return ins; + } + } catch (IOException e) { + System.out.println("鑾峰彇缃戠粶鍥剧墖鍑虹幇寮傚父锛屽浘鐗囪矾寰勪负锛�" + url); + + e.printStackTrace(); + } + return null; + } + @Override public List<VideoAndAreaVO> selectType() { return baseCaseMapper.selectType(); -- Gitblit v1.8.0