From a9cc2343ceaad3e99dc25eb036dc99aeded279a6 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 20 Oct 2023 09:26:36 +0800
Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into wb
---
screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java | 254 +++++++++++++++++++++++++++++++++--
screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java | 1
screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java | 1
screen-api/src/main/resources/mapper/SysDictTypeMapper.xml | 12 +
screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java | 2
screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java | 35 ++++
screen-api/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml | 2
screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java | 3
screen-api/src/main/java/com/moral/api/pojo/dto/Wind/WindData.java | 2
screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java | 9 +
screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml | 2
screen-api/src/main/java/com/moral/api/pojo/ext/wind/WindListExt.java | 33 ++++
screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java | 6
screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java | 5
14 files changed, 346 insertions(+), 21 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
index 6b03256..7c477bf 100644
--- a/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java
@@ -113,6 +113,7 @@
/*if(monitorPoint.contains("")){
}*/
+ params.put("monitorPointList", monitorPoint);
String[] monitorPointIds = monitorPoint.split(",");
if (monitorPointIds.length > 3) {
return ResultMessage.ok();
diff --git a/screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java b/screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
index dc70508..c62f910 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
@@ -18,4 +18,7 @@
public interface SysDictTypeMapper extends BaseMapper<SysDictType> {
List<SysDictData> selectCodeList(@Param("code") String code, @Param("id") String id);
+
+
+ List<SysDictData> selectIdList(@Param("code") String code, @Param("ids") List<String> ids);
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/Wind/WindData.java b/screen-api/src/main/java/com/moral/api/pojo/dto/Wind/WindData.java
index 6c56f2d..22a3911 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/dto/Wind/WindData.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/dto/Wind/WindData.java
@@ -17,4 +17,6 @@
//������
private Double windSpeed;
+ private String mac;
+
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
index 7128169..72778ab 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
@@ -22,6 +22,7 @@
SYS_SECOND_CRUISER("ZHC","���������������"),
+ WIND_FARM_SCOPE("WIND","������������"),
;
@EnumValue
diff --git a/screen-api/src/main/java/com/moral/api/pojo/ext/wind/WindListExt.java b/screen-api/src/main/java/com/moral/api/pojo/ext/wind/WindListExt.java
new file mode 100644
index 0000000..0d09867
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/ext/wind/WindListExt.java
@@ -0,0 +1,33 @@
+package com.moral.api.pojo.ext.wind;
+
+import com.moral.api.pojo.vo.file.FileVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @ClassName WindList
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2023-10-17 9:39
+ * @Version 1.0
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class WindListExt {
+ @ApiModelProperty(value = "u������")
+ private List<Double> uList;
+
+ @ApiModelProperty(value = "v������")
+ private List<Double> vList;
+
+ @ApiModelProperty(value = "u������")
+ private Double uValue;
+
+ @ApiModelProperty(value = "v������")
+ private Double vValue;
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java b/screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java
index 4fe53ac..932f5df 100644
--- a/screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java
@@ -20,4 +20,6 @@
List<SysDictData> listAll(String code, String dataKey);
SysDictData listOne(String code, String dataKey);
+
+ List<SysDictData> listWindAll(String code, List<String> dataKey);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
index 19a3c4e..a127858 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
@@ -3,6 +3,8 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.moral.api.config.Interceptor.UserHelper;
import com.moral.api.config.mybatis.MybatisPlusConfig;
import com.moral.api.entity.*;
import com.moral.api.mapper.DeviceMapper;
@@ -11,11 +13,15 @@
import com.moral.api.mapper.HistoryHourlyMapper;
import com.moral.api.pojo.dto.Wind.WindData;
import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO;
+import com.moral.api.pojo.enums.SysDictTypeEnum;
+import com.moral.api.pojo.ext.wind.WindListExt;
import com.moral.api.pojo.form.device.MonitorPointQueryForm;
import com.moral.api.pojo.form.historyFiveMinutely.QueryDeviceAndFiveMinuteDataForm;
+import com.moral.api.pojo.vo.user.QxUser;
import com.moral.api.service.DeviceService;
import com.moral.api.service.HistoryFiveMinutelyService;
import com.moral.api.service.MonitorPointService;
+import com.moral.api.service.SysDictTypeService;
import com.moral.api.utils.UnitConvertUtils;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
@@ -25,12 +31,15 @@
import com.moral.util.RegionCodeUtils;
import io.lettuce.core.GeoCoordinates;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -57,6 +66,8 @@
DeviceService deviceService;
@Autowired
DeviceMapper deviceMapper;
+ @Autowired
+ private SysDictTypeService sysDictTypeService;
@Override
public List<Map<String, Object>> queryDeviceAndFiveMinuteData(QueryDeviceAndFiveMinuteDataForm form) {
@@ -176,7 +187,7 @@
//������������
windData = historyFiveMinutelyMapper.getAreaWindData(params);
}
- return getWindData(windData);
+ return getWindData(windData,params);
}
@@ -309,22 +320,38 @@
map.put("lat", Lat * 180 / Math.PI);
return map;
}
+ private int windDate(String ids){
+ int num = 200;
+ if(StringUtils.isEmpty(ids)){
+ return num;
+ }
+ List<Integer> list = Arrays.asList(ids.split(",")).stream().map(s->Integer.parseInt(s.trim())).collect(Collectors.toList());
+ LambdaQueryChainWrapper<MonitorPoint> wrapper = monitorPointService.lambdaQuery();
+ wrapper.in(MonitorPoint::getId,list);
+ List<MonitorPoint> resultList = wrapper.list();
+ if(CollectionUtils.isEmpty(resultList)){
+ return num;
+ }
+ List<String> integerList = resultList.stream().map(s->s.getOrganizationId().toString()).collect(Collectors.toList());
+ List<SysDictData> sysDictList = sysDictTypeService.listWindAll(SysDictTypeEnum.WIND_FARM_SCOPE.value,integerList);
+ if(CollectionUtils.isEmpty(sysDictList)){
+ return num;
+ }
+ num = sysDictList.stream().mapToInt(s->Integer.parseInt(s.getDataValue())).max().getAsInt();
+ return num;
+ }
- public List<Object> getWindData(List<WindData> windData) {
+ public List<Object> getWindData(List<WindData> windData,Map<String, Object> params) {
List<GeoCoordinates> points = new ArrayList<>();
- int length = 2000;
- int perdlen = 200;
Double loma = 0d;
Double lomi = 0d;
Double lama = 0d;
Double lami = 0d;
List<Double> loList = new ArrayList<>();
List<Double> laList = new ArrayList<>();
+ List<Map<String, Object>> mapList = new ArrayList<>();
Double U;
Double V;
- //���������
- List<Object> list = new ArrayList<>();
- List<Map<String, Object>> mapList = new ArrayList<>();
for (WindData data : windData) {
//������
Double longitude = data.getLongitude();
@@ -353,6 +380,7 @@
map.put("la", latitude);
map.put("U", U);
map.put("V", V);
+ map.put("mac", data.getMac());
mapList.add(map);
}
@@ -372,6 +400,11 @@
laLaMap.put("minLo", lomi);
laLaMap.put("maxLa", lama);
laLaMap.put("minLa", lami);
+
+
+ int perdlen = windDate(Objects.nonNull(params.get("monitorPointList"))?params.get("monitorPointList").toString():null);
+ int length = perdlen*10;
+
Double lo1 = lomi - length * 0.00001141;
//Double lo1 = lomi - length * 0.000001141 * 2;
Double lo2 = loma + length * 0.00001141;
@@ -392,23 +425,27 @@
int nums = Objects.nonNull(nx*ny)?nx*ny+100:100;
List<Double> uList = new ArrayList<>(nums);
List<Double> vList = new ArrayList<>(nums);
+
+
+ for (int j = 0; j < nx * ny; j++) {
+ uList.add(0.0);
+ vList.add(0.0);
+ }
int x;
int y;
-
for (int i = 0; i < mapList.size(); i++) {
-
Double lo = (Double) mapList.get(i).get("lo");
Double la = (Double) mapList.get(i).get("la");
x = (int) Math.floor((lo - lo1) / dx);
y = Math.abs((int) Math.floor((la - la1) / dy));
U = (Double) mapList.get(i).get("U");
V = (Double) mapList.get(i).get("V");
- if (i == 0) {
- for (int j = 0; j < nx * ny; j++) {
- uList.add(0.0);
- vList.add(0.0);
- }
- }
+ // ������������
+ /* WindListExt windListExt = getWindList(mapList.get(i),loList,laList,500,50);
+ if(Objects.nonNull(windListExt)&&Objects.nonNull(windListExt.getUValue()) ){
+ U = windListExt.getUValue();
+ V = windListExt.getVValue();
+ }*/
for (int j = 0; j < nx * ny; j++) {
if (i == 0) {
if ((y >= 2 && j == (y) * nx + x)) {
@@ -446,8 +483,21 @@
}
}
}
-
-
+ /*WindListExt windList = getWindList(length,perdlen,params);
+ for(int i =0; i< windList.getUList().size(); i++){
+ Double d = windList.getUList().get(i);
+ if(Objects.nonNull(d)&& (!d.equals(0d))){
+ uList.set(i,d);
+ }
+ }
+ for(int i =0; i< windList.getVList().size(); i++){
+ Double d = windList.getVList().get(i);
+ if(Objects.nonNull(d)&& (!d.equals(0d))){
+ vList.set(i,d);
+ }
+ }*/
+ /*//���������
+ List<Object> list = new ArrayList<>();
String uData = "\"" + "data" + "\"" + ": " + uList;
String vData = "\"" + "data" + "\"" + ": " + vList;
@@ -471,7 +521,175 @@
list.add(jsonArray);
list.add(centerPoint.get("lng"));
list.add(centerPoint.get("lat"));
- list.add(laLaMap);
+ list.add(laLaMap);*/
+
+ Map<String,Object> map = new HashMap<>();
+ map.put("uList",uList);
+ map.put("vList",vList);
+ map.put("dx",dx);
+ map.put("dy",dy);
+ map.put("nx",nx);
+ map.put("ny",ny);
+ map.put("la1",la1);
+ map.put("la2",la2);
+ map.put("lo1",lo1);
+ map.put("lo2",lo2);
+ map.put("laLaMap",laLaMap);
+ return getWindData(map,centerPoint);
+ }
+
+ private WindListExt getWindList(int length,int perdlen,Map<String, Object> params){
+ params.put("time","2023-10-16 04:00");
+ String time = params.get("time").toString();
+ String timeUnits = DateUtils.stringToDateString(time, "yyyy-MM-dd HH:mm", DateUtils.yyyyMM_EN);
+ params.put("timeUnits", timeUnits);
+ List<WindData> windData = historyHourlyMapper.getArea(params);
+ WindListExt windListExt = new WindListExt();
+ List<String> stringList = Arrays.asList("p5dnd7a0245400","p5dnd7a0245472","p5dnd7a0245374","p5dnd7a0245385");
+ List<GeoCoordinates> points = new ArrayList<>();
+ Double loma = 0d;
+ Double lomi = 0d;
+ Double lama = 0d;
+ Double lami = 0d;
+ List<Double> loList = new ArrayList<>();
+ List<Double> laList = new ArrayList<>();
+ List<Map<String, Object>> mapList = new ArrayList<>();
+ Double U = 0d;
+ Double V = 0d;
+ for (WindData data : windData) {
+ //������
+ Double longitude = data.getLongitude();
+ //������
+ Double latitude = data.getLatitude();
+ GeoCoordinates geoCoordinates = GeoCoordinates.create(longitude, latitude);
+ points.add(geoCoordinates);
+ loList.add(longitude);
+ laList.add(latitude);
+
+ Map<String, Object> map = new HashMap<>();
+ //������
+ Double windDir = data.getWindDir();
+ //������
+ Double windSpeed = data.getWindSpeed();
+ if (windDir == null) {
+ windDir = 0d;
+ windSpeed = 0d;
+ }
+ double dir = (360.0 - (windDir + 180.0) * Math.PI / 180.0);
+ //���������
+ U = windSpeed * Math.cos(dir);
+ //���������������
+ V = windSpeed * Math.sin(dir);
+ if(stringList.contains(data.getMac())){
+ map.put("lo", longitude);
+ map.put("la", latitude);
+ map.put("U", U);
+ map.put("V", V);
+ map.put("mac", data.getMac());
+ mapList.add(map);
+ }
+ }
+ if (loList.size() > 0) {
+ loma = Collections.max(loList);
+ lomi = Collections.min(loList);
+ }
+ if (laList.size() > 0) {
+ lama = Collections.max(laList);
+ lami = Collections.min(laList);
+ }
+ Double lo1 = lomi - length * 0.00001141;
+ Double lo2 = loma + length * 0.00001141;
+ Double la2 = lami - length * 0.00000899;
+ Double la1 = lama + length * 0.00000899;
+ double dx = 0.00001141 * perdlen;
+ double dy = 0.00000899 * perdlen;
+ int nx = (int) Math.floor((lo2 - lo1) / dx);
+ int ny = (int) Math.floor((la1 - la2) / dy);
+ int nums = Objects.nonNull(nx*ny)?nx*ny+100:100;
+ List<Double> uList = new ArrayList<>(nums);
+ List<Double> vList = new ArrayList<>(nums);
+ for (int j = 0; j < nx * ny; j++) {
+ uList.add(0.0);
+ vList.add(0.0);
+ }
+ int x;
+ int y;
+ for (int i = 0; i < mapList.size(); i++) {
+ Double lo = (Double) mapList.get(i).get("lo");
+ Double la = (Double) mapList.get(i).get("la");
+ x = (int) Math.floor((lo - lo1) / dx);
+ y = Math.abs((int) Math.floor((la - la1) / dy));
+ U = (Double) mapList.get(i).get("U");
+ V = (Double) mapList.get(i).get("V");
+
+ for (int j = 0; j < nx * ny; j++) {
+ if (i == 0) {
+ if ((y >= 2 && j == (y) * nx + x)) {
+ int k;
+ for (k = j - 2 * nx; k <= j + 2 * nx; k = k + nx) {
+ uList.set(k, U);
+ uList.set(k - 1, U);
+ uList.set(k - 2, U);
+ uList.set(k + 1, U);
+ uList.set(k + 2, U);
+ vList.set(k, V);
+ vList.set(k - 1, V);
+ vList.set(k - 2, V);
+ vList.set(k + 1, V);
+ vList.set(k + 2, V);
+ }
+ }
+ } else {
+ if (y >= 1 && j == y * nx + x) {
+ int k;
+ for (k = j - 2 * nx; k <= j + 2 * nx; ) {
+ uList.set(k - 1, U);
+ uList.set(k - 2, U);
+ uList.set(k + 1, U);
+ uList.set(k + 2, U);
+ vList.set(k - 1, V);
+ vList.set(k - 2, V);
+ vList.set(k + 1, V);
+ vList.set(k + 2, V);
+ k = k + nx;
+ }
+ uList.set(j, U);
+ vList.set(j, V);
+ }
+ }
+ }
+ }
+ windListExt.setUList(uList);
+ windListExt.setVList(vList);
+ return windListExt;
+ }
+
+ private List<Object> getWindData(Map<String,Object> map, Map<String, Double> centerPoint){
+ List<Object> list = new ArrayList<>();
+ String uData = "\"" + "data" + "\"" + ": " + map.get("uList");
+ String vData = "\"" + "data" + "\"" + ": " + map.get("vList");
+
+ String header1 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 2 +
+ ", " + "\"" + "dx" + "\"" + ": " + map.get("dx") + ", " + "\"" + "dy" + "\"" + ": " + map.get("dy") +
+ ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + map.get("la1") + ", " + "\"" + "la2" + "\"" + ": " + map.get("la2") +
+ ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + map.get("lo1") + ", " + "\"" + "lo2" + "\"" + ": " + map.get("lo2") +
+ ", " + "\"" + "nx" + "\"" + ": " + map.get("nx") + ", " + "\"" + "ny" + "\"" + ": " + map.get("ny") + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}";
+
+ String header2 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 3 +
+ ", " + "\"" + "dx" + "\"" + ": " + map.get("dx") + ", " + "\"" + "dy" + "\"" + ": " + map.get("dy") +
+ ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + map.get("la1") + ", " + "\"" + "la2" + "\"" + ": " + map.get("la2") +
+ ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + map.get("lo1") + ", " + "\"" + "lo2" + "\"" + ": " + map.get("lo2") +
+ ", " + "\"" + "nx" + "\"" + ": " + map.get("nx") + ", " + "\"" + "ny" + "\"" + ": " + map.get("ny") + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}";
+
+
+ String s1 = "[" + "{" + header1 + ", " + uData + "}" + ", " + "{" + header2 + ", " + vData + "}" + "]";
+ //System.out.println(s1);
+ JSONArray jsonArray = JSONArray.parseArray(s1);
+
+ list.add(jsonArray);
+ list.add(centerPoint.get("lng"));
+ list.add(centerPoint.get("lat"));
+ list.add(map.get("laLaMap"));
return list;
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
index b16ba1d..55b0461 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
@@ -524,6 +524,37 @@
if(CollectionUtils.isEmpty(historyDailyByMacAndTimeSlot)){
return list;
}
+ //������������������ ������ p5dnd7a0000001 -������ p5dnd7a0000002 -������ p5dnd7a0000003
+ List<String> hzRoad = Arrays.asList("p5dnd7a0245491","p5dnd7a0392159","p5dnd7a0243605","p5dnd7a0392176");
+ List<String> xtRoad = Arrays.asList("p5dnd7a0243603","p5dnd7a0391986","p5dnd7a0392003","p5dnd7a0392144","p5dnd7a0392167","p5dnd7a0391990");
+ List<String> xhRoad = Arrays.asList("p5dnd7a0392158","p5dnd7a0392173","p5dnd7a0391975","p5dnd7a0392153","p5dnd7a0391961","p5dnd7a0243608","p5dnd7a0243618");
+ List<HistoryDaily> hcHz= new ArrayList<>();
+ List<HistoryDaily> xtHz= new ArrayList<>();
+ List<HistoryDaily> xhHz= new ArrayList<>();
+ for(HistoryDaily h : historyDailyByMacAndTimeSlot) {
+ HistoryDaily historyDaily = new HistoryDaily();
+ historyDaily.setTime( h.getTime());
+ historyDaily.setValue(h.getValue());
+ if(hzRoad.contains(h.getMac())){
+ historyDaily.setMac("p5dnd7a0000001");
+ hcHz.add(historyDaily);
+ }else if(xtRoad.contains(h.getMac())){
+ historyDaily.setMac("p5dnd7a0000002");
+ xtHz.add(historyDaily);
+ }else if(xhRoad.contains(h.getMac())){
+ historyDaily.setMac("p5dnd7a0000003");
+ xhHz.add(historyDaily);
+ }
+ }
+ if(CollectionUtils.isNotEmpty(hcHz)){
+ historyDailyByMacAndTimeSlot.addAll(hcHz);
+ }
+ if(CollectionUtils.isNotEmpty(xtHz)){
+ historyDailyByMacAndTimeSlot.addAll(xtHz);
+ }
+ if(CollectionUtils.isNotEmpty(xhHz)){
+ historyDailyByMacAndTimeSlot.addAll(xhHz);
+ }
Map<String,Map<String,ArrayList<Double>>> resultMap = new HashMap<>();
for(HistoryDaily h : historyDailyByMacAndTimeSlot) {
JSONObject jsonObject = JSONObject.parseObject(h.getValue());
@@ -657,7 +688,9 @@
wrapper.eq(Device::getIsDelete,0);
Map<String,String> deviceMap = new HashMap<>();
wrapper.list().forEach(it->deviceMap.put(it.getMac(),it.getName()));
-
+ deviceMap.put("p5dnd7a0000001","������������������");
+ deviceMap.put("p5dnd7a0000002","������������������");
+ deviceMap.put("p5dnd7a0000003","������������������");
for (MonitoringStationDTO m :compositeListResult ){
MonitoringStationDTO monit = new MonitoringStationDTO();
String mac = m.getMac();
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
index aff701a..088bc46 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -37,4 +37,10 @@
sysDictData.setDataValue("0");
return sysDictData;
}
+
+ @Override
+ public List<SysDictData> listWindAll(String code, List<String> dataKey) {
+ List<SysDictData> listAll = this.baseMapper.selectIdList(code,dataKey);
+ return listAll;
+ }
}
diff --git a/screen-api/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml b/screen-api/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
index 360ff73..ffb0a1b 100644
--- a/screen-api/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
+++ b/screen-api/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
@@ -6,7 +6,7 @@
<select id="getAreaWindData" resultType="com.moral.api.pojo.dto.Wind.WindData">
SELECT
d.longitude AS longitude,
- d.latitude AS latitude,
+ d.latitude AS latitude,d.mac,
CASE WHEN
h.value->'$.a01007' = 0 THEN 0.1 ELSE h.value->'$.a01007' END AS windSpeed,
h.value->'$.a01008' AS windDir
diff --git a/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml b/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml
index 61ab41c..fbb6c7e 100644
--- a/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml
+++ b/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -38,7 +38,7 @@
<select id="getArea" resultType="com.moral.api.pojo.dto.Wind.WindData">
SELECT
d.longitude AS longitude,
- d.latitude AS latitude,
+ d.latitude AS latitude,d.mac,
CASE WHEN
h.value->'$.a01007' = 0 THEN 0.1 ELSE h.value->'$.a01007' END AS windSpeed,
h.value->'$.a01008' AS windDir
diff --git a/screen-api/src/main/resources/mapper/SysDictTypeMapper.xml b/screen-api/src/main/resources/mapper/SysDictTypeMapper.xml
index 532320f..e438644 100644
--- a/screen-api/src/main/resources/mapper/SysDictTypeMapper.xml
+++ b/screen-api/src/main/resources/mapper/SysDictTypeMapper.xml
@@ -18,4 +18,16 @@
where t.is_delete = 0 and t.name = #{code} and t1.dataKey = #{id} and t1.is_delete = 0
order by t1.create_time desc
</select>
+
+ <select id="selectIdList" resultType="com.moral.api.entity.SysDictData">
+ select DISTINCT t1.id,t1.dict_type_id,t1.dataKey,t1.dataValue from sys_dict_type t
+ left join sys_dict_data t1 on t1.dict_type_id = t.id
+ where t.is_delete = 0 and t.name = #{code} and
+ t1.dataKey in
+ <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
+ #{id}
+ </foreach>
+ and t1.is_delete = 0
+ order by t1.create_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
index 89b410e..f0cb4d7 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
@@ -661,6 +661,15 @@
return "##"+s+result+s1+"\r\n";
}
+ public static void main(String[] args) {
+ String result = "QN=20231019000100001;ST=31;CN=2051;PW=123456;MN=P5DND7A0392082;Flag=4;CP=&&DataTime=20231019000100;a01001-Avg=25.0,a01001-Flag=N;a01002-Avg=61.0,a01002-Flag=N;a34004-Avg=19.3,a34004-Flag=N;a34002-Avg=38.5,a34002-Flag=N;a34001-Avg=41.2,a34001-Flag=N;a01007-Avg=0.00,a01007-Flag=N;a01008-Avg=137.53,a01008-Flag=N;a01006-Avg=4255.774,a01006-Flag=T;a00e13-Avg=39.2,a00e13-Flag=N&&";
+
+ String s = Crc16Utils.padLeftTest(String.valueOf(result.length()),4,null);
+ String s1 = Crc16Utils.crc16_2017(result, result.length());
+ System.out.println("##"+s+result+s1+"\r\n");
+ int i = 0;
+ }
+
private static String sendSocket(String host, Integer port, String message) {
log.debug("���������������{}������������{}������������{}", host, port, message);
Socket socket = null;
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java
index 1e3f9d4..b238e39 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java
@@ -324,6 +324,7 @@
@Transactional
public Map<String, Object> updateAllAdjust(List<AdjustForm> paras) {
Map<String,Object> resultMap = new HashMap<>();
+ StringBuffer buffer = new StringBuffer();
for (AdjustForm adjustForm : paras) {
DeviceAdjustValue deviceAdjustValue = new DeviceAdjustValue();
QueryWrapper<DeviceAdjustValue> wrapper1 = new QueryWrapper<>();
@@ -346,12 +347,16 @@
deviceAdjustValue.setId(adjustForm.getId());
deviceAdjustValueMapper.updateById(deviceAdjustValue);
}
+ buffer.append("mac: "+adjustForm.getMac()).append(", value: "+adjustForm.getAgehou()+"; ");
//������������
refreshCache(adjustForm.getMac());
}
resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
+ //������������
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+ LogUtils.saveOperationForManage(request,"���������������������: "+buffer.toString(),Constants.UPDATE_OPERATE_TYPE);
return resultMap;
}
--
Gitblit v1.8.0