From 81d863041143bce34c8fafc0215a11e571833b6d Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 05 一月 2026 18:07:31 +0800
Subject: [PATCH] 规则调整
---
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 88 insertions(+), 5 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 9a13aa8..4ae23bf 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;
@@ -97,6 +110,28 @@
Violations violations = new Violations();
VideoPoint videoPoint = videoPointService.getByCode(videoAlarmReport.getPlatResourceId());
if (videoPoint != null) {
+
+//鎴戞潵鍒嗘瀽涓�涓嬭繖涓潯浠跺垽鏂�傛牴鎹敞閲�"鍛ㄤ竴鑷冲懆浜斾笂鍗�8锛�30-12锛�00 涓嬪崍2锛�00-17锛�00锛屽鐞嗘浠讹紝鍏朵粬鏃堕棿涓嶅鐞�"锛岄渶瑕佷慨鏀瑰垽鏂潯浠舵潵姝g‘璇嗗埆闈炲伐浣滄椂闂淬��
+//
+//褰撳墠浠g爜鍙垽鏂簡灏忔椂锛屼絾闇�瑕侊細
+//1. 鍒ゆ柇鏄惁涓哄懆涓�鑷冲懆浜�
+//2. 鍒ゆ柇鏄惁鍦ㄥ伐浣滄椂闂存鍐咃紙涓婂崍8:30-12:00锛屼笅鍗�14:00-17:00锛�
+
+ // 鍛ㄤ竴鑷冲懆浜斾笂鍗�8锛�30-12锛�00 涓嬪崍2锛�00-17锛�00锛屽鐞嗘浠讹紝鍏朵粬鏃堕棿涓嶅鐞�
+ LocalDateTime alarmTime = videoAlarmReport.getAlarmTime();
+ int hour = alarmTime.getHour();
+ int minute = alarmTime.getMinute();
+ int dayOfWeek = alarmTime.getDayOfWeek().getValue(); // 1=鍛ㄤ竴, 7=鍛ㄦ棩
+
+ boolean isWeekday = dayOfWeek >= 1 && dayOfWeek <= 5;
+ boolean isMorningShift = hour == 8 && minute >= 30 || hour > 8 && hour < 12;
+ boolean isAfternoonShift = hour >= 14 && hour < 17;
+
+ // 濡傛灉涓嶆槸宸ヤ綔鏃ユ垨涓嶅湪宸ヤ綔鏃堕棿娈靛唴锛屽垯涓嶅鐞�
+ if (!isWeekday || !(isMorningShift || isAfternoonShift)) {
+ baseCase.setState(4);
+ }
+
baseCase.setLatitude(videoPoint.getLatitude());
baseCase.setLongitude(videoPoint.getLongitude());
baseCase.setStreetId(videoPoint.getStreetId());
@@ -120,10 +155,16 @@
try {
ImageResources imageResources = new ImageResources();
- imageResources.setType("01");
+ imageResources.setType("05");
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());
@@ -146,6 +187,12 @@
.code(utilNumber.createCaseCode()).createTime(LocalDateTime.now()).createUser(0L).state(1).
alarmTime(alarmTime).build();
Violations violations = new Violations();
+
+ // 鏃堕棿瓒呰繃17鐐规垨鑰�12-14鐐逛笉澶勭悊锛屾浠朵负涓嶅鐞�
+ if (alarmTime.getHour() >= 17 ||
+ (alarmTime.getHour() < 14 && alarmTime.getHour() >= 12)) {
+ baseCase.setState(4);
+ }
baseCase.setLatitude(alarmParam.getLatitude());
baseCase.setLongitude(alarmParam.getLongitude());
@@ -172,8 +219,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());
@@ -187,12 +236,17 @@
try {
for (int i = 0; i < imgs.length; i++) {
ImageResources imageResources = new ImageResources();
- imageResources.setType("01");
+ 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 +254,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