|
|
@@ -10,7 +10,6 @@ package vip.xiaonuo.coldchain.modular.app.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
-import cn.hutool.core.date.StopWatch;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
@@ -20,15 +19,12 @@ import com.github.jfcloud.influxdb.flux.AggregationWindow;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.itextpdf.io.image.ImageData;
|
|
|
import com.itextpdf.io.image.ImageDataFactory;
|
|
|
-import com.itextpdf.kernel.pdf.PdfObject;
|
|
|
-import com.itextpdf.kernel.pdf.WriterProperties;
|
|
|
-import com.itextpdf.layout.element.Image;
|
|
|
-import com.itextpdf.kernel.colors.ColorConstants;
|
|
|
import com.itextpdf.kernel.font.PdfFont;
|
|
|
import com.itextpdf.kernel.font.PdfFontFactory;
|
|
|
import com.itextpdf.kernel.geom.PageSize;
|
|
|
import com.itextpdf.kernel.pdf.PdfDocument;
|
|
|
import com.itextpdf.kernel.pdf.PdfWriter;
|
|
|
+import com.itextpdf.kernel.pdf.WriterProperties;
|
|
|
import com.itextpdf.layout.Document;
|
|
|
import com.itextpdf.layout.element.*;
|
|
|
import com.itextpdf.layout.properties.HorizontalAlignment;
|
|
|
@@ -38,10 +34,10 @@ import jakarta.annotation.Resource;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.checkerframework.checker.units.qual.C;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
|
|
|
+import vip.xiaonuo.coldchain.core.alarm.service.delay.DeviceAlertDelayService;
|
|
|
import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
|
|
|
import vip.xiaonuo.coldchain.core.service.JfcloudSensorDataService;
|
|
|
import vip.xiaonuo.coldchain.modular.app.dto.AppInfo;
|
|
|
@@ -60,25 +56,22 @@ import vip.xiaonuo.common.exception.CommonException;
|
|
|
import vip.xiaonuo.dev.modular.config.entity.DevConfig;
|
|
|
import vip.xiaonuo.dev.modular.config.service.DevConfigService;
|
|
|
|
|
|
-import java.io.*;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.OutputStream;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.text.DecimalFormat;
|
|
|
-import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.*;
|
|
|
import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
-import java.util.concurrent.ExecutionException;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
import java.util.function.Consumer;
|
|
|
import java.util.function.Supplier;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
-import java.util.stream.IntStream;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
@@ -88,6 +81,7 @@ public class AppDeviceService {
|
|
|
private final MonitorTargetRegionService monitorTargetRegionService;
|
|
|
private final JfcloudSensorDataService jfcloudSensorDataService;
|
|
|
private final MonitorDeviceService monitorDeviceService;
|
|
|
+ private final DeviceAlertDelayService delayService;
|
|
|
@Resource
|
|
|
DevConfigService devConfigService;
|
|
|
|
|
|
@@ -127,6 +121,7 @@ public class AppDeviceService {
|
|
|
appDevice.setMonitorTargetRegionList(null);
|
|
|
// 获取当前监控目标的 ID,用于查询子设备数据
|
|
|
String monitorTargetId = monitorTarget.getId();
|
|
|
+ appDevice.setDelayInfo(delayService.isAlertDelayed(monitorTargetId,null));
|
|
|
// 获取当前监控目标下的所有监控区域(子设备数据)
|
|
|
List<MonitorTargetRegion> monitorTargetRegions = monitorTargetRegionService.getRegionListByTargetId(monitorTargetId);
|
|
|
// 如果监控目标下存在区域(即有子设备)
|
|
|
@@ -148,6 +143,7 @@ public class AppDeviceService {
|
|
|
// 传感器路数
|
|
|
Integer sensorRoute = appDeviceData.getSensorRoute();
|
|
|
if (!Objects.isNull(sensorRoute) && StrUtil.isNotBlank(deviceCode)) {
|
|
|
+ appDeviceData.setDelayInfo(delayService.isAlertDelayed(monitorTargetId, sensorRoute));
|
|
|
SensorData sensorData = monitorDeviceService.queryLatestDataByDeviceIdAndRoads(deviceCode, sensorRoute);
|
|
|
if (!Objects.isNull(sensorData)) {
|
|
|
appDeviceData.setBatteryPercentage(sensorData.getBattery());
|