添加报文解析接口
parent
4613873874
commit
93cca647a4
|
@ -84,7 +84,7 @@ public class MessageTemplateTypeController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/findMessageByTemplateName")
|
@PostMapping("/findMessageByTemplateName")
|
||||||
public Result<List<MessageTemplateType>> findMessageByTemplateName(@RequestParam("templateName") String templateName) {
|
public Result<List<MessageTemplateType>> findMessageByTemplateName(@RequestParam("templatedId") Integer templatedId) {
|
||||||
return Result.success(messageTemplateTypeService.findMessageByTemplateName(templateName));
|
return Result.success(messageTemplateTypeService.findMessageByTemplateName(templatedId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class TemplateController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/messageParsing")
|
@PostMapping("/messageParsing")
|
||||||
public Result messageParsing(@RequestParam String templateMessage){
|
public Result messageParsing(@RequestParam("templateMessage") String templateMessage){
|
||||||
templateService.messageParsing(templateMessage);
|
templateService.messageParsing(templateMessage);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,6 @@ public interface MessageTemplateTypeMapper {
|
||||||
|
|
||||||
List<MessageTemplateType> findvehicleData(@Param("templatedId") Integer templatedId, @Param("code") String code);
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,6 @@ public interface MessageTemplateTypeService {
|
||||||
|
|
||||||
List<MessageTemplateType> finddeviceStatusData(Integer templatedId, String code);
|
List<MessageTemplateType> finddeviceStatusData(Integer templatedId, String code);
|
||||||
|
|
||||||
List<MessageTemplateType> findMessageByTemplateName(String templateName);
|
List<MessageTemplateType> findMessageByTemplateName(Integer templatedId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class MessageTemplateTypeServiceImpl implements MessageTemplateTypeServi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MessageTemplateType> findMessageByTemplateName(String templateName) {
|
public List<MessageTemplateType> findMessageByTemplateName(Integer templatedId) {
|
||||||
return messageTemplateTypeMapper.findMessageByTemplateName(templateName);
|
return messageTemplateTypeMapper.findMessageByTemplateName(templatedId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,55 +34,52 @@ public class TemplateServiceImpl implements TemplateService{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageParsing(String templateMessage) {
|
public void messageParsing(String templateMessage) {
|
||||||
|
//新能源车里面有的配置
|
||||||
MessageTemplate messageTemplate = new MessageTemplate();
|
MessageTemplate messageTemplate = new MessageTemplate();
|
||||||
//先截取出VIN码 然后根据VIN码查询这个车属于什么类型
|
//先截取出VIN码 然后根据VIN码查询这个车属于什么类型
|
||||||
if(templateMessage.length()<18){
|
if(templateMessage.length()<18){
|
||||||
throw new RuntimeException("The vehicle message is incorrect");
|
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码
|
//取出VIN码
|
||||||
String carVin = templateMessage.substring(1, 18-1);
|
String carVin = result.substring(0, 18-1);
|
||||||
|
System.out.println("carVin码为:"+carVin);
|
||||||
//根据VIN码获取车辆信息
|
//根据VIN码获取车辆信息
|
||||||
SysCar carByVin = carService.findCarByVin(carVin);
|
SysCar carByVin = carService.findCarByVin(carVin);
|
||||||
|
if(carByVin==null){
|
||||||
|
throw new RuntimeException("Check this car!!");
|
||||||
|
}else{
|
||||||
//根据车辆类型ID获取车辆类型名称
|
//根据车辆类型ID获取车辆类型名称
|
||||||
CarType carTypeById = carService.findCarTypeById(carByVin.getCarTypeId());
|
CarType carTypeById = carService.findCarTypeById(carByVin.getCarTypeId());
|
||||||
//查询报文模版
|
//查询报文模版
|
||||||
Template templateDate=templateMapper.findTemplateByName(carTypeById.getTypeName());
|
Template templateDate=templateMapper.findTemplateByName(carTypeById.getTypeName());
|
||||||
//根据报文模版的ID查询对应的模版
|
//根据报文模版的ID查询对应的模版
|
||||||
List<MessageTemplateType> messageByTemplateName = messageTemplateTypeService.findMessageByTemplateName(templateDate.getTemplateName());
|
List<MessageTemplateType> messageByTemplateName = messageTemplateTypeService.findMessageByTemplateName(templateDate.getTemplateId());
|
||||||
|
//将模版里面有的配置进行循环
|
||||||
for (MessageTemplateType messageTemplateType : messageByTemplateName) {
|
for (MessageTemplateType messageTemplateType : messageByTemplateName) {
|
||||||
//车辆VIN码
|
|
||||||
String[] split = templateMessage.split(" ");
|
|
||||||
//开始位置
|
//开始位置
|
||||||
Integer startIndex = messageTemplateType.getStartIndex();
|
Integer startIndex = messageTemplateType.getStartIndex();
|
||||||
//结束位置
|
//结束位置
|
||||||
Integer endIndex = messageTemplateType.getEndIndex();
|
Integer endIndex = messageTemplateType.getEndIndex();
|
||||||
String messageField = messageTemplateType.getMessageField();
|
//车辆VIN码
|
||||||
String str="set"+messageField;
|
if(messageTemplateType.getMessageField().equals("vinCode")){
|
||||||
|
messageTemplate.setVinCode(result.substring(startIndex, endIndex-1));
|
||||||
|
}
|
||||||
|
if(messageTemplateType.getMessageField().equals("latitude")){
|
||||||
|
messageTemplate.setLatitude(result.substring(startIndex, endIndex-1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
System.out.println("解析后的报文是:"+messageTemplate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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(new String(asciiChars));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,6 @@
|
||||||
select * from sys_car where car_vin=#{carVin}
|
select * from sys_car where car_vin=#{carVin}
|
||||||
</select>
|
</select>
|
||||||
<select id="carMapper" resultType="com.template.domain.CarType">
|
<select id="carMapper" resultType="com.template.domain.CarType">
|
||||||
|
select * from car_type where id=#{carTypeId}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
FROM
|
FROM
|
||||||
message_template_type
|
message_template_type
|
||||||
LEFT JOIN data_type ON data_type.data_type_id = message_template_type.data_type_id
|
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>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue