From d268f82d25c25ebdc7a1ea30614f6cda6d3a9ae3 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 10 十月 2024 16:31:41 +0800
Subject: [PATCH] win库+大屏考核指标查询bug
---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 35 +++++++++++++++++++++--------------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index b9edc3a..dad7b84 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -56,6 +56,11 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
+import javax.imageio.ImageIO;
+import javax.swing.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
@@ -298,14 +303,14 @@
@Override
public Result add(WorkOrderForm form) {
//鏌edis浠婃棩宸ュ崟鏁伴噺
- int workOrderNum = 1;
+ int workOrderNum = 0;
//UUID浣滀负value锛屼繚璇佷笂閿佺殑绾跨▼鑷繁瑙i攣
String requestId = IdUtils.fastSimpleUUID();
boolean result = redisCache.acquireLock(RedisConstant.WORKORDER_NUM_LOCK, requestId, 10000);
if (result) {
//鏌ヤ粖鏃ュ伐鍗曢噺
Object redisNum = redisCache.getCacheObject(RedisConstant.WORKORDER_NUM);
- workOrderNum = redisNum == null ? 1 : (Integer) redisNum;
+ workOrderNum = redisNum == null ? 0 : (Integer) redisNum;
workOrderNum++;
redisCache.setCacheObject(RedisConstant.WORKORDER_NUM, workOrderNum);
redisCache.releaseLock(RedisConstant.WORKORDER_NUM_LOCK, requestId);
@@ -758,9 +763,10 @@
@Override
- public String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) {
+ public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception {
String url = String.format(this.rtspServer + "/api/play/start/%s/%s", deviceId, channelId);
String result = HttpUtils.sendGet(url);
+ log.info("鎷垮埌鍙栨祦鍝嶅簲缁撴灉锛�" + result);
WVPResult wvpResult = JSON.parseObject(result, WVPResult.class);
String imgUrl = null;
if (wvpResult.getCode() == 0) {
@@ -770,7 +776,9 @@
System.out.println("鐩爣鍦板潃锛�" + rtspUrl);
FFmpegFrameGrabber grabber = null;
try {
- grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
+ grabber = new FFmpegFrameGrabber(rtspUrl);
+// grabber.setOption("rtsp_transport", "tcp"); // 浣跨敤tcp鐨勬柟寮忥紝涓嶇劧浼氫涪鍖呭緢涓ラ噸
+// grabber.setVideoOption("probesize", "10000"); // 璁剧疆鎹曡幏鍒嗘瀽鐨勬渶澶у瓧鑺�
grabber.start();
Frame frame = grabber.grabImage(); // 鐩存帴鎹曡幏涓�甯�
if (frame != null) {
@@ -789,13 +797,12 @@
} else {
System.out.println("鏈崟鑾峰埌甯�");
}
- } catch (Exception e) {
+ } catch (FrameGrabber.Exception e) {
e.printStackTrace();
} finally {
if (grabber != null) {
try {
grabber.stop(); // 鍋滄鎹曡幏
- grabber.release();
} catch (FrameGrabber.Exception e) {
e.printStackTrace();
}
@@ -803,21 +810,21 @@
}
}
} else {
- System.out.println("璇锋眰澶辫触锛岄敊璇爜锛�" + wvpResult.getCode());
+ System.out.println("璇锋眰澶辫触锛岄敊璇爜锛�" + wvpResult.getCode() + "--" + wvpResult.getMsg());
}
System.out.println("鍥剧墖URL锛�" + imgUrl);
return imgUrl;
}
@Override
- public void saveFrameImgByDevice(String deviceId, String channelId, String workOrderNo) {
+ public void saveFrameImgByDevice (String deviceId, String channelId, String workOrderNo){
String url = String.format(this.rtspServer + "/api/play/start/%s/%s", deviceId, channelId);
String result = HttpUtils.sendGet(url);
WVPResult wvpResult = JSON.parseObject(result, WVPResult.class);
String imgUrl = null;
if (wvpResult.getCode() == 0) {
JSONObject data = (JSONObject) wvpResult.getData();
- String rtspUrl = data.getString("fmp4"); // 鍙杕p4鍦板潃
+ String rtspUrl = data.getString("rtsp"); // 鍙杕p4鍦板潃
if (StringUtils.hasText(rtspUrl)) {
System.out.println("鐩爣鍦板潃锛�" + rtspUrl);
FFmpegFrameGrabber grabber = null;
@@ -871,13 +878,13 @@
}
@Override
- public List<DeviceInfoVO> hasErrorWorkOrderList(Date start, Date end) {
+ public List<DeviceInfoVO> hasErrorWorkOrderList (Date start, Date end){
List<DeviceInfoVO> list = baseMapper.hasErrorWorkOrderList(start, end);
return list;
}
@Override
- public void updateImgById(Integer workOrderId, String imgPath) {
+ public void updateImgById (Integer workOrderId, String imgPath){
new LambdaUpdateChainWrapper<>(baseMapper)
.eq(WorkOrder::getId, workOrderId)
.set(WorkOrder::getYwCheckResult, imgPath)
@@ -885,7 +892,7 @@
}
@Override
- public Result processImg(String workOrderNo) {
+ public Result processImg (String workOrderNo){
WorkOrder workOrder = new LambdaQueryChainWrapper<>(baseMapper)
.eq(WorkOrder::getWorkOrderNo, workOrderNo)
.one();
@@ -926,7 +933,7 @@
}
@Override
- public Result detailByNo(String workOrderNo) {
+ public Result detailByNo (String workOrderNo){
WorkOrderDetailVO workOrder = baseMapper.detailByNo(workOrderNo);
// 鏄惁鎶ュ
boolean hasReport = new LambdaQueryChainWrapper<>(reportMapper)
@@ -948,7 +955,7 @@
}
@Override
- public List<WorkOrderVO> export(WorkOrderExportQuery query) {
+ public List<WorkOrderVO> export (WorkOrderExportQuery query){
query.setUnitId(SecurityUtils.getUnitId());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (query.getStart() == null) {
--
Gitblit v1.8.0