报文模块删除冗余的代码

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> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> </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依赖--> <!--iotdb依赖-->
<dependency> <dependency>
<groupId>org.apache.iotdb</groupId> <groupId>org.apache.iotdb</groupId>

View File

@ -3,12 +3,15 @@ package com.template.controller;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.template.domain.Template; import com.template.domain.Template;
import com.template.service.TemplateService; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.sql.SQLException;
import java.util.List; import java.util.List;
/** /**
@ -42,7 +45,7 @@ public class TemplateController {
* @return * @return
*/ */
@PostMapping("/messageParsing") @PostMapping("/messageParsing")
public Result messageParsing(@RequestParam("templateMessage") String templateMessage){ public Result messageParsing(@RequestParam("templateMessage") String templateMessage) throws SQLException, IoTDBConnectionException, ClassNotFoundException, StatementExecutionException {
templateService.messageParsing(templateMessage); templateService.messageParsing(templateMessage);
return Result.success(); 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; package com.template.service;
import com.template.domain.Template; 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; import java.util.List;
/** /**
@ -15,6 +18,6 @@ public interface TemplateService {
List<Template> templateList(); 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; package com.template.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.muyu.common.core.domain.Result;
import com.template.domain.*; import com.template.domain.*;
import com.template.mapper.TemplateMapper; import com.template.mapper.TemplateMapper;
import com.template.service.CarService; import com.template.service.CarService;
import com.template.service.MessageTemplateTypeService; import com.template.service.MessageTemplateTypeService;
import com.template.service.TemplateService; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.sql.*; import java.sql.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
* @Authorliuxinyue * @Authorliuxinyue
@ -30,13 +37,16 @@ public class TemplateServiceImpl implements TemplateService{
@Autowired @Autowired
private MessageTemplateTypeService messageTemplateTypeService; private MessageTemplateTypeService messageTemplateTypeService;
@Autowired
private ToIoTDB toIoTDB;
@Override @Override
public List<Template> templateList() { public List<Template> templateList() {
return templateMapper.templateList(); return templateMapper.templateList();
} }
@Override @Override
public void messageParsing(String templateMessage) { public void messageParsing(String templateMessage) throws SQLException, IoTDBConnectionException, ClassNotFoundException, StatementExecutionException {
//给一个JSON对象 //给一个JSON对象
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
//先截取出VIN码 然后根据VIN码查询这个车属于什么类型 //先截取出VIN码 然后根据VIN码查询这个车属于什么类型
@ -73,43 +83,65 @@ public class TemplateServiceImpl implements TemplateService{
//将每个解析后的字段都存入到JSON对象中 //将每个解析后的字段都存入到JSON对象中
jsonObject.put(messageTemplateType.getMessageField(), result.substring(startIndex, endIndex-1)); jsonObject.put(messageTemplateType.getMessageField(), result.substring(startIndex, endIndex-1));
} }
System.out.println("解析后的报文是:"+jsonObject); System.out.println("解析后的报文是:"+jsonObject);
} }
} }
//连接IoTDB数据库并执行插入操作
public void addIoTDBTemplate(MessageTemplate messageTemplate) throws ClassNotFoundException {
// IoTDB 数据库的连接信息 public void insertIoTDB(JSONObject jsonObject) throws SQLException, ClassNotFoundException, IoTDBConnectionException, StatementExecutionException {
String url = "jdbc:iotdb://47.116.173.119:6667/";
String user = "root"; System.out.println("Hello IoTDB Java Example");
String password = "root"; //初始化与连接
try { Session session = new Session.Builder()
// 注册 JDBC 驱动 .host("47.116.173.119")
Class.forName("org.apache.iotdb.jdbc.IoTDBDriver"); .port(6667)
System.out.println("JDBC Driver Registered!"); .username("root")
// 数据库连接 .password("root")
Connection connection = DriverManager.getConnection(url, user, password); .version(Version.V_0_12)
System.out.println("Connected to IoTDB!"); .build();
// 插入数据的 SQL 语句 //开启Session RPC不压缩
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, " + session.open(false);
"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, " + session.open(false);
"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," + System.out.println("写入数据");
" 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 ( ?, ?, ?, ?, ?, ?, ?, " + List<Object> values = new ArrayList<>();
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ??, ?, ?, ?, ?, ?, ?, ?, ?, " + values.add(jsonObject);
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; insertRecord(session, (List<Object>) jsonObject);
// 使用 PreparedStatement 插入数据 //添加sql语句
PreparedStatement preparedStatement = connection.prepareStatement(insertSQL); String sql="INSERT INTO template (vinCode, ' or timeStamp' or longItude, latitude, speedVehicle, totalMileage, totalVoltage) VALUES(0, 0, 0, 0, 0, 0, 0)";
// 执行插入 }
preparedStatement.execute();
System.out.println("Data inserted successfully!"); private static void insertRecord(Session session,List<Object> values) throws SQLException, ClassNotFoundException, IoTDBConnectionException, StatementExecutionException {
// 关闭连接
preparedStatement.close(); List<String> strings = new ArrayList<>();
connection.close();
} catch (ClassNotFoundException e) { List<TSDataType> objects = new ArrayList<>();
System.err.println("JDBC Driver not found: " + e.getMessage());
} catch (SQLException e) { strings.add("status");
e.printStackTrace();
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("----------------查询数据结束----------------");
}
} }