组态数据传输功能

This commit is contained in:
2023-06-15 09:44:20 +08:00
parent 38ca57c790
commit 83b6087427
5 changed files with 103 additions and 3 deletions

View File

@@ -23,6 +23,7 @@
<select id="getData" resultType="DataArrayDTO"> <select id="getData" resultType="DataArrayDTO">
select select
t1.id dataSetId,
t1.another_name dataSetName, t1.another_name dataSetName,
t0.name dataArrayName, t0.name dataArrayName,
t0.another_name dataArrayShowName, t0.another_name dataArrayShowName,
@@ -36,7 +37,7 @@
<foreach collection='list' item='item' index="index" open='(' separator=',' close=')'> <foreach collection='list' item='item' index="index" open='(' separator=',' close=')'>
#{item} #{item}
</foreach> </foreach>
group by t1.another_name,t0.name,t0.another_name group by t1.id,t1.another_name,t0.name,t0.another_name
order by convert (substring_index(group_concat(distinct t0.sort),',',-1),unsigned) order by convert (substring_index(group_concat(distinct t0.sort),',',-1),unsigned)
</select> </select>

View File

@@ -39,10 +39,10 @@ public class CsDataArrayServiceImpl extends ServiceImpl<CsDataArrayMapper, CsDat
map.forEach((k,v)->{ map.forEach((k,v)->{
List<DataArrayTreeVO> list2 = new ArrayList<>(); List<DataArrayTreeVO> list2 = new ArrayList<>();
DataArrayTreeVO vo1 = new DataArrayTreeVO(); DataArrayTreeVO vo1 = new DataArrayTreeVO();
vo1.setId("0");
vo1.setName(k); vo1.setName(k);
vo1.setShowName(k); vo1.setShowName(k);
v.forEach(item->{ v.forEach(item->{
vo1.setId(item.getDataSetId());
DataArrayTreeVO vo2 = new DataArrayTreeVO(); DataArrayTreeVO vo2 = new DataArrayTreeVO();
List<DataArrayTreeVO> list3 = new ArrayList<>(); List<DataArrayTreeVO> list3 = new ArrayList<>();
vo2.setId("1"); vo2.setId("1");

View File

@@ -0,0 +1,65 @@
package com.njcn.csharmonic.pojo.dto;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/14 20:07
*/
@Data
public class ZuTaiDTO {
@SerializedName("id")
private String id;
@SerializedName("title")
private String title;
@SerializedName("type")
private String type;
@SerializedName("display")
private Boolean display;
@SerializedName("typeName")
private String typeName;
@SerializedName("svgColor")
private String svgColor;
@SerializedName("svgPositionX")
private Integer svgPositionX;
@SerializedName("svgPositionY")
private Integer svgPositionY;
@SerializedName("echartsOption")
private String echartsOption;
@SerializedName("list")
private String list;
@SerializedName("tableHeader")
private String tableHeader;
@SerializedName("size")
private Integer size;
@SerializedName("angle")
private Integer angle;
@SerializedName("lineId")
private String lineId;
@SerializedName("UID")
private List<String> uId;
@SerializedName("UName")
private String target;
}

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.vo.DataArrayTreeVO; import com.njcn.csdevice.pojo.vo.DataArrayTreeVO;
import com.njcn.csharmonic.service.ILineTargetService; import com.njcn.csharmonic.service.ILineTargetService;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;

View File

@@ -1,10 +1,14 @@
package com.njcn.csharmonic.service.impl; package com.njcn.csharmonic.service.impl;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.google.common.reflect.TypeToken;
import com.njcn.csdevice.api.*; import com.njcn.csdevice.api.*;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDevModelPO; import com.njcn.csdevice.pojo.po.CsDevModelPO;
import com.njcn.csdevice.pojo.po.CsDevModelRelationPO; import com.njcn.csdevice.pojo.po.CsDevModelRelationPO;
import com.njcn.csdevice.pojo.vo.DataArrayTreeVO; import com.njcn.csdevice.pojo.vo.DataArrayTreeVO;
import com.njcn.csdevice.pojo.vo.LineTargetVO; import com.njcn.csdevice.pojo.vo.LineTargetVO;
import com.njcn.csharmonic.pojo.dto.ZuTaiDTO;
import com.njcn.csharmonic.service.CsPagePOService; import com.njcn.csharmonic.service.CsPagePOService;
import com.njcn.csharmonic.service.ILineTargetService; import com.njcn.csharmonic.service.ILineTargetService;
import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.pojo.dto.StatisticalDataDTO;
@@ -14,9 +18,12 @@ import com.njcn.system.api.EpdFeignClient;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -73,10 +80,35 @@ public class LineTargetServiceImpl implements ILineTargetService {
List<StatisticalDataDTO> result = new ArrayList<>(); List<StatisticalDataDTO> result = new ArrayList<>();
String path = csPagePOService.queryById(id).getPath(); String path = csPagePOService.queryById(id).getPath();
InputStream inputStream = fileStorageUtil.getFileStream(path); InputStream inputStream = fileStorageUtil.getFileStream(path);
List<ZuTaiDTO> list = analysisJson(inputStream);
list.forEach(item->{
if (!Objects.isNull(item.getTarget())){
String lineId = item.getLineId();
String targetTag = item.getTarget().split("\\$")[0];
String phasic = item.getTarget().split("\\$")[1];
String dataType = item.getTarget().split("\\$")[2];
CsDataArray dataArray = dataArrayFeignClient.getDataArrayById(item.getUId().get(0),targetTag).getData().get(0);
String targetName = dataArray.getAnotherName();
String dataId = dataArray.getDataId();
String classId = epdFeignClient.selectById(dataId).getData().getClassId();
result.add(getLineRtData(lineId,classId,targetTag,phasic,dataType,targetName));
}
});
return result; return result;
} }
/**
* 解析json文件
*/
public List<ZuTaiDTO> analysisJson(InputStream inputStream) {
Gson gson = new Gson();
String text = new BufferedReader(
new InputStreamReader(inputStream, StandardCharsets.UTF_8))
.lines()
.collect(Collectors.joining("\n"));
return gson.fromJson(text, new TypeToken<List<ZuTaiDTO>>(){}.getType());
}
/** /**
* 通过orm框架获取数据 * 通过orm框架获取数据
* @param lineId 监测点Id * @param lineId 监测点Id
@@ -99,6 +131,7 @@ public class LineTargetServiceImpl implements ILineTargetService {
statisticalDataDTO.setValue(BigDecimal.valueOf(statisticalDataDTO.getValue()).setScale(4, RoundingMode.UP).doubleValue()); statisticalDataDTO.setValue(BigDecimal.valueOf(statisticalDataDTO.getValue()).setScale(4, RoundingMode.UP).doubleValue());
} }
statisticalDataDTO.setStatisticalName(target); statisticalDataDTO.setStatisticalName(target);
statisticalDataDTO.setTarget(columnName + "$" + phasic + "$" + dataType);
return statisticalDataDTO; return statisticalDataDTO;
} }
} }