添加报文解析接口

dev
Number7 2024-09-21 20:11:28 +08:00
parent 4613873874
commit 93cca647a4
8 changed files with 44 additions and 47 deletions

View File

@ -84,7 +84,7 @@ public class MessageTemplateTypeController {
* @return
*/
@PostMapping("/findMessageByTemplateName")
public Result<List<MessageTemplateType>> findMessageByTemplateName(@RequestParam("templateName") String templateName) {
return Result.success(messageTemplateTypeService.findMessageByTemplateName(templateName));
public Result<List<MessageTemplateType>> findMessageByTemplateName(@RequestParam("templatedId") Integer templatedId) {
return Result.success(messageTemplateTypeService.findMessageByTemplateName(templatedId));
}
}

View File

@ -42,7 +42,7 @@ public class TemplateController {
* @return
*/
@PostMapping("/messageParsing")
public Result messageParsing(@RequestParam String templateMessage){
public Result messageParsing(@RequestParam("templateMessage") String templateMessage){
templateService.messageParsing(templateMessage);
return Result.success();
}

View File

@ -30,6 +30,6 @@ public interface MessageTemplateTypeMapper {
List<MessageTemplateType> findvehicleData(@Param("templatedId") Integer templatedId, @Param("code") String code);
List<MessageTemplateType> findMessageByTemplateName(@Param("templateName") String templateName);
List<MessageTemplateType> findMessageByTemplateName(@Param("templatedId") Integer templatedId);
}

View File

@ -27,6 +27,6 @@ public interface MessageTemplateTypeService {
List<MessageTemplateType> finddeviceStatusData(Integer templatedId, String code);
List<MessageTemplateType> findMessageByTemplateName(String templateName);
List<MessageTemplateType> findMessageByTemplateName(Integer templatedId);
}

View File

@ -49,7 +49,7 @@ public class MessageTemplateTypeServiceImpl implements MessageTemplateTypeServi
}
@Override
public List<MessageTemplateType> findMessageByTemplateName(String templateName) {
return messageTemplateTypeMapper.findMessageByTemplateName(templateName);
public List<MessageTemplateType> findMessageByTemplateName(Integer templatedId) {
return messageTemplateTypeMapper.findMessageByTemplateName(templatedId);
}
}

View File

@ -34,55 +34,52 @@ public class TemplateServiceImpl implements TemplateService{
@Override
public void messageParsing(String templateMessage) {
//新能源车里面有的配置
MessageTemplate messageTemplate = new MessageTemplate();
//先截取出VIN码 然后根据VIN码查询这个车属于什么类型
if(templateMessage.length()<18){
throw new RuntimeException("The vehicle message is incorrect");
}
//将报文进行切割
String[] hexArray = templateMessage.split(" ");
StringBuilder result = new StringBuilder();
for (String hex : hexArray) {
int decimal = Integer.parseInt(hex, 16);
result.append((char) decimal);
}
//取出VIN码
String carVin = templateMessage.substring(1, 18-1);
String carVin = result.substring(0, 18-1);
System.out.println("carVin码为:"+carVin);
//根据VIN码获取车辆信息
SysCar carByVin = carService.findCarByVin(carVin);
//根据车辆类型ID获取车辆类型名称
CarType carTypeById = carService.findCarTypeById(carByVin.getCarTypeId());
//查询报文模版
Template templateDate=templateMapper.findTemplateByName(carTypeById.getTypeName());
//根据报文模版的ID查询对应的模版
List<MessageTemplateType> messageByTemplateName = messageTemplateTypeService.findMessageByTemplateName(templateDate.getTemplateName());
if(carByVin==null){
throw new RuntimeException("Check this car!!");
}else{
//根据车辆类型ID获取车辆类型名称
CarType carTypeById = carService.findCarTypeById(carByVin.getCarTypeId());
//查询报文模版
Template templateDate=templateMapper.findTemplateByName(carTypeById.getTypeName());
//根据报文模版的ID查询对应的模版
List<MessageTemplateType> messageByTemplateName = messageTemplateTypeService.findMessageByTemplateName(templateDate.getTemplateId());
//将模版里面有的配置进行循环
for (MessageTemplateType messageTemplateType : messageByTemplateName) {
//开始位置
Integer startIndex = messageTemplateType.getStartIndex();
//结束位置
Integer endIndex = messageTemplateType.getEndIndex();
//车辆VIN码
if(messageTemplateType.getMessageField().equals("vinCode")){
messageTemplate.setVinCode(result.substring(startIndex, endIndex-1));
}
if(messageTemplateType.getMessageField().equals("latitude")){
messageTemplate.setLatitude(result.substring(startIndex, endIndex-1));
}
}
for (MessageTemplateType messageTemplateType : messageByTemplateName) {
//车辆VIN码
String[] split = templateMessage.split(" ");
//开始位置
Integer startIndex = messageTemplateType.getStartIndex();
//结束位置
Integer endIndex = messageTemplateType.getEndIndex();
String messageField = messageTemplateType.getMessageField();
String str="set"+messageField;
}
}
public static void main(String[] args) {
String character="1A 2B 3C 4D 5E 6F";
//将这个报文去除空格
String[] split = character.split(" ");
//字符数组
char[] asciiChars = new char[split.length];
for (int i = 0; i < split.length; i++) {
// 将16进制字符串转换为整数字节值
int decimal = Integer.parseInt(split[i], 16);
asciiChars[i] = (char) decimal;
System.out.println("解析后的报文是:"+messageTemplate);
}
System.out.println(new String(asciiChars));
}
}

View File

@ -8,6 +8,6 @@
select * from sys_car where car_vin=#{carVin}
</select>
<select id="carMapper" resultType="com.template.domain.CarType">
select * from car_type where id=#{carTypeId}
</select>
</mapper>

View File

@ -50,7 +50,7 @@
FROM
message_template_type
LEFT JOIN data_type ON data_type.data_type_id = message_template_type.data_type_id
where message_template_type.template_name=#{templateName}
where message_template_type.template_id=#{templatedId}
</select>
</mapper>