报文模块删除冗余的代码

dev
Number7 2024-09-24 10:02:32 +08:00
parent 9e0e3f37b8
commit bef61a5d29
5 changed files with 116 additions and 39 deletions

View File

@ -25,6 +25,18 @@
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>iotdb-session</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>node-commons</artifactId>
<version>1.3.2</version>
</dependency>
<!--iotdb依赖-->
<dependency>
<groupId>org.apache.iotdb</groupId>

View File

@ -3,12 +3,15 @@ package com.template.controller;
import com.muyu.common.core.domain.Result;
import com.template.domain.Template;
import com.template.service.TemplateService;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.sql.SQLException;
import java.util.List;
/**
@ -42,7 +45,7 @@ public class TemplateController {
* @return
*/
@PostMapping("/messageParsing")
public Result messageParsing(@RequestParam("templateMessage") String templateMessage){
public Result messageParsing(@RequestParam("templateMessage") String templateMessage) throws SQLException, IoTDBConnectionException, ClassNotFoundException, StatementExecutionException {
templateService.messageParsing(templateMessage);
return Result.success();
}

View File

@ -0,0 +1,27 @@
package com.template.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Authorliuxinyue
* @Packagecom.template.domain
* @Projectcloud-server
* @nameController
* @Date2024/9/23 23:50
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Controller {
private String id;
private String Name;
private String userName;
private String passWord;
private String userName1;
private String passWord1;
}

View File

@ -1,7 +1,10 @@
package com.template.service;
import com.template.domain.Template;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import java.sql.SQLException;
import java.util.List;
/**
@ -15,6 +18,6 @@ public interface TemplateService {
List<Template> templateList();
void messageParsing(String templateMessage);
void messageParsing(String templateMessage) throws SQLException, IoTDBConnectionException, ClassNotFoundException, StatementExecutionException;
}

View File

@ -1,15 +1,22 @@
package com.template.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.muyu.common.core.domain.Result;
import com.template.domain.*;
import com.template.mapper.TemplateMapper;
import com.template.service.CarService;
import com.template.service.MessageTemplateTypeService;
import com.template.service.TemplateService;
import com.template.util.ToIoTDB;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.session.Session;
import org.apache.iotdb.session.SessionDataSet;
import org.apache.iotdb.session.util.Version;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @Authorliuxinyue
@ -30,13 +37,16 @@ public class TemplateServiceImpl implements TemplateService{
@Autowired
private MessageTemplateTypeService messageTemplateTypeService;
@Autowired
private ToIoTDB toIoTDB;
@Override
public List<Template> templateList() {
return templateMapper.templateList();
}
@Override
public void messageParsing(String templateMessage) {
public void messageParsing(String templateMessage) throws SQLException, IoTDBConnectionException, ClassNotFoundException, StatementExecutionException {
//给一个JSON对象
JSONObject jsonObject = new JSONObject();
//先截取出VIN码 然后根据VIN码查询这个车属于什么类型
@ -73,43 +83,65 @@ public class TemplateServiceImpl implements TemplateService{
//将每个解析后的字段都存入到JSON对象中
jsonObject.put(messageTemplateType.getMessageField(), result.substring(startIndex, endIndex-1));
}
System.out.println("解析后的报文是:"+jsonObject);
}
}
//连接IoTDB数据库并执行插入操作
public void addIoTDBTemplate(MessageTemplate messageTemplate) throws ClassNotFoundException {
// IoTDB 数据库的连接信息
String url = "jdbc:iotdb://47.116.173.119:6667/";
String user = "root";
String password = "root";
try {
// 注册 JDBC 驱动
Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
System.out.println("JDBC Driver Registered!");
// 数据库连接
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("Connected to IoTDB!");
// 插入数据的 SQL 语句
String insertSQL = "INSERT INTO root.four.message_template ( vin_code, time_stamp, long_itude, latitude, speed_vehicle, total_mileage, total_voltage, combined_current, insulation_resistance, " +
"gear_position, accelerator_pedal_travel_value, brake_pedal_travel_value, specific_fuel_consumption, motor_controller_temperature, motor_speed, motor_torque, motor_temperature, motor_voltage, motor_current, " +
"power_battery_remaining_soc, maximum_feedback_power, maximum_discharge_power, bms_self_check_counter, power_battery, total_voltage_load_side, maximum_voltage, minimum_voltage, maximum_temperature, minimum_temperature," +
" available_capacity, vehicle_status, charging_state, operational_status, soc, energy_storage_devices," +
" drive_motor_condition, whether_works, eas, ptc, eps, abs, mcu, heating_state, power_battery_status, state_battery_insulation, dcdc, chg, check_digit, cutoff_bit) VALUES ( ?, ?, ?, ?, ?, ?, ?, " +
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ??, ?, ?, ?, ?, ?, ?, ?, ?, " +
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
// 使用 PreparedStatement 插入数据
PreparedStatement preparedStatement = connection.prepareStatement(insertSQL);
// 执行插入
preparedStatement.execute();
System.out.println("Data inserted successfully!");
// 关闭连接
preparedStatement.close();
connection.close();
} catch (ClassNotFoundException e) {
System.err.println("JDBC Driver not found: " + e.getMessage());
} catch (SQLException e) {
e.printStackTrace();
}
public void insertIoTDB(JSONObject jsonObject) throws SQLException, ClassNotFoundException, IoTDBConnectionException, StatementExecutionException {
System.out.println("Hello IoTDB Java Example");
//初始化与连接
Session session = new Session.Builder()
.host("47.116.173.119")
.port(6667)
.username("root")
.password("root")
.version(Version.V_0_12)
.build();
//开启Session RPC不压缩
session.open(false);
session.open(false);
System.out.println("写入数据");
//写入数据
List<Object> values = new ArrayList<>();
values.add(jsonObject);
insertRecord(session, (List<Object>) jsonObject);
//添加sql语句
String sql="INSERT INTO template (vinCode, ' or timeStamp' or longItude, latitude, speedVehicle, totalMileage, totalVoltage) VALUES(0, 0, 0, 0, 0, 0, 0)";
}
private static void insertRecord(Session session,List<Object> values) throws SQLException, ClassNotFoundException, IoTDBConnectionException, StatementExecutionException {
List<String> strings = new ArrayList<>();
List<TSDataType> objects = new ArrayList<>();
strings.add("status");
objects.add(TSDataType.INT32);
session.insertRecord("root.test.test",System.currentTimeMillis(),strings,objects,values);
System.out.println("----------------写入数据成功----------------");
}
private static void queryRecord(Session session) throws IoTDBConnectionException, StatementExecutionException {
System.out.println("----------------查询数据开始----------------");
try(SessionDataSet sessionDataSet = session.executeLastDataQuery(Collections.singletonList("select status from root.test.test"))){
System.out.println(sessionDataSet.getColumnNames());
sessionDataSet.setFetchSize(1024);
while(sessionDataSet.hasNext()){
System.out.println(sessionDataSet.hasNext());
}
}
System.out.println("----------------查询数据结束----------------");
}
}