From 93cca647a4d06fc7ef6f0f21e120ec4bff702ff1 Mon Sep 17 00:00:00 2001 From: Number7 <1845377266@qq.com> Date: Sat, 21 Sep 2024 20:11:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=A5=E6=96=87=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MessageTemplateTypeController.java | 4 +- .../controller/TemplateController.java | 2 +- .../mapper/MessageTemplateTypeMapper.java | 2 +- .../service/MessageTemplateTypeService.java | 2 +- .../impl/MessageTemplateTypeServiceImpl.java | 4 +- .../service/impl/TemplateServiceImpl.java | 73 +++++++++---------- .../resources/mapper/message/CarMapper.xml | 2 +- .../message/MessageTemplateTypeMapper.xml | 2 +- 8 files changed, 44 insertions(+), 47 deletions(-) diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/MessageTemplateTypeController.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/MessageTemplateTypeController.java index 98b0341..d5cee97 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/MessageTemplateTypeController.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/MessageTemplateTypeController.java @@ -84,7 +84,7 @@ public class MessageTemplateTypeController { * @return */ @PostMapping("/findMessageByTemplateName") - public Result> findMessageByTemplateName(@RequestParam("templateName") String templateName) { - return Result.success(messageTemplateTypeService.findMessageByTemplateName(templateName)); + public Result> findMessageByTemplateName(@RequestParam("templatedId") Integer templatedId) { + return Result.success(messageTemplateTypeService.findMessageByTemplateName(templatedId)); } } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/TemplateController.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/TemplateController.java index 4068cfb..c1a2b36 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/TemplateController.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/controller/TemplateController.java @@ -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(); } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/mapper/MessageTemplateTypeMapper.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/mapper/MessageTemplateTypeMapper.java index 96279f3..389a8d4 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/mapper/MessageTemplateTypeMapper.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/mapper/MessageTemplateTypeMapper.java @@ -30,6 +30,6 @@ public interface MessageTemplateTypeMapper { List findvehicleData(@Param("templatedId") Integer templatedId, @Param("code") String code); - List findMessageByTemplateName(@Param("templateName") String templateName); + List findMessageByTemplateName(@Param("templatedId") Integer templatedId); } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/MessageTemplateTypeService.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/MessageTemplateTypeService.java index b56a215..ac5fe90 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/MessageTemplateTypeService.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/MessageTemplateTypeService.java @@ -27,6 +27,6 @@ public interface MessageTemplateTypeService { List finddeviceStatusData(Integer templatedId, String code); - List findMessageByTemplateName(String templateName); + List findMessageByTemplateName(Integer templatedId); } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/MessageTemplateTypeServiceImpl.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/MessageTemplateTypeServiceImpl.java index 9c83bf4..63f72e9 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/MessageTemplateTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/MessageTemplateTypeServiceImpl.java @@ -49,7 +49,7 @@ public class MessageTemplateTypeServiceImpl implements MessageTemplateTypeServi } @Override - public List findMessageByTemplateName(String templateName) { - return messageTemplateTypeMapper.findMessageByTemplateName(templateName); + public List findMessageByTemplateName(Integer templatedId) { + return messageTemplateTypeMapper.findMessageByTemplateName(templatedId); } } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/TemplateServiceImpl.java b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/TemplateServiceImpl.java index 874ec6d..0fe5e0d 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/TemplateServiceImpl.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/template/service/impl/TemplateServiceImpl.java @@ -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 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 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)); - } + } diff --git a/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/CarMapper.xml b/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/CarMapper.xml index 42d7405..828fe75 100644 --- a/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/CarMapper.xml +++ b/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/CarMapper.xml @@ -8,6 +8,6 @@ select * from sys_car where car_vin=#{carVin} diff --git a/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/MessageTemplateTypeMapper.xml b/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/MessageTemplateTypeMapper.xml index 40511b6..1c8f8e2 100644 --- a/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/MessageTemplateTypeMapper.xml +++ b/cloud-modules/cloud-modules-template/src/main/resources/mapper/message/MessageTemplateTypeMapper.xml @@ -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}