|
|
@@ -1,10 +1,14 @@
|
|
|
package com.dcs.equipment.service.impl;
|
|
|
|
|
|
-import com.dcs.dcs.service.IDcsEquipmentService;
|
|
|
+import com.dcs.equipment.constants.FluxConstants;
|
|
|
+import com.dcs.equipment.domain.InfluxDBQuery;
|
|
|
import com.dcs.equipment.domain.vo.DataTwinEquipmentVO;
|
|
|
+import com.dcs.equipment.domain.vo.DataTwinInfluxDBVO;
|
|
|
import com.dcs.equipment.service.DataTwinService;
|
|
|
+import com.dcs.equipment.service.InfluxDBService;
|
|
|
import com.dcs.equipment.service.ModbusTcpService;
|
|
|
import com.dcs.hnyz.domain.vo.EquipmentParamFormVo;
|
|
|
+import com.influxdb.query.FluxTable;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -21,35 +25,156 @@ public class DataTwinServiceImpl implements DataTwinService {
|
|
|
@Autowired
|
|
|
private ModbusTcpService modbusTcpService;
|
|
|
@Autowired
|
|
|
- private IDcsEquipmentService dcsEquipmentService;
|
|
|
+ private InfluxDBService influxDBService;
|
|
|
|
|
|
@Override
|
|
|
- public List<DataTwinEquipmentVO> selectDataTwinList() {
|
|
|
+ public List<DataTwinInfluxDBVO> queryTemperatureByDay() {
|
|
|
+ // 构建查询条件
|
|
|
+ InfluxDBQuery query = new InfluxDBQuery();
|
|
|
+ query.setBucket("shanghai_dcs_bucket");
|
|
|
+ query.setMeasurement("data");
|
|
|
+ query.setTimeRangeStart(FluxConstants.TIME_ONE_DAY);
|
|
|
+ query.setWindowPeriod("4h");
|
|
|
+ query.setAggregateFunction(FluxConstants.AGGREGATE_FUNCTION_FIRST);
|
|
|
+ query.setFields(new String[]{"S2wdsj", "S1wdsj"});
|
|
|
+ query.setFill(0.0d);
|
|
|
+ // 查询数据
|
|
|
+ List<FluxTable> fluxTables = influxDBService.queryWithFlux(query);
|
|
|
+ // 数据列表
|
|
|
+ List<DataTwinInfluxDBVO> dataTwinInfluxDBVOList = new ArrayList<>();
|
|
|
+ // S1
|
|
|
+ FluxTable S1FluxTable = fluxTables.get(0);
|
|
|
+ DataTwinInfluxDBVO S1InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S1InfluxDBVO.setName("S1");
|
|
|
+ S1InfluxDBVO.fillItems(S1FluxTable.getRecords());
|
|
|
+ // S2
|
|
|
+ FluxTable S2FluxTable = fluxTables.get(1);
|
|
|
+ DataTwinInfluxDBVO S2InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S2InfluxDBVO.setName("S2");
|
|
|
+ S2InfluxDBVO.fillItems(S2FluxTable.getRecords());
|
|
|
+ // 添加到列表中
|
|
|
+ dataTwinInfluxDBVOList.add(S1InfluxDBVO);
|
|
|
+ dataTwinInfluxDBVOList.add(S2InfluxDBVO);
|
|
|
+ return dataTwinInfluxDBVOList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DataTwinInfluxDBVO> queryTemperatureByWeek() {
|
|
|
+ // 构建查询条件
|
|
|
+ InfluxDBQuery query = new InfluxDBQuery();
|
|
|
+ query.setBucket("shanghai_dcs_bucket");
|
|
|
+ query.setMeasurement("data");
|
|
|
+ query.setTimeRangeStart(FluxConstants.TIME_ONE_WEEK);
|
|
|
+ query.setWindowPeriod("28h");
|
|
|
+ query.setAggregateFunction(FluxConstants.AGGREGATE_FUNCTION_FIRST);
|
|
|
+ query.setFields(new String[]{"S2wdsj", "S1wdsj"});
|
|
|
+ // 查询数据
|
|
|
+ List<FluxTable> fluxTables = influxDBService.queryWithFlux(query);
|
|
|
+ // 数据列表
|
|
|
+ List<DataTwinInfluxDBVO> dataTwinInfluxDBVOList = new ArrayList<>();
|
|
|
+ // S1
|
|
|
+ FluxTable S1FluxTable = fluxTables.get(0);
|
|
|
+ DataTwinInfluxDBVO S1InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S1InfluxDBVO.setName("S1");
|
|
|
+ S1InfluxDBVO.fillItems(S1FluxTable.getRecords());
|
|
|
+ // S2
|
|
|
+ FluxTable S2FluxTable = fluxTables.get(1);
|
|
|
+ DataTwinInfluxDBVO S2InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S2InfluxDBVO.setName("S2");
|
|
|
+ S2InfluxDBVO.fillItems(S2FluxTable.getRecords());
|
|
|
+ // 添加到列表中
|
|
|
+ dataTwinInfluxDBVOList.add(S1InfluxDBVO);
|
|
|
+ dataTwinInfluxDBVOList.add(S2InfluxDBVO);
|
|
|
+ return dataTwinInfluxDBVOList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DataTwinInfluxDBVO> queryTemperatureByMonth() {
|
|
|
+ // 构建查询条件
|
|
|
+ InfluxDBQuery query = new InfluxDBQuery();
|
|
|
+ query.setBucket("shanghai_dcs_bucket");
|
|
|
+ query.setMeasurement("data");
|
|
|
+ query.setTimeRangeStart(FluxConstants.TIME_ONE_MONTH);
|
|
|
+ query.setWindowPeriod("5d");
|
|
|
+ query.setAggregateFunction(FluxConstants.AGGREGATE_FUNCTION_FIRST);
|
|
|
+ query.setFields(new String[]{"S2wdsj", "S1wdsj"});
|
|
|
+ // 查询数据
|
|
|
+ List<FluxTable> fluxTables = influxDBService.queryWithFlux(query);
|
|
|
+ // 数据列表
|
|
|
+ List<DataTwinInfluxDBVO> dataTwinInfluxDBVOList = new ArrayList<>();
|
|
|
+ // S1
|
|
|
+ FluxTable S1FluxTable = fluxTables.get(0);
|
|
|
+ DataTwinInfluxDBVO S1InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S1InfluxDBVO.setName("S1");
|
|
|
+ S1InfluxDBVO.fillItems(S1FluxTable.getRecords());
|
|
|
+ // S2
|
|
|
+ FluxTable S2FluxTable = fluxTables.get(1);
|
|
|
+ DataTwinInfluxDBVO S2InfluxDBVO = new DataTwinInfluxDBVO();
|
|
|
+ S2InfluxDBVO.setName("S2");
|
|
|
+ S2InfluxDBVO.fillItems(S2FluxTable.getRecords());
|
|
|
+ // 添加到列表中
|
|
|
+ dataTwinInfluxDBVOList.add(S1InfluxDBVO);
|
|
|
+ dataTwinInfluxDBVOList.add(S2InfluxDBVO);
|
|
|
+ return dataTwinInfluxDBVOList;
|
|
|
+ }
|
|
|
+
|
|
|
+ // TODO 索引问题
|
|
|
+ @Override
|
|
|
+ public List<DataTwinEquipmentVO> getEquipmentList() {
|
|
|
List<EquipmentParamFormVo> EquipmentParamFormVoList = modbusTcpService.getDataTwinEquipmentValues();
|
|
|
List<DataTwinEquipmentVO> dataTwinEquipmentVoList = new ArrayList<>();
|
|
|
- System.out.println("EquipmentParamFormVoList:" + EquipmentParamFormVoList);
|
|
|
+ // 传感器
|
|
|
// S1
|
|
|
- EquipmentParamFormVo S1Temperature = EquipmentParamFormVoList.get(68);
|
|
|
- S1Temperature.setEquipmentName("S1温度");
|
|
|
+ EquipmentParamFormVo S1Temperature = EquipmentParamFormVoList.get(37);
|
|
|
+ S1Temperature.setRegisterName("S1温度");
|
|
|
extracted(dataTwinEquipmentVoList, S1Temperature);
|
|
|
- EquipmentParamFormVo S1Pressure = EquipmentParamFormVoList.get(81);
|
|
|
- S1Pressure.setEquipmentName("S1压力");
|
|
|
+ EquipmentParamFormVo S1Pressure = EquipmentParamFormVoList.get(45);
|
|
|
+ S1Pressure.setRegisterName("S1压力");
|
|
|
extracted(dataTwinEquipmentVoList, S1Pressure);
|
|
|
// S2
|
|
|
- EquipmentParamFormVo S2Temperature = EquipmentParamFormVoList.get(43);
|
|
|
- S2Temperature.setEquipmentName("S2温度");
|
|
|
+ EquipmentParamFormVo S2Temperature = EquipmentParamFormVoList.get(26);
|
|
|
+ S2Temperature.setRegisterName("S2温度");
|
|
|
extracted(dataTwinEquipmentVoList, S2Temperature);
|
|
|
- EquipmentParamFormVo S2Pressure = EquipmentParamFormVoList.get(45);
|
|
|
- S2Pressure.setEquipmentName("S2压力");
|
|
|
+ EquipmentParamFormVo S2Pressure = EquipmentParamFormVoList.get(27);
|
|
|
+ S2Pressure.setRegisterName("S2压力");
|
|
|
extracted(dataTwinEquipmentVoList, S2Pressure);
|
|
|
// M1
|
|
|
- EquipmentParamFormVo M1Pressure = EquipmentParamFormVoList.get(48);
|
|
|
- M1Pressure.setEquipmentName("M1压力");
|
|
|
+ EquipmentParamFormVo M1Pressure = EquipmentParamFormVoList.get(28);
|
|
|
+ M1Pressure.setRegisterName("M1压力");
|
|
|
extracted(dataTwinEquipmentVoList, M1Pressure);
|
|
|
// M2
|
|
|
- EquipmentParamFormVo M2Pressure = EquipmentParamFormVoList.get(84);
|
|
|
- M2Pressure.setEquipmentName("M2压力");
|
|
|
+ EquipmentParamFormVo M2Pressure = EquipmentParamFormVoList.get(46);
|
|
|
+ M2Pressure.setRegisterName("M2压力");
|
|
|
extracted(dataTwinEquipmentVoList, M2Pressure);
|
|
|
+ // 变频器
|
|
|
+ // LB3
|
|
|
+ EquipmentParamFormVo LB3Frequency = EquipmentParamFormVoList.get(41);
|
|
|
+ LB3Frequency.setRegisterName("LB3频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB3Frequency);
|
|
|
+ // LB6
|
|
|
+ EquipmentParamFormVo LB4Frequency = EquipmentParamFormVoList.get(42);
|
|
|
+ LB4Frequency.setRegisterName("LB6频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB4Frequency);
|
|
|
+ // LB7
|
|
|
+ EquipmentParamFormVo LB5Frequency = EquipmentParamFormVoList.get(43);
|
|
|
+ LB5Frequency.setRegisterName("LB7频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB5Frequency);
|
|
|
+ // LB9
|
|
|
+ EquipmentParamFormVo LB6Frequency = EquipmentParamFormVoList.get(40);
|
|
|
+ LB6Frequency.setRegisterName("LB9频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB6Frequency);
|
|
|
+ // S1搅拌器
|
|
|
+ EquipmentParamFormVo LB7Frequency = EquipmentParamFormVoList.get(38);
|
|
|
+ LB7Frequency.setRegisterName("S1搅拌器频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB7Frequency);
|
|
|
+ // S2搅拌器
|
|
|
+ EquipmentParamFormVo LB8Frequency = EquipmentParamFormVoList.get(39);
|
|
|
+ LB8Frequency.setRegisterName("S2搅拌器频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB8Frequency);
|
|
|
+ // 装车泵
|
|
|
+ EquipmentParamFormVo LB9Frequency = EquipmentParamFormVoList.get(44);
|
|
|
+ LB9Frequency.setRegisterName("装车泵频率");
|
|
|
+ extracted(dataTwinEquipmentVoList, LB9Frequency);
|
|
|
return dataTwinEquipmentVoList;
|
|
|
|
|
|
}
|