From 02f71d7baf48eea5b35864aa0936bdcd26942e7b Mon Sep 17 00:00:00 2001 From: JangCan <2862008188@qq.com> Date: Wed, 10 Apr 2024 10:30:02 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=96=87=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhilian/business/domain/Break.java | 43 + .../com/zhilian/business/domain/BreakLog.java | 28 + .../business/domain/BusinessBreak.java | 113 ++ .../business/remote/RemoteBreakService.java | 22 + .../business/remote/RemoteVehicleService.java | 6 +- .../factory/RemoteBreakFallbackFactory.java | 22 + .../factory/RemoteVehicleFallbackFactory.java | 6 +- .../zhilian/common/business/domain/Fence.java | 64 -- .../common/business/domain/Markers.java | 44 - .../common/business/domain/Vehicle.java | 74 -- .../common/business/domain/VehicleType.java | 34 - .../business/domain/middle/MarkersFence.java | 42 - .../domain/middle/VehicleMarkers.java | 43 - .../common/business/domain/vo/FenceVo.java | 37 - .../common/business/domain/vo/VehicleVo.java | 40 - ...ot.autoconfigure.AutoConfiguration.imports | 4 +- .../core/constant/ServiceNameConstants.java | 5 + .../business/controller/FenceController.java | 2 +- .../controller/MarkersController.java | 4 +- .../controller/MarkersFenceController.java | 2 +- .../controller/VehicleController.java | 4 +- .../controller/VehicleMarkersController.java | 3 +- .../controller/VehicleTypeController.java | 3 +- .../zhilian/business/mapper/FenceMapper.java | 3 +- .../business/mapper/MarkersFenceMapper.java | 3 +- .../business/mapper/MarkersMapper.java | 3 +- .../business/mapper/VehicleMapper.java | 2 +- .../business/mapper/VehicleMarkersMapper.java | 3 +- .../business/mapper/VehicleTypeMapper.java | 3 +- .../business/service/FenceService.java | 2 +- .../business/service/MarkersFenceService.java | 5 +- .../business/service/MarkersService.java | 2 +- .../service/VehicleMarkersService.java | 4 +- .../business/service/VehicleService.java | 2 +- .../business/service/VehicleTypeService.java | 3 +- .../service/impl/FenceServiceImpl.java | 2 +- .../service/impl/MarkersFenceServiceImpl.java | 5 +- .../service/impl/MarkersServiceImpl.java | 2 +- .../impl/VehicleMarkersServiceImpl.java | 5 +- .../service/impl/VehicleServiceImpl.java | 2 +- .../service/impl/VehicleTypeServiceImpl.java | 2 +- zhilian-modules/zhilian-resolver/pom.xml | 1 + .../resolver/ZhiLianResolverApplication.java | 6 +- .../resolver/model/ModelsKafkaMessage.java | 194 ++-- .../resolverReport/ResolverMqttMsg.java | 1020 ++++++++--------- .../MalfunctionEventServiceImpl.java | 214 ++-- 46 files changed, 1030 insertions(+), 1103 deletions(-) create mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/Break.java create mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BreakLog.java create mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BusinessBreak.java create mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteBreakService.java rename zhilian-common/zhilian-common-business/src/main/java/com/zhilian/{common => }/business/remote/RemoteVehicleService.java (86%) create mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteBreakFallbackFactory.java rename zhilian-common/zhilian-common-business/src/main/java/com/zhilian/{common => }/business/remote/factory/RemoteVehicleFallbackFactory.java (85%) delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Fence.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Markers.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Vehicle.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/VehicleType.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/MarkersFence.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/VehicleMarkers.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/FenceVo.java delete mode 100644 zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/VehicleVo.java diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/Break.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/Break.java new file mode 100644 index 0000000..ea5d1c8 --- /dev/null +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/Break.java @@ -0,0 +1,43 @@ +package com.zhilian.business.domain; + +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName Break + * @Description 故障实体类 + * @Author YuanYongH + * @Date 2024/4/4 9:40 + */ +@Data +public class Break { + /** + * 故障id + **/ + private Integer breakId; + /** + * 故障码 + **/ + private String breakCode; + /** + * 车辆VIN + **/ + private String breakVin; + /** + * 开始报警时间 + **/ + private Date breakDate; + /** + * 结束报警时间 + **/ + private Date breakTime; + /** + * 故障类型 + **/ + private String breakType; + /** + * 故障状态 是否警告 + **/ + private Integer breakState; +} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BreakLog.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BreakLog.java new file mode 100644 index 0000000..497e4db --- /dev/null +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BreakLog.java @@ -0,0 +1,28 @@ +package com.zhilian.business.domain; + +import lombok.Data; + +/** + * @ClassName BreakLog + * @Description TODO + * @Author YuanYongH + * @Date 2024/4/8 15:07 + */ +@Data +public class BreakLog { + + /** 故障日志id */ + private Integer breakLogId; + /** 故障码 */ + private String breakCode; + /** 车辆VIN */ + private String breakVin; + /** 故障类型 */ + private String breakType; + /** 结束报警时间 */ + private String breakTime; + /** 开始报警时间 */ + private String breakDate; + /** 是否报警 */ + private String breakState; +} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BusinessBreak.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BusinessBreak.java new file mode 100644 index 0000000..8d58bbf --- /dev/null +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/domain/BusinessBreak.java @@ -0,0 +1,113 @@ +package com.zhilian.business.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zhilian.common.core.annotation.Excel; +import com.zhilian.common.core.web.domain.BaseEntity; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 故障对象 business_break + * + * @author Yy + * @date 2024-04-07 + */ +@Data +public class BusinessBreak extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long breakId; + + /** 故障码 */ + @Excel(name = "故障码") + private String breakCode; + + /** 车辆VIN */ + @Excel(name = "车辆VIN") + private String breakVin; + + /** 结束报警时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束报警时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date breakTime; + + /** 故障类型 */ + @Excel(name = "故障类型") + private String breakType; + + /** 开始报警时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始报警时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date breakDate; + + /** 是否警告 */ + @Excel(name = "是否警告") + private String breakState; + + public void setBreakId(Long breakId) + { + this.breakId = breakId; + } + + public Long getBreakId() + { + return breakId; + } + public void setBreakCode(String breakCode) + { + this.breakCode = breakCode; + } + + public String getBreakCode() + { + return breakCode; + } + public void setBreakVin(String breakVin) + { + this.breakVin = breakVin; + } + + public String getBreakVin() + { + return breakVin; + } + + + public void setBreakType(String breakType) + { + this.breakType = breakType; + } + + public String getBreakType() + { + return breakType; + } + + public void setBreakState(String breakState) + { + this.breakState = breakState; + } + + public String getBreakState() + { + return breakState; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("breakId", getBreakId()) + .append("breakCode", getBreakCode()) + .append("breakVin", getBreakVin()) + .append("breakTime", getBreakTime()) + .append("breakType", getBreakType()) + .append("breakDate", getBreakDate()) + .append("breakState", getBreakState()) + .toString(); + } +} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteBreakService.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteBreakService.java new file mode 100644 index 0000000..23409d5 --- /dev/null +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteBreakService.java @@ -0,0 +1,22 @@ +package com.zhilian.business.remote; + +import com.zhilian.business.domain.Break; +import com.zhilian.business.domain.BusinessBreak; +import com.zhilian.business.remote.factory.RemoteBreakFallbackFactory; +import com.zhilian.common.core.constant.ServiceNameConstants; +import com.zhilian.common.core.domain.Result; +import lombok.extern.java.Log; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(contextId = "remoteBreakService", value = ServiceNameConstants.BUSINESS_SERVICE, fallbackFactory = RemoteBreakFallbackFactory.class) +public interface RemoteBreakService { + /** + * 新增故障 + */ + @PostMapping + public Result add(@RequestBody BusinessBreak businessBreak); + + +} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/RemoteVehicleService.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteVehicleService.java similarity index 86% rename from zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/RemoteVehicleService.java rename to zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteVehicleService.java index 8010c89..69b1be1 100644 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/RemoteVehicleService.java +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/RemoteVehicleService.java @@ -1,7 +1,7 @@ -package com.zhilian.common.business.remote; +package com.zhilian.business.remote; -import com.zhilian.common.business.domain.Vehicle; -import com.zhilian.common.business.remote.factory.RemoteVehicleFallbackFactory; +import com.zhilian.business.domain.Vehicle; +import com.zhilian.business.remote.factory.RemoteVehicleFallbackFactory; import com.zhilian.common.core.constant.ServiceNameConstants; import com.zhilian.common.core.domain.Result; import org.springframework.cloud.openfeign.FeignClient; diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteBreakFallbackFactory.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteBreakFallbackFactory.java new file mode 100644 index 0000000..f12ee6b --- /dev/null +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteBreakFallbackFactory.java @@ -0,0 +1,22 @@ +package com.zhilian.business.remote.factory; + +import com.zhilian.business.domain.BusinessBreak; +import com.zhilian.business.remote.RemoteBreakService; +import com.zhilian.common.core.domain.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +@Slf4j +@Component +public class RemoteBreakFallbackFactory implements FallbackFactory { + @Override + public RemoteBreakService create(Throwable cause) { + return new RemoteBreakService() { + @Override + public Result add(BusinessBreak businessBreak) { + log.error("故障日志服务调用失败"); + return Result.error("故障日志服务调用失败"); + } + }; + } +} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/factory/RemoteVehicleFallbackFactory.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteVehicleFallbackFactory.java similarity index 85% rename from zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/factory/RemoteVehicleFallbackFactory.java rename to zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteVehicleFallbackFactory.java index b30cc6a..4059d27 100644 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/remote/factory/RemoteVehicleFallbackFactory.java +++ b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/business/remote/factory/RemoteVehicleFallbackFactory.java @@ -1,8 +1,8 @@ -package com.zhilian.common.business.remote.factory; +package com.zhilian.business.remote.factory; -import com.zhilian.common.business.domain.Vehicle; -import com.zhilian.common.business.remote.RemoteVehicleService; +import com.zhilian.business.domain.Vehicle; +import com.zhilian.business.remote.RemoteVehicleService; import com.zhilian.common.core.domain.Result; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Fence.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Fence.java deleted file mode 100644 index 245159e..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Fence.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.zhilian.common.business.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.zhilian.common.core.annotation.Excel; -import com.zhilian.common.core.web.domain.BaseEntity; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.List; - -/** - * @ClassName Fence - * @Description 电子围栏实体类 - * @Author ZeJinG.Su - * @Date 15:28 2024/4/8 - */ - -@Data -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@TableName("business_fence") -public class Fence extends BaseEntity { - private static final long serialVersionUID = 1L; - /** - * 电子围栏编号 - */ - @Excel(name = "参数主键", cellType = Excel.ColumnType.NUMERIC) - @TableId(value = "fence_id", type = IdType.AUTO) - private Long fenceId; - /** - * 电子围栏名称 - */ - @Excel(name = "电子围栏名称") - @TableField("fence_name") - private String fenceName; - /** - * 电子围栏类型编号 - */ - @Excel(name = "电子围栏类型编号") - @TableField("fence_type_id") - private Long fenceTypeId; - /** - * 电子围栏状态 - */ - @Excel(name = "电子围栏状态") - @TableField("fence_state") - private Long fenceState; - /** - * 电子围栏经纬度信息 - */ - @Excel(name = "电子围栏经纬度信息") - @TableField("fence_message") - private String fenceMessage; - @TableField(exist = false) - List markersList; -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Markers.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Markers.java deleted file mode 100644 index f6c4471..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Markers.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.zhilian.common.business.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.zhilian.common.core.annotation.Excel; -import com.zhilian.common.core.web.domain.BaseEntity; -import lombok.*; -import lombok.experimental.SuperBuilder; - -import java.util.List; -/** - * @ClassName Markers - * @Description 车辆标识实体类 - * @Author ZeJinG.Su - * @Date 15:29 2024/4/8 - */ -@Data -@ToString -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@TableName("business_markers") -public class Markers extends BaseEntity { - - /** - * 车辆标识编号 - */ - @TableId(value = "markers_id", type = IdType.AUTO) - private Long markersId; - - /** - * 车辆标识名称 - */ - @TableField("markers_name") - private String markersName; - - - @TableField(exist = false) - List fenceIds; - -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Vehicle.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Vehicle.java deleted file mode 100644 index f1b5178..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/Vehicle.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.zhilian.common.business.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.zhilian.common.core.annotation.Excel; -import com.zhilian.common.core.web.domain.BaseEntity; -import lombok.*; -import lombok.experimental.SuperBuilder; - -import java.util.List; - -/** - * @ClassName Vehicle - * @Description 车辆信息实体类 - * @Author ZeJinG.Su - * @Date 15:27 2024/4/8 - */ -@Data -@ToString -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@TableName("business_vehicle") -public class Vehicle extends BaseEntity { - private static final long serialVersionUID = 1L; - - /** - * 车辆ID - */ - @Excel(name = "车辆ID",cellType = Excel.ColumnType.NUMERIC) - @TableId(value = "vehicle_id",type = IdType.AUTO) - private Long vehicleId; - /** - * 车辆VIN - */ - @TableField("vehicle_vin") - private String vehicleVIN; - /** - * 车辆类型编号 - */ - private Long vehicleTypeId; - - - @TableField(exist = false) - private Long vehicleTypeName; - - /** - * 电机厂商 - */ - private String vehicleMotor; - /** - * 电池厂商 - */ - private String vehicleBattery; - /** - * 电机ID - */ - private String motorId; - /** - * 电池ID - */ - private String batteryId; - - /** - * 车辆状态 - */ - private Long vehicleState; - - @TableField(exist = false) - private List markersIds; -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/VehicleType.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/VehicleType.java deleted file mode 100644 index 34a8fde..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/VehicleType.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.zhilian.common.business.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.zhilian.common.core.annotation.Excel; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.ToString; -import lombok.experimental.SuperBuilder; -/** - * @ClassName VehicleType - * @Description 车辆类型实体类 - * @Author ZeJinG.Su - * @Date 15:30 2024/4/8 - */ -@Data -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@ToString -@TableName(value = "business_vehicle_type") -public class VehicleType { - - @TableId(value = "vehicle_type_id", type = IdType.AUTO) - @Excel(name = "车型ID") - private Long vehicleTypeId; - - @Excel(name = "车型名称") - @TableField(value = "vehicle_type_name") - private String vehicleTypeName; -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/MarkersFence.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/MarkersFence.java deleted file mode 100644 index 1361aae..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/MarkersFence.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.zhilian.common.business.domain.middle; - -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import lombok.ToString; -/** - * @ClassName MarkersFence - * @Description 车辆标识与电子围栏中间表 - * @Author ZeJinG.Su - * @Date 15:30 2024/4/8 - */ -@Data -@ToString -@TableName("business_markers_fence") -public class MarkersFence { - /** - * 车辆标识编号 - */ - @TableId(value = "markers_id",type = IdType.INPUT) - private Long markerId; - /** - * 电子围栏编号 - */ - @TableField(value = "fence_id",insertStrategy = FieldStrategy.IGNORED) - private Long fenceId; - - public Long getMarkerId() { - return markerId; - } - - public void setMarkerId(Long markerId) { - this.markerId = markerId; - } - - public Long getFenceId() { - return fenceId; - } - - public void setFenceId(Long fenceId) { - this.fenceId = fenceId; - } -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/VehicleMarkers.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/VehicleMarkers.java deleted file mode 100644 index 44ad6d3..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/middle/VehicleMarkers.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.zhilian.common.business.domain.middle; - -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; -import lombok.ToString; -/** - * @ClassName VehicleMarkers - * @Description 车辆管理与车辆标识 中间表 - * @Author ZeJinG.Su - * @Date 15:27 2024/4/8 - */ -@Data -@ToString -@TableName("business_vehicle_markers") -public class VehicleMarkers { - /** - * 车辆编号 - */ - @TableId(value = "vehicle_id",type = IdType.INPUT) - private Long vehicleId; - /** - * 车辆标识编号 - */ - @TableField(value = "markers_id",insertStrategy = FieldStrategy.IGNORED) - private Long markersId; - - public Long getVehicleId() { - return vehicleId; - } - - public void setVehicleId(Long vehicleId) { - this.vehicleId = vehicleId; - } - - public Long getMarkersId() { - return markersId; - } - - public void setMarkersId(Long markersId) { - this.markersId = markersId; - } - -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/FenceVo.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/FenceVo.java deleted file mode 100644 index 55ea650..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/FenceVo.java +++ /dev/null @@ -1,37 +0,0 @@ - -package com.zhilian.common.business.domain.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.ToString; -/** - * @ClassName FenceVo - * @Description 电子围栏查询信息实体类 - * @Author ZeJinG.Su - * @Date 15:27 2024/4/8 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@ToString -public class FenceVo { - - - /** - * 围栏名称 - */ - private String fenceName; - - /** - * 围栏类型 - */ - private Long fenceTypeId; - - /** - * 围栏状态 - */ - private Long fenceState; - - -} diff --git a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/VehicleVo.java b/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/VehicleVo.java deleted file mode 100644 index 3b9c83a..0000000 --- a/zhilian-common/zhilian-common-business/src/main/java/com/zhilian/common/business/domain/vo/VehicleVo.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.zhilian.common.business.domain.vo; - -import lombok.Data; -/** - * @ClassName VehicleVo - * @Description 车辆管理查询信息实体类 - * @Author ZeJinG.Su - * @Date 15:28 2024/4/8 - */ -@Data -public class VehicleVo { - /** - * 车辆VIN - */ - private String vehicleVIN; - /** - * 车辆类型编号 - */ - private Long vehicleTypeId; - /** - * 电子围栏编号 - */ - private Long fenceId; - /** - * 电机厂商 - */ - private String motorBusiness; - /** - * 电池厂商 - */ - private String batteryBusiness; - /** - * 电机ID - */ - private String motorID; - /** - * 电池ID - */ - private String batteryID; -} diff --git a/zhilian-common/zhilian-common-business/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/zhilian-common/zhilian-common-business/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index bf96861..91bb8a6 100644 --- a/zhilian-common/zhilian-common-business/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/zhilian-common/zhilian-common-business/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,3 @@ -com.zhilian.common.business.remote.factory.RemoteVehicleFallbackFactory +com.zhilian.business.remote.factory.RemoteBreakFallbackFactory +com.zhilian.business.remote.factory.RemoteFenceFallbackFactory +com.zhilian.business.remote.factory.RemoteVehicleFallbackFactory diff --git a/zhilian-common/zhilian-common-core/src/main/java/com/zhilian/common/core/constant/ServiceNameConstants.java b/zhilian-common/zhilian-common-core/src/main/java/com/zhilian/common/core/constant/ServiceNameConstants.java index 977886c..39e60c9 100644 --- a/zhilian-common/zhilian-common-core/src/main/java/com/zhilian/common/core/constant/ServiceNameConstants.java +++ b/zhilian-common/zhilian-common-core/src/main/java/com/zhilian/common/core/constant/ServiceNameConstants.java @@ -20,6 +20,11 @@ public class ServiceNameConstants { * 文件服务的serviceid */ public static final String FILE_SERVICE = "zhilian-file"; + + /** + * 业务服务的serviceid + */ + public static final String BUSINESS_SERVICE = "zhilian-business"; /** * 车辆服务的serviceid */ diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/FenceController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/FenceController.java index be2e502..5dd593e 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/FenceController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/FenceController.java @@ -1,8 +1,8 @@ package com.zhilian.business.controller; +import com.zhilian.business.domain.Fence; import com.zhilian.common.core.domain.Result; import com.zhilian.common.core.web.controller.BaseController; -import com.zhilian.common.business.domain.Fence; import com.zhilian.business.service.FenceService; import com.zhilian.common.core.web.page.TableDataInfo; import com.zhilian.common.security.utils.SecurityUtils; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersController.java index a6a58da..e09bb22 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersController.java @@ -1,8 +1,8 @@ package com.zhilian.business.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.zhilian.common.business.domain.Markers; -import com.zhilian.common.business.domain.middle.MarkersFence; +import com.zhilian.business.domain.Markers; +import com.zhilian.business.domain.middle.MarkersFence; import com.zhilian.business.service.MarkersFenceService; import com.zhilian.business.service.MarkersService; import com.zhilian.common.core.domain.Result; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersFenceController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersFenceController.java index 75d6b2f..edd9666 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersFenceController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/MarkersFenceController.java @@ -1,6 +1,6 @@ package com.zhilian.business.controller; -import com.zhilian.common.business.domain.middle.MarkersFence; +import com.zhilian.business.domain.middle.MarkersFence; import com.zhilian.business.service.MarkersFenceService; import com.zhilian.common.core.domain.Result; import com.zhilian.common.core.web.controller.BaseController; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleController.java index e61af0a..3ac81b5 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleController.java @@ -1,8 +1,8 @@ package com.zhilian.business.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.zhilian.common.business.domain.Vehicle; -import com.zhilian.common.business.domain.middle.VehicleMarkers; +import com.zhilian.business.domain.Vehicle; +import com.zhilian.business.domain.middle.VehicleMarkers; import com.zhilian.business.service.MarkersService; import com.zhilian.business.service.VehicleMarkersService; import com.zhilian.business.service.VehicleService; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleMarkersController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleMarkersController.java index 40ad26b..3c21b05 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleMarkersController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleMarkersController.java @@ -1,6 +1,5 @@ package com.zhilian.business.controller; - -import com.zhilian.common.business.domain.middle.VehicleMarkers; +import com.zhilian.business.domain.middle.VehicleMarkers; import com.zhilian.business.service.VehicleMarkersService; import com.zhilian.common.core.domain.Result; import com.zhilian.common.core.web.controller.BaseController; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleTypeController.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleTypeController.java index 07f93a3..bf9872c 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleTypeController.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/controller/VehicleTypeController.java @@ -1,6 +1,5 @@ package com.zhilian.business.controller; - -import com.zhilian.common.business.domain.VehicleType; +import com.zhilian.business.domain.VehicleType; import com.zhilian.business.service.VehicleTypeService; import com.zhilian.common.core.domain.Result; import com.zhilian.common.core.web.controller.BaseController; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/FenceMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/FenceMapper.java index 71df519..d9aed6e 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/FenceMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/FenceMapper.java @@ -1,7 +1,6 @@ package com.zhilian.business.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.Fence; +import com.zhilian.business.domain.Fence; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersFenceMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersFenceMapper.java index cbdbed3..cbb1ea3 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersFenceMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersFenceMapper.java @@ -1,7 +1,6 @@ package com.zhilian.business.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.middle.MarkersFence; +import com.zhilian.business.domain.middle.MarkersFence; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersMapper.java index a896bee..321fce8 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/MarkersMapper.java @@ -1,7 +1,6 @@ package com.zhilian.business.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.Markers; +import com.zhilian.business.domain.Markers; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMapper.java index 19ed94b..b917deb 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMapper.java @@ -1,7 +1,7 @@ package com.zhilian.business.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.Vehicle; +import com.zhilian.business.domain.Vehicle; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMarkersMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMarkersMapper.java index 59d6844..d386dca 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMarkersMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleMarkersMapper.java @@ -1,7 +1,6 @@ package com.zhilian.business.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.middle.VehicleMarkers; +import com.zhilian.business.domain.middle.VehicleMarkers; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleTypeMapper.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleTypeMapper.java index 5993548..40fdae4 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleTypeMapper.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/mapper/VehicleTypeMapper.java @@ -1,7 +1,6 @@ package com.zhilian.business.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.zhilian.common.business.domain.VehicleType; +import com.zhilian.business.domain.VehicleType; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/FenceService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/FenceService.java index 3edc886..4592c86 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/FenceService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/FenceService.java @@ -1,7 +1,7 @@ package com.zhilian.business.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.Fence; +import com.zhilian.business.domain.Fence; import java.util.List; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersFenceService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersFenceService.java index 3355d8d..e877add 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersFenceService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersFenceService.java @@ -1,8 +1,9 @@ package com.zhilian.business.service; + import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.Markers; -import com.zhilian.common.business.domain.middle.MarkersFence; +import com.zhilian.business.domain.Markers; +import com.zhilian.business.domain.middle.MarkersFence; public interface MarkersFenceService extends IService { boolean insert(Markers markers); diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersService.java index 29e8299..832269e 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/MarkersService.java @@ -1,7 +1,7 @@ package com.zhilian.business.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.Markers; +import com.zhilian.business.domain.Markers; import java.util.List; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleMarkersService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleMarkersService.java index 4ce6a98..a18835c 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleMarkersService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleMarkersService.java @@ -1,8 +1,8 @@ package com.zhilian.business.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.Vehicle; -import com.zhilian.common.business.domain.middle.VehicleMarkers; +import com.zhilian.business.domain.Vehicle; +import com.zhilian.business.domain.middle.VehicleMarkers; import org.springframework.stereotype.Service; @Service diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleService.java index 4bceb3a..1312f5b 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleService.java @@ -1,7 +1,7 @@ package com.zhilian.business.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.Vehicle; +import com.zhilian.business.domain.Vehicle; import java.util.List; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleTypeService.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleTypeService.java index 2f7c8da..231bc0a 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleTypeService.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/VehicleTypeService.java @@ -1,7 +1,8 @@ package com.zhilian.business.service; + import com.baomidou.mybatisplus.extension.service.IService; -import com.zhilian.common.business.domain.VehicleType; +import com.zhilian.business.domain.VehicleType; import java.util.List; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/FenceServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/FenceServiceImpl.java index 4e74f33..1e3f369 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/FenceServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/FenceServiceImpl.java @@ -2,7 +2,7 @@ package com.zhilian.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.Fence; +import com.zhilian.business.domain.Fence; import com.zhilian.business.mapper.FenceMapper; import com.zhilian.business.service.FenceService; import com.zhilian.common.core.utils.StringUtils; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersFenceServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersFenceServiceImpl.java index 5346718..8b74189 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersFenceServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersFenceServiceImpl.java @@ -1,9 +1,8 @@ package com.zhilian.business.service.impl; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.Markers; -import com.zhilian.common.business.domain.middle.MarkersFence; +import com.zhilian.business.domain.Markers; +import com.zhilian.business.domain.middle.MarkersFence; import com.zhilian.business.mapper.MarkersFenceMapper; import com.zhilian.business.service.MarkersFenceService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersServiceImpl.java index 4e29ac6..27855e6 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/MarkersServiceImpl.java @@ -2,7 +2,7 @@ package com.zhilian.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.Markers; +import com.zhilian.business.domain.Markers; import com.zhilian.business.mapper.MarkersMapper; import com.zhilian.business.service.MarkersService; import com.zhilian.common.core.utils.StringUtils; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleMarkersServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleMarkersServiceImpl.java index 35ab99a..3b5899b 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleMarkersServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleMarkersServiceImpl.java @@ -1,9 +1,8 @@ package com.zhilian.business.service.impl; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.Vehicle; -import com.zhilian.common.business.domain.middle.VehicleMarkers; +import com.zhilian.business.domain.Vehicle; +import com.zhilian.business.domain.middle.VehicleMarkers; import com.zhilian.business.mapper.VehicleMarkersMapper; import com.zhilian.business.service.VehicleMarkersService; import org.springframework.stereotype.Service; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleServiceImpl.java index eb00613..76b7df4 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleServiceImpl.java @@ -2,7 +2,7 @@ package com.zhilian.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.Vehicle; +import com.zhilian.business.domain.Vehicle; import com.zhilian.business.mapper.VehicleMapper; import com.zhilian.business.service.VehicleService; import com.zhilian.common.core.utils.StringUtils; diff --git a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleTypeServiceImpl.java b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleTypeServiceImpl.java index adb98c8..271ab88 100644 --- a/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleTypeServiceImpl.java +++ b/zhilian-modules/zhilian-business/src/main/java/com/zhilian/business/service/impl/VehicleTypeServiceImpl.java @@ -1,7 +1,7 @@ package com.zhilian.business.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhilian.common.business.domain.VehicleType; +import com.zhilian.business.domain.VehicleType; import com.zhilian.business.mapper.VehicleTypeMapper; import com.zhilian.business.service.VehicleTypeService; import com.zhilian.common.redis.service.RedisService; diff --git a/zhilian-modules/zhilian-resolver/pom.xml b/zhilian-modules/zhilian-resolver/pom.xml index 8cb370a..ef72d32 100644 --- a/zhilian-modules/zhilian-resolver/pom.xml +++ b/zhilian-modules/zhilian-resolver/pom.xml @@ -130,6 +130,7 @@ spring-kafka + diff --git a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/ZhiLianResolverApplication.java b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/ZhiLianResolverApplication.java index 6a606ac..b7af81a 100644 --- a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/ZhiLianResolverApplication.java +++ b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/ZhiLianResolverApplication.java @@ -7,6 +7,7 @@ import com.zhilian.common.swagger.annotation.EnableCustomSwagger2; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableScheduling; /** @@ -18,9 +19,12 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableCustomConfig @EnableCustomSwagger2 @EnableScheduling -@EnableMyFeignClients +@EnableMyFeignClients(basePackages = {"com.zhilian.business.remote","com.zhilian.common.system.remote"}) @MapperScan({"com.zhilian.resolver.mapper", "com.zhilian.resolver.resolverReport"}) @SpringBootApplication +//com.zhilian.business.remote.factory.RemoteBreakFallbackFactory +//com.zhilian.business.remote.factory.RemoteFenceFallbackFactory +//com.zhilian.business.remote.factory.RemoteVehicleFallbackFactory public class ZhiLianResolverApplication { public static void main(String[] args) { SpringApplication.run(ZhiLianResolverApplication.class,args); diff --git a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/model/ModelsKafkaMessage.java b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/model/ModelsKafkaMessage.java index 5821be9..909ac62 100644 --- a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/model/ModelsKafkaMessage.java +++ b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/model/ModelsKafkaMessage.java @@ -1,97 +1,97 @@ -package com.zhilian.resolver.model; -import com.zhilian.common.core.utils.SpringUtils; -import com.zhilian.common.redis.service.RedisService; -import com.zhilian.common.resolver.domain.ResolverReportData; -import com.zhilian.resolver.service.ResolverEventService; -import lombok.extern.slf4j.Slf4j; -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.clients.consumer.ConsumerRecords; -import org.apache.kafka.clients.consumer.KafkaConsumer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.time.Duration; -import java.util.*; -import java.util.stream.Collectors; - -import static com.zhilian.resolver.utils.ConvertUtils.hexStringToString; -import static com.zhilian.resolver.utils.ConvertUtils.parseVehicleData; - -/** - * @ClassName ModelsKafkaMessage - * @Description 描述 - * @Author Can.J - * @Date 2024/4/8 - */ -@Component -@Slf4j -public class ModelsKafkaMessage { - @Autowired - private RedisService redisService; - private static final String TOPIC_NAME = "vehicle-topic"; - private static final String BOOTSTRAP_SERVERS = "10.10.25.5:9092"; - - - - /** - * 消费者配置 - * @return - */ - @PostConstruct - private void consumerMessages() { - Thread kafkaConsumerThread = new Thread(() -> { - log.info("启动线程"); - Properties props = new Properties(); - props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); - props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); - props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); - props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); - - //创建消费者 - KafkaConsumer consumer = new KafkaConsumer<>(props); - - try { - - //订阅主题 - consumer.subscribe(Collections.singletonList(TOPIC_NAME)); - - //持续消费消息 - while (true) { - ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); - records.forEach(record -> { - System.out.println("接收到的数据:" + record.value()); - String str = hexStringToString(record.value()); - List resolverReportDataList = parseVehicleData(str); - for (ResolverReportData vehicleData : resolverReportDataList) { - log.info("解析到车辆数据:{}", vehicleData); - - //获取vin - String vin = vehicleData.getVin(); - //获取事件集 - Set cacheSet = redisService.getCacheSet("vehicle-event:" + vin); - List events = cacheSet.stream().map(item -> { - return String.valueOf(item); - }).collect(Collectors.toList()); - log.info("事件集合:{}",events); - - log.info("解析到车辆数据:{}", vehicleData); - for (String stringEvent : events) { - ResolverEventService resolverEventService =SpringUtils.getBean(stringEvent); - resolverEventService.execute(vehicleData); - } - } - }); - } - } catch (Exception e) { - log.error("Error occurred in Kafka consumer thread", e); - } finally { - consumer.close(); - } - }); - kafkaConsumerThread.start(); - } - - -} +//package com.zhilian.resolver.model; +//import com.zhilian.common.core.utils.SpringUtils; +//import com.zhilian.common.redis.service.RedisService; +//import com.zhilian.common.resolver.domain.ResolverReportData; +//import com.zhilian.resolver.service.ResolverEventService; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.kafka.clients.consumer.ConsumerConfig; +//import org.apache.kafka.clients.consumer.ConsumerRecords; +//import org.apache.kafka.clients.consumer.KafkaConsumer; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.scheduling.annotation.Scheduled; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import java.time.Duration; +//import java.util.*; +//import java.util.stream.Collectors; +// +//import static com.zhilian.resolver.utils.ConvertUtils.hexStringToString; +//import static com.zhilian.resolver.utils.ConvertUtils.parseVehicleData; +// +///** +// * @ClassName ModelsKafkaMessage +// * @Description 描述 +// * @Author Can.J +// * @Date 2024/4/8 +// */ +//@Component +//@Slf4j +//public class ModelsKafkaMessage { +// @Autowired +// private RedisService redisService; +// private static final String TOPIC_NAME = "vehicle-topic"; +// private static final String BOOTSTRAP_SERVERS = "10.10.25.5:9092"; +// +// +// +// /** +// * 消费者配置 +// * @return +// */ +// @PostConstruct +// private void consumerMessages() { +// Thread kafkaConsumerThread = new Thread(() -> { +// log.info("启动线程"); +// Properties props = new Properties(); +// props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); +// props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); +// props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); +// props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); +// +// //创建消费者 +// KafkaConsumer consumer = new KafkaConsumer<>(props); +// +// try { +// +// //订阅主题 +// consumer.subscribe(Collections.singletonList(TOPIC_NAME)); +// +// //持续消费消息 +// while (true) { +// ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); +// records.forEach(record -> { +// System.out.println("接收到的数据:" + record.value()); +// String str = hexStringToString(record.value()); +// List resolverReportDataList = parseVehicleData(str); +// for (ResolverReportData vehicleData : resolverReportDataList) { +// log.info("解析到车辆数据:{}", vehicleData); +// +// //获取vin +// String vin = vehicleData.getVin(); +// //获取事件集 +// Set cacheSet = redisService.getCacheSet("vehicle-event:" + vin); +// List events = cacheSet.stream().map(item -> { +// return String.valueOf(item); +// }).collect(Collectors.toList()); +// log.info("事件集合:{}",events); +// +// log.info("解析到车辆数据:{}", vehicleData); +// for (String stringEvent : events) { +// ResolverEventService resolverEventService =SpringUtils.getBean(stringEvent); +// resolverEventService.execute(vehicleData); +// } +// } +// }); +// } +// } catch (Exception e) { +// log.error("Error occurred in Kafka consumer thread", e); +// } finally { +// consumer.close(); +// } +// }); +// kafkaConsumerThread.start(); +// } +// +// +//} diff --git a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/resolverReport/ResolverMqttMsg.java b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/resolverReport/ResolverMqttMsg.java index 4a5494a..b6a5298 100644 --- a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/resolverReport/ResolverMqttMsg.java +++ b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/resolverReport/ResolverMqttMsg.java @@ -1,511 +1,511 @@ -//package com.zhilian.resolver.resolverReport; -//import com.zhilian.common.core.utils.SpringUtils; -//import com.zhilian.common.resolver.domain.ResolverReportData; -//import com.zhilian.resolver.service.ResolverEventService; -//import com.zhilian.resolver.service.ResolverReportInfoService; -//import com.zhilian.resolver.service.impl.eventMalfunction.MalfunctionEventServiceImpl; -//import lombok.extern.slf4j.Slf4j; -//import org.eclipse.paho.client.mqttv3.*; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.scheduling.annotation.Scheduled; -//import org.springframework.stereotype.Component; -// -//import java.math.BigDecimal; -//import java.nio.charset.StandardCharsets; -//import java.util.ArrayList; -//import java.util.Date; -//import java.util.List; -// -//import static com.zhilian.common.resolver.constants.MqttConnectConstants.BROKER_URL; -//import static com.zhilian.common.resolver.constants.MqttConnectConstants.CLIENT_ID; -// -///** -// * @ClassName ResolverMqttMsg -// * @Description 获取mqtt报文消息 解析ResolverReportData vehicleData -// * @Author Can.J -// * @Date 2024/3/30 8:36 -// */ -//@Slf4j -//@Component -//public class ResolverMqttMsg { -// @Autowired -// private MalfunctionEventServiceImpl malfunctionEventService; -// -// @Autowired -// private ResolverReportInfoService resolverReportInfoService; -// -// @Autowired -// public ResolverMqttMsg(ResolverReportInfoService resolverReportInfoService) { -// this.resolverReportInfoService = resolverReportInfoService; -// } -// -// public static ArrayList stringEvents = new ArrayList<>(){ -// { -// add("malfunction"); //故障事件 -// add("event-realTimeTrajectory"); //实时轨迹数事件 -// add("event-storage"); //存储服务事件 -// add("geofence"); //电子围栏事件 -// } -// }; -//// @Scheduled(fixedRate = 500) //执行频率500毫秒 -// // 执行频率5秒 -// @Scheduled(cron = "0/5 * * * * ?") -// public void start() { -// -// try { -// // 创建客户端 -// MqttClient mqttClient = new MqttClient(BROKER_URL, CLIENT_ID); -// -// // 设置连接参数 -// MqttConnectOptions options = new MqttConnectOptions(); -// -// // 设置是否清除会话 -// options.setCleanSession(true); -// // 连接 -// mqttClient.connect(options); -// -// // 设置回调 -// mqttClient.setCallback(new MqttCallback() { -// -// @Override -// public void connectionLost(Throwable throwable) { -// log.error("Mqtt[{}-{}]连接断开:[{}]", CLIENT_ID, BROKER_URL, throwable.getMessage(), throwable); +package com.zhilian.resolver.resolverReport; +import com.zhilian.common.core.utils.SpringUtils; +import com.zhilian.common.resolver.domain.ResolverReportData; +import com.zhilian.resolver.service.ResolverEventService; +import com.zhilian.resolver.service.ResolverReportInfoService; +import com.zhilian.resolver.service.impl.eventMalfunction.MalfunctionEventServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static com.zhilian.common.resolver.constants.MqttConnectConstants.BROKER_URL; +import static com.zhilian.common.resolver.constants.MqttConnectConstants.CLIENT_ID; + +/** + * @ClassName ResolverMqttMsg + * @Description 获取mqtt报文消息 解析ResolverReportData vehicleData + * @Author Can.J + * @Date 2024/3/30 8:36 + */ +@Slf4j +@Component +public class ResolverMqttMsg { + @Autowired + private MalfunctionEventServiceImpl malfunctionEventService; + + @Autowired + private ResolverReportInfoService resolverReportInfoService; + + @Autowired + public ResolverMqttMsg(ResolverReportInfoService resolverReportInfoService) { + this.resolverReportInfoService = resolverReportInfoService; + } + + public static ArrayList stringEvents = new ArrayList<>(){ + { + add("malfunction"); //故障事件 + add("event-realTimeTrajectory"); //实时轨迹数事件 + add("event-storage"); //存储服务事件 + add("geofence"); //电子围栏事件 + } + }; +// @Scheduled(fixedRate = 500) //执行频率500毫秒 + // 执行频率5秒 + @Scheduled(cron = "0/5 * * * * ?") + public void start() { + + try { + // 创建客户端 + MqttClient mqttClient = new MqttClient(BROKER_URL, CLIENT_ID); + + // 设置连接参数 + MqttConnectOptions options = new MqttConnectOptions(); + + // 设置是否清除会话 + options.setCleanSession(true); + // 连接 + mqttClient.connect(options); + + // 设置回调 + mqttClient.setCallback(new MqttCallback() { + + @Override + public void connectionLost(Throwable throwable) { + log.error("Mqtt[{}-{}]连接断开:[{}]", CLIENT_ID, BROKER_URL, throwable.getMessage(), throwable); + } + + @Override + public void messageArrived(String topic, MqttMessage message) throws Exception { + log.info("主题='{}':消息内容={}", topic, new String(message.getPayload())); + + // 解析后的字符串 + // { ~2BL9IQ15JX3IEL4OZ1712199325613116.659444039.521254072.00030.4900000034800080000163190000D303011.00360000929212560134000281007032000062102.93000070000030120007490003000400016000090000084000011111111111111111z~ } + String str = hexStringToString(new String(message.getPayload())); + + List vehicleDataList = parseVehicleData(str); + + for (ResolverReportData vehicleData : vehicleDataList) { + //str-->vehicleDataList-->vehicleData实例 + log.info("解析到车辆数据:{}", vehicleData); + + for (String stringEvent : stringEvents) { + ResolverEventService resolverEventService =SpringUtils.getBean(stringEvent); + resolverEventService.execute(vehicleData); + +// if(isAnyFieldZero(vehicleData)){ +// malfunctionEventService.execute(vehicleData); +// } + } + } + log.info("字符串:{}",str); + } + +// private boolean isAnyFieldZero(ResolverReportData resolverReportData){ +// return resolverReportData.getChargingStatus() == 0 || +// resolverReportData.getOperatingStatus() == 0 || +// resolverReportData.getSocStatus() == 0 || +// resolverReportData.getVehicleStatus() == 0 || +// resolverReportData.getChargingEnergyStorageStatus() == 0 || +// resolverReportData.getDriveMotorStatus() == 0 || +// resolverReportData.getPositionStatus() == 0 || +// resolverReportData.getEasStatus() == 0 || +// resolverReportData.getPtcStatus() == 0 || +// resolverReportData.getEpsStatus() == 0 || +// resolverReportData.getAbsStatus() == 0 || +// resolverReportData.getMcuStatus() == 0 || +// resolverReportData.getHeatingStatus() == 0 || +// resolverReportData.getBatteryStatus() == 0 || +// resolverReportData.getBatteryInsulationStatus() == 0 || +// resolverReportData.getDcdcStatus() == 0 || +// resolverReportData.getChgStatus() == 0; // } -// -// @Override -// public void messageArrived(String topic, MqttMessage message) throws Exception { -// log.info("主题='{}':消息内容={}", topic, new String(message.getPayload())); -// -// // 解析后的字符串 -// // { ~2BL9IQ15JX3IEL4OZ1712199325613116.659444039.521254072.00030.4900000034800080000163190000D303011.00360000929212560134000281007032000062102.93000070000030120007490003000400016000090000084000011111111111111111z~ } -// String str = hexStringToString(new String(message.getPayload())); -// -// List vehicleDataList = parseVehicleData(str); -// -// for (ResolverReportData vehicleData : vehicleDataList) { -// //str-->vehicleDataList-->vehicleData实例 -// log.info("解析到车辆数据:{}", vehicleData); -// -// for (String stringEvent : stringEvents) { -// ResolverEventService resolverEventService =SpringUtils.getBean(stringEvent); -// resolverEventService.execute(vehicleData); -// -//// if(isAnyFieldZero(vehicleData)){ -//// malfunctionEventService.execute(vehicleData); -//// } -// } -// } -// log.info("字符串:{}",str); -// } -// -//// private boolean isAnyFieldZero(ResolverReportData resolverReportData){ -//// return resolverReportData.getChargingStatus() == 0 || -//// resolverReportData.getOperatingStatus() == 0 || -//// resolverReportData.getSocStatus() == 0 || -//// resolverReportData.getVehicleStatus() == 0 || -//// resolverReportData.getChargingEnergyStorageStatus() == 0 || -//// resolverReportData.getDriveMotorStatus() == 0 || -//// resolverReportData.getPositionStatus() == 0 || -//// resolverReportData.getEasStatus() == 0 || -//// resolverReportData.getPtcStatus() == 0 || -//// resolverReportData.getEpsStatus() == 0 || -//// resolverReportData.getAbsStatus() == 0 || -//// resolverReportData.getMcuStatus() == 0 || -//// resolverReportData.getHeatingStatus() == 0 || -//// resolverReportData.getBatteryStatus() == 0 || -//// resolverReportData.getBatteryInsulationStatus() == 0 || -//// resolverReportData.getDcdcStatus() == 0 || -//// resolverReportData.getChgStatus() == 0; -//// } -// -// @Override -// public void deliveryComplete(IMqttDeliveryToken token) { -// log.info("消息已成功投递:{}",token); -// } -// }); -// -// mqttClient.subscribe("cartest",0); -// -// Thread.sleep(1000*60*10); -// -//// mqttClient.disconnect(); -// } catch (MqttException e) { -// e.printStackTrace(); -// } catch (InterruptedException e) { -// throw new RuntimeException(e); -// } -// -// } -// /** -// * 16进制转换成为string类型字符串 -// * -// * @param s -// * @return -// */ -// public static String hexStringToString(String s) { -// if (s == null || s.equals("")) { -// return null; -// } -// s = s.replace(" ", ""); -// byte[] baKeyword = new byte[s.length() / 2]; -// for (int i = 0; i < baKeyword.length; i++) { -// try { -// baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16)); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// try { -// s = new String(baKeyword, StandardCharsets.UTF_8); -// } catch (Exception e1) { -// e1.printStackTrace(); -// return s; -// } -// return s; -// } -// -// // 解析数据 字符串切割 获取适合的数据 -// private static List parseVehicleData(String str) { -// List vehicleDataList = new ArrayList<>(); -// ResolverReportData vehicleData = new ResolverReportData(); -// -// vehicleData.setVin(str.substring(1,18)); -// -// log.info("vin=="+vehicleData.getVin()); -// -// //时间 -// String tim =str.substring(18,31); -// long timestamp = Long.parseLong(tim); -// -// log.info("时间串=="+tim); -// Date date = new Date(timestamp); -// System.out.println("时间"+date); -// vehicleData.setCreateTime(date); -// log.info("shijian =="+vehicleData.getCreateTime()); -// -// //经度 -// String lt = str.substring(31,42); -// log.info("经度串==:{}",lt); -// // 如果末尾是零,则舍去 -// int endIndex = lt.length() - 1; -// while (lt.charAt(endIndex) == '0'){ -// endIndex--; -// } -// -// String longitude = lt.substring(0, endIndex + 1); -// vehicleData.setLongitude(longitude); -// log.info("经度 =="+vehicleData.getLongitude()); -// -// //维度 -// String latitudeIndex =str.substring(42,52); -// log.info("维度串==:{}",latitudeIndex); -// int endIndexT = latitudeIndex.length() - 1; -// while (latitudeIndex.charAt(endIndexT) == '0'){ -// endIndexT--; -// } -// -// String latitude = latitudeIndex.substring(0, endIndexT + 1); -// vehicleData.setLatitude(latitude); -// log.info("维度==:{}",vehicleData.getLatitude()); -// -// //速度speed -// String speed =str.substring(52,58); -// log.info("速度==:{}",speed); -// vehicleData.setSpeed(speed); -// log.info("速度==:{}",vehicleData.getSpeed()); -// -// //里程 -// BigDecimal mileage= new BigDecimal(str.substring(58,69)); -// log.info("里程==:{}",mileage); -// mileage=mileage.stripTrailingZeros(); -// vehicleData.setMileage(mileage); -// log.info("里程==:{}",vehicleData.getMileage()); -// -// //总电压 -// String voltage =str.substring(69,75); -// log.info("总电压==:{}",voltage); -// while (voltage.endsWith("0")) { -// voltage = voltage.substring(0, voltage.length() - 1); // 去除末尾的零 -// } -// vehicleData.setVoltage(voltage); -// log.info("总电压==:{}",vehicleData.getVoltage()); -// -// //总电流 -// String current =str.substring(75,80); -// log.info("总电流==:{}",current); -// while (current.endsWith("0")){ -// current=current.substring(0,current.length()-1); -// } -// vehicleData.setCurrent(current); -// log.info("总电流==:{}",vehicleData.getCurrent()); -// -// //绝缘电阻 resistance -// String res =str.substring(80,89); -// log.info("绝缘电阻==:{}",res); -// String resistance = res.substring(0, 5); -// vehicleData.setResistance(resistance); -// log.info("绝缘电阻==:{}",vehicleData.getResistance()); -// -// //档位 -// String gear =str.substring(89,90); -// log.info("档位==:{}",gear); -// vehicleData.setGear(gear); -// log.info("档位==:{}",vehicleData.getGear()); -// -// //accelerationPedal 加速踏板行程值 -// String accelerationPedal =str.substring(90,91); -// log.info("加速踏板行程值==:{}",accelerationPedal); -// vehicleData.setAccelerationPedal(accelerationPedal); -// log.info("加速踏板行程值==:{}",vehicleData.getAccelerationPedal()); -// -// //brakePedal 制动踏板行程值 -// String brakePedal =str.substring(92,93); -// log.info("制动踏板行程值==:{}",brakePedal); -// vehicleData.setBrakePedal(brakePedal); -// log.info("制动踏板行程值==:{}",vehicleData.getBrakePedal()); -// -// //fuelConsumptionRate 燃料消耗率 -// String fuelConsumptionRate =str.substring(94,99); -// log.info("燃料消耗率==:{}",fuelConsumptionRate); -// vehicleData.setFuelConsumptionRate(fuelConsumptionRate); -// log.info("燃料消耗率==:{}",vehicleData.getFuelConsumptionRate()); -// -// //motorControllerTemperature 电机控制器温度 -// String motorControllerTemperature =str.substring(99,105); -// while (motorControllerTemperature.endsWith("0")){ -// motorControllerTemperature=motorControllerTemperature.substring(0,motorControllerTemperature.length()-1); -// } -// log.info("电机控制器温度==:{}",motorControllerTemperature); -// vehicleData.setMotorControllerTemperature(motorControllerTemperature); -// log.info("电机控制器温度==:{}",vehicleData.getMotorControllerTemperature()); -// -// //motorSpeed 电机转速 -// String motorSpeed =str.substring(105,110); -// log.info("电机转速==:{}",motorSpeed); -// vehicleData.setMotorSpeed(motorSpeed); -// log.info("电机转速==:{}",vehicleData.getMotorSpeed()); -// -// //motorTorque 电机转矩 -// String motorTorque =str.substring(110,114); -// log.info("电机转矩==:{}",motorTorque); -// while (motorTorque.endsWith("0")){ -// motorTorque=motorTorque.substring(0,motorTorque.length()-1); -// } -// vehicleData.setMotorTorque(motorTorque); -// log.info("电机转矩==:{}",vehicleData.getMotorTorque()); -// -// -// //motorTemperature 电机温度 -// String motorTemperature =str.substring(114,120); -// log.info("电机温度==:{}",motorTemperature); -// while (motorTemperature.endsWith("0")){ -// motorTemperature=motorTemperature.substring(0,motorTemperature.length()-1); -// } -// vehicleData.setMotorTemperature(motorTemperature); -// log.info("电机温度==:{}",vehicleData.getMotorTemperature()); -// -// //motorVoltage 电机电压 -// String motorVoltage =str.substring(120,125); -// log.info("电机电压==:{}",motorVoltage); -// while (motorVoltage.endsWith("0")){ -// motorVoltage=motorVoltage.substring(0,motorVoltage.length()-1); -// } -// vehicleData.setMotorVoltage(motorVoltage); -// log.info("电机电压==:{}",vehicleData.getMotorVoltage()); -// -// //motorCurrent 电机电流 -// String motorCurrent =str.substring(125,133); -// log.info("电机电流==:{}",motorCurrent); -// while (motorCurrent.endsWith("0")){ -// motorCurrent=motorCurrent.substring(0,motorCurrent.length()-1); -// } -// vehicleData.setMotorCurrent(motorCurrent); -// log.info("电机电流==:{}",vehicleData.getMotorCurrent()); -// -// //remainingBattery 动力电池剩余电量SOC -// BigDecimal remainingBattery = new BigDecimal(str.substring(133,138)); -// log.info("动力电池剩余电量SOC==:{}",remainingBattery); -// vehicleData.setRemainingBattery(remainingBattery); -// log.info("动力电池剩余电量SOC==:{}",vehicleData.getRemainingBattery()); -// -// //maximumFeedbackPower 当前状态允许的最大反馈功率 -// String maximumFeedbackPower =str.substring(139,144); -// log.info("当前状态允许的最大反馈功率==:{}",maximumFeedbackPower); -// while (maximumFeedbackPower.endsWith("0")){ -// maximumFeedbackPower=maximumFeedbackPower.substring(0,maximumFeedbackPower.length()-1); -// } -// vehicleData.setMaximumFeedbackPower(maximumFeedbackPower); -// log.info("当前状态允许的最大反馈功率==:{}",vehicleData.getMaximumFeedbackPower()); -// -// //maximumDischargePower 当前状态允许最大放电功率 -// String maximumDischargePower =str.substring(145,151); -// log.info("当前状态允许最大放电功率:{}",maximumDischargePower); -// while (maximumDischargePower.endsWith("0")){ -// maximumDischargePower=maximumDischargePower.substring(0,maximumDischargePower.length()-1); -// } -// vehicleData.setMaximumDischargePower(maximumDischargePower); -// log.info("当前状态允许最大放电功率:{}",vehicleData.getMaximumDischargePower()); -// -// //selfCheckCounter BMS自检计数器 -// String selfCheckCounter =str.substring(151,153); -// String selfCheckCounterReplace = selfCheckCounter.replace("0", ""); -// log.info("BMS自检计数器==:{}",selfCheckCounter); -// vehicleData.setSelfCheckCounter(selfCheckCounterReplace); -// log.info("BMS自检计数器==:{}",vehicleData.getSelfCheckCounter()); -// -// //totalBatteryCurrent 动力电池充放电电流 -// String totalBatteryCurrent =str.substring(153,158); -// log.info("BMS自检计数器==:{}",totalBatteryCurrent); -// while (totalBatteryCurrent.endsWith("0")){ -// totalBatteryCurrent=totalBatteryCurrent.substring(0,totalBatteryCurrent.length()-1); -// } -// vehicleData.setTotalBatteryCurrent(totalBatteryCurrent); -// log.info("BMS自检计数器==:{}",vehicleData.getTotalBatteryCurrent()); -// -// //totalBatteryVoltage 动力电池负载端总电压V3 -// String totalBatteryVoltage =str.substring(158,164); -// log.info("动力电池负载端总电压V3==:{}",totalBatteryVoltage); -// while (totalBatteryVoltage.endsWith("0")){ -// totalBatteryVoltage=totalBatteryVoltage.substring(0,totalBatteryVoltage.length()-1); -// } -// vehicleData.setTotalBatteryVoltage(totalBatteryVoltage); -// log.info("动力电池负载端总电压V3==:{}",vehicleData.getTotalBatteryVoltage()); -// -// //singleBatteryMaxVoltage 单次最大电压 -// String singleBatteryMaxVoltage =str.substring(164,168); -// log.info("单次最大电压==:{}",singleBatteryMaxVoltage); -// while (singleBatteryMaxVoltage.endsWith("0")){ -// singleBatteryMaxVoltage=singleBatteryMaxVoltage.substring(0,singleBatteryMaxVoltage.length()-1); -// } -// vehicleData.setSingleBatteryMaxVoltage(singleBatteryMaxVoltage); -// log.info("单次最大电压==:{}",vehicleData.getSingleBatteryMaxVoltage()); -// -// //singleBatteryMinVoltage 单体电池最低电压 -// String singleBatteryMinVoltage =str.substring(168,172); -// log.info("单体电池最低电压==:{}",singleBatteryMinVoltage); -// while (singleBatteryMinVoltage.endsWith("0")){ -// singleBatteryMinVoltage=singleBatteryMinVoltage.substring(0,singleBatteryMinVoltage.length()-1); -// } -// -// vehicleData.setSingleBatteryMinVoltage(singleBatteryMinVoltage); -// log.info("单体电池最低电压==:{}",vehicleData.getSingleBatteryMinVoltage()); -// -// //singleBatteryMaxTemperature 单体电池最高温度 -// String singleBatteryMaxTemperature =str.substring(172,178); -// log.info("单体电池最高温度==:{}",singleBatteryMaxTemperature); -// while (singleBatteryMaxTemperature.endsWith("0")){ -// singleBatteryMaxTemperature=singleBatteryMaxTemperature.substring(0,singleBatteryMaxTemperature.length()-1); -// } -// vehicleData.setSingleBatteryMaxTemperature(singleBatteryMaxTemperature); -// log.info("单体电池最高温度==:{}",vehicleData.getSingleBatteryMaxTemperature()); -// -// //singleBatteryMinTemperature 单体电池最低温度 -// String singleBatteryMinTemperature =str.substring(178,184); -// log.info("单体电池最低温度==:{}",singleBatteryMinTemperature); -// while (singleBatteryMinTemperature.endsWith("0")){ -// singleBatteryMinTemperature=singleBatteryMinTemperature.substring(0,singleBatteryMinTemperature.length()-1); -// } -// vehicleData.setSingleBatteryMinTemperature(singleBatteryMinTemperature); -// log.info("单体电池最低温度==:{}",vehicleData.getSingleBatteryMinTemperature()); -// -// //availableBatteryCapacity 可用电池容量 -// String availableBatteryCapacity =str.substring(184,190); -// log.info("可用电池容量==:{}",availableBatteryCapacity); -// while (availableBatteryCapacity.endsWith("0")){ -// availableBatteryCapacity=availableBatteryCapacity.substring(0,availableBatteryCapacity.length()-1); -// } -// vehicleData.setAvailableBatteryCapacity(availableBatteryCapacity); -// log.info("可用电池容量==:{}",vehicleData.getAvailableBatteryCapacity()); -// -// //vehicleStatus 车辆状态 -// int vehicleStatus = Integer.parseInt(str.substring(190,191)); -// vehicleData.setVehicleStatus(vehicleStatus); -// log.info("车辆状态==:{}",vehicleData.getVehicleStatus()); -// -// //chargingStatus 充电状态 -// int chargingStatus = Integer.parseInt(str.substring(191,192)); -// vehicleData.setChargingStatus(chargingStatus); -// log.info("充电状态==:{}",vehicleData.getChargingStatus()); -// -// //operatingStatus 运行状态 -// int operatingStatus = Integer.parseInt(str.substring(192,193)); -// vehicleData.setOperatingStatus(operatingStatus); -// log.info("运行状态==:{}",vehicleData.getOperatingStatus()); -// -// //socStatus SOC -// int socStatus = Integer.parseInt(str.substring(193,194)); -// vehicleData.setSocStatus(socStatus); -// log.info("SOC==:{}",vehicleData.getSocStatus()); -// -// //chargingEnergyStorageStatus 可充电储能装置工作状态 -// int chargingEnergyStorageStatus = Integer.parseInt(str.substring(194,195)); -// vehicleData.setChargingEnergyStorageStatus(chargingEnergyStorageStatus); -// log.info("可充电储能装置工作状态==:{}",vehicleData.getChargingEnergyStorageStatus()); -// -// //driveMotorStatus 驱动电机状态 -// int driveMotorStatus = Integer.parseInt(str.substring(195,196)); -// vehicleData.setDriveMotorStatus(driveMotorStatus); -// log.info("驱动电机状态==:{}",vehicleData.getDriveMotorStatus()); -// -// //positionStatus 定位是否有效 -// int positionStatus = Integer.parseInt(str.substring(196,197)); -// vehicleData.setPositionStatus(positionStatus); -// log.info("定位是否有效==:{}",vehicleData.getPositionStatus()); -// -// //easStatus EAS(汽车防盗系统)状态 -// int easStatus = Integer.parseInt(str.substring(197,198)); -// vehicleData.setEasStatus(easStatus); -// log.info("EAS(汽车防盗系统)状态==:{}",vehicleData.getEasStatus()); -// -// //ptcStatus PTC(电动加热器)状态 -// int ptcStatus = Integer.parseInt(str.substring(198,199)); -// vehicleData.setPtcStatus(ptcStatus); -// log.info("PTC(电动加热器)状态==:{}",vehicleData.getPtcStatus()); -// -// //epsStatus -// int epsStatus = Integer.parseInt(str.substring(199,200)); -// vehicleData.setEpsStatus(epsStatus); -// log.info("车辆状态==:{}",vehicleData.getEpsStatus()); -// -// //absStatus EPS(电动助力系统)状态 -// int absStatus = Integer.parseInt(str.substring(200,201)); -// vehicleData.setAbsStatus(absStatus); -// log.info("EPS(电动助力系统)状态==:{}",vehicleData.getAbsStatus()); -// -// //mcuStatus MCU(电机/逆变器)状态 -// int mcuStatus = Integer.parseInt(str.substring(201,202)); -// vehicleData.setMcuStatus(mcuStatus); -// log.info("MCU(电机/逆变器)状态==:{}",vehicleData.getMcuStatus()); -// -// //heatingStatus 动力电池加热状态 -// int heatingStatus = Integer.parseInt(str.substring(202,203)); -// vehicleData.setHeatingStatus(heatingStatus); -// log.info("动力电池加热状态==:{}",vehicleData.getHeatingStatus()); -// -// //batteryStatus 动力电池当前状态 -// int batteryStatus = Integer.parseInt(str.substring(203,204)); -// vehicleData.setBatteryStatus(batteryStatus); -// log.info("动力电池当前状态==:{}",vehicleData.getBatteryStatus()); -// -// //batteryInsulationStatus 动力电池保温状态 -// int batteryInsulationStatus = Integer.parseInt(str.substring(204,205)); -// vehicleData.setBatteryInsulationStatus(batteryInsulationStatus); -// log.info("动力电池保温状态==:{}",vehicleData.getBatteryInsulationStatus()); -// -// //dcdcStatus DCDC(电力交换系统)状态 -// int dcdcStatus = Integer.parseInt(str.substring(205,206)); -// vehicleData.setDcdcStatus(dcdcStatus); -// log.info("DCDC(电力交换系统)状态==:{}",vehicleData.getDcdcStatus()); -// -// //chgStatus CHG(充电机)状态 -// int chgStatus = Integer.parseInt(str.substring(206,207)); -// vehicleData.setChgStatus(chgStatus); -// log.info("CHG(充电机)状态 ==:{}",vehicleData.getChgStatus()); -// -// log.info("车辆数据解析完成:{}",vehicleData); -// -// vehicleDataList.add(vehicleData); -// -// return vehicleDataList; -// } -//} + + @Override + public void deliveryComplete(IMqttDeliveryToken token) { + log.info("消息已成功投递:{}",token); + } + }); + + mqttClient.subscribe("cartest",0); + + Thread.sleep(1000*60*10); + +// mqttClient.disconnect(); + } catch (MqttException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + } + /** + * 16进制转换成为string类型字符串 + * + * @param s + * @return + */ + public static String hexStringToString(String s) { + if (s == null || s.equals("")) { + return null; + } + s = s.replace(" ", ""); + byte[] baKeyword = new byte[s.length() / 2]; + for (int i = 0; i < baKeyword.length; i++) { + try { + baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16)); + } catch (Exception e) { + e.printStackTrace(); + } + } + try { + s = new String(baKeyword, StandardCharsets.UTF_8); + } catch (Exception e1) { + e1.printStackTrace(); + return s; + } + return s; + } + + // 解析数据 字符串切割 获取适合的数据 + private static List parseVehicleData(String str) { + List vehicleDataList = new ArrayList<>(); + ResolverReportData vehicleData = new ResolverReportData(); + + vehicleData.setVin(str.substring(1,18)); + + log.info("vin=="+vehicleData.getVin()); + + //时间 + String tim =str.substring(18,31); + long timestamp = Long.parseLong(tim); + + log.info("时间串=="+tim); + Date date = new Date(timestamp); + System.out.println("时间"+date); + vehicleData.setCreateTime(date); + log.info("shijian =="+vehicleData.getCreateTime()); + + //经度 + String lt = str.substring(31,42); + log.info("经度串==:{}",lt); + // 如果末尾是零,则舍去 + int endIndex = lt.length() - 1; + while (lt.charAt(endIndex) == '0'){ + endIndex--; + } + + String longitude = lt.substring(0, endIndex + 1); + vehicleData.setLongitude(longitude); + log.info("经度 =="+vehicleData.getLongitude()); + + //维度 + String latitudeIndex =str.substring(42,52); + log.info("维度串==:{}",latitudeIndex); + int endIndexT = latitudeIndex.length() - 1; + while (latitudeIndex.charAt(endIndexT) == '0'){ + endIndexT--; + } + + String latitude = latitudeIndex.substring(0, endIndexT + 1); + vehicleData.setLatitude(latitude); + log.info("维度==:{}",vehicleData.getLatitude()); + + //速度speed + String speed =str.substring(52,58); + log.info("速度==:{}",speed); + vehicleData.setSpeed(speed); + log.info("速度==:{}",vehicleData.getSpeed()); + + //里程 + BigDecimal mileage= new BigDecimal(str.substring(58,69)); + log.info("里程==:{}",mileage); + mileage=mileage.stripTrailingZeros(); + vehicleData.setMileage(mileage); + log.info("里程==:{}",vehicleData.getMileage()); + + //总电压 + String voltage =str.substring(69,75); + log.info("总电压==:{}",voltage); + while (voltage.endsWith("0")) { + voltage = voltage.substring(0, voltage.length() - 1); // 去除末尾的零 + } + vehicleData.setVoltage(voltage); + log.info("总电压==:{}",vehicleData.getVoltage()); + + //总电流 + String current =str.substring(75,80); + log.info("总电流==:{}",current); + while (current.endsWith("0")){ + current=current.substring(0,current.length()-1); + } + vehicleData.setCurrent(current); + log.info("总电流==:{}",vehicleData.getCurrent()); + + //绝缘电阻 resistance + String res =str.substring(80,89); + log.info("绝缘电阻==:{}",res); + String resistance = res.substring(0, 5); + vehicleData.setResistance(resistance); + log.info("绝缘电阻==:{}",vehicleData.getResistance()); + + //档位 + String gear =str.substring(89,90); + log.info("档位==:{}",gear); + vehicleData.setGear(gear); + log.info("档位==:{}",vehicleData.getGear()); + + //accelerationPedal 加速踏板行程值 + String accelerationPedal =str.substring(90,91); + log.info("加速踏板行程值==:{}",accelerationPedal); + vehicleData.setAccelerationPedal(accelerationPedal); + log.info("加速踏板行程值==:{}",vehicleData.getAccelerationPedal()); + + //brakePedal 制动踏板行程值 + String brakePedal =str.substring(92,93); + log.info("制动踏板行程值==:{}",brakePedal); + vehicleData.setBrakePedal(brakePedal); + log.info("制动踏板行程值==:{}",vehicleData.getBrakePedal()); + + //fuelConsumptionRate 燃料消耗率 + String fuelConsumptionRate =str.substring(94,99); + log.info("燃料消耗率==:{}",fuelConsumptionRate); + vehicleData.setFuelConsumptionRate(fuelConsumptionRate); + log.info("燃料消耗率==:{}",vehicleData.getFuelConsumptionRate()); + + //motorControllerTemperature 电机控制器温度 + String motorControllerTemperature =str.substring(99,105); + while (motorControllerTemperature.endsWith("0")){ + motorControllerTemperature=motorControllerTemperature.substring(0,motorControllerTemperature.length()-1); + } + log.info("电机控制器温度==:{}",motorControllerTemperature); + vehicleData.setMotorControllerTemperature(motorControllerTemperature); + log.info("电机控制器温度==:{}",vehicleData.getMotorControllerTemperature()); + + //motorSpeed 电机转速 + String motorSpeed =str.substring(105,110); + log.info("电机转速==:{}",motorSpeed); + vehicleData.setMotorSpeed(motorSpeed); + log.info("电机转速==:{}",vehicleData.getMotorSpeed()); + + //motorTorque 电机转矩 + String motorTorque =str.substring(110,114); + log.info("电机转矩==:{}",motorTorque); + while (motorTorque.endsWith("0")){ + motorTorque=motorTorque.substring(0,motorTorque.length()-1); + } + vehicleData.setMotorTorque(motorTorque); + log.info("电机转矩==:{}",vehicleData.getMotorTorque()); + + + //motorTemperature 电机温度 + String motorTemperature =str.substring(114,120); + log.info("电机温度==:{}",motorTemperature); + while (motorTemperature.endsWith("0")){ + motorTemperature=motorTemperature.substring(0,motorTemperature.length()-1); + } + vehicleData.setMotorTemperature(motorTemperature); + log.info("电机温度==:{}",vehicleData.getMotorTemperature()); + + //motorVoltage 电机电压 + String motorVoltage =str.substring(120,125); + log.info("电机电压==:{}",motorVoltage); + while (motorVoltage.endsWith("0")){ + motorVoltage=motorVoltage.substring(0,motorVoltage.length()-1); + } + vehicleData.setMotorVoltage(motorVoltage); + log.info("电机电压==:{}",vehicleData.getMotorVoltage()); + + //motorCurrent 电机电流 + String motorCurrent =str.substring(125,133); + log.info("电机电流==:{}",motorCurrent); + while (motorCurrent.endsWith("0")){ + motorCurrent=motorCurrent.substring(0,motorCurrent.length()-1); + } + vehicleData.setMotorCurrent(motorCurrent); + log.info("电机电流==:{}",vehicleData.getMotorCurrent()); + + //remainingBattery 动力电池剩余电量SOC + BigDecimal remainingBattery = new BigDecimal(str.substring(133,138)); + log.info("动力电池剩余电量SOC==:{}",remainingBattery); + vehicleData.setRemainingBattery(remainingBattery); + log.info("动力电池剩余电量SOC==:{}",vehicleData.getRemainingBattery()); + + //maximumFeedbackPower 当前状态允许的最大反馈功率 + String maximumFeedbackPower =str.substring(139,144); + log.info("当前状态允许的最大反馈功率==:{}",maximumFeedbackPower); + while (maximumFeedbackPower.endsWith("0")){ + maximumFeedbackPower=maximumFeedbackPower.substring(0,maximumFeedbackPower.length()-1); + } + vehicleData.setMaximumFeedbackPower(maximumFeedbackPower); + log.info("当前状态允许的最大反馈功率==:{}",vehicleData.getMaximumFeedbackPower()); + + //maximumDischargePower 当前状态允许最大放电功率 + String maximumDischargePower =str.substring(145,151); + log.info("当前状态允许最大放电功率:{}",maximumDischargePower); + while (maximumDischargePower.endsWith("0")){ + maximumDischargePower=maximumDischargePower.substring(0,maximumDischargePower.length()-1); + } + vehicleData.setMaximumDischargePower(maximumDischargePower); + log.info("当前状态允许最大放电功率:{}",vehicleData.getMaximumDischargePower()); + + //selfCheckCounter BMS自检计数器 + String selfCheckCounter =str.substring(151,153); + String selfCheckCounterReplace = selfCheckCounter.replace("0", ""); + log.info("BMS自检计数器==:{}",selfCheckCounter); + vehicleData.setSelfCheckCounter(selfCheckCounterReplace); + log.info("BMS自检计数器==:{}",vehicleData.getSelfCheckCounter()); + + //totalBatteryCurrent 动力电池充放电电流 + String totalBatteryCurrent =str.substring(153,158); + log.info("BMS自检计数器==:{}",totalBatteryCurrent); + while (totalBatteryCurrent.endsWith("0")){ + totalBatteryCurrent=totalBatteryCurrent.substring(0,totalBatteryCurrent.length()-1); + } + vehicleData.setTotalBatteryCurrent(totalBatteryCurrent); + log.info("BMS自检计数器==:{}",vehicleData.getTotalBatteryCurrent()); + + //totalBatteryVoltage 动力电池负载端总电压V3 + String totalBatteryVoltage =str.substring(158,164); + log.info("动力电池负载端总电压V3==:{}",totalBatteryVoltage); + while (totalBatteryVoltage.endsWith("0")){ + totalBatteryVoltage=totalBatteryVoltage.substring(0,totalBatteryVoltage.length()-1); + } + vehicleData.setTotalBatteryVoltage(totalBatteryVoltage); + log.info("动力电池负载端总电压V3==:{}",vehicleData.getTotalBatteryVoltage()); + + //singleBatteryMaxVoltage 单次最大电压 + String singleBatteryMaxVoltage =str.substring(164,168); + log.info("单次最大电压==:{}",singleBatteryMaxVoltage); + while (singleBatteryMaxVoltage.endsWith("0")){ + singleBatteryMaxVoltage=singleBatteryMaxVoltage.substring(0,singleBatteryMaxVoltage.length()-1); + } + vehicleData.setSingleBatteryMaxVoltage(singleBatteryMaxVoltage); + log.info("单次最大电压==:{}",vehicleData.getSingleBatteryMaxVoltage()); + + //singleBatteryMinVoltage 单体电池最低电压 + String singleBatteryMinVoltage =str.substring(168,172); + log.info("单体电池最低电压==:{}",singleBatteryMinVoltage); + while (singleBatteryMinVoltage.endsWith("0")){ + singleBatteryMinVoltage=singleBatteryMinVoltage.substring(0,singleBatteryMinVoltage.length()-1); + } + + vehicleData.setSingleBatteryMinVoltage(singleBatteryMinVoltage); + log.info("单体电池最低电压==:{}",vehicleData.getSingleBatteryMinVoltage()); + + //singleBatteryMaxTemperature 单体电池最高温度 + String singleBatteryMaxTemperature =str.substring(172,178); + log.info("单体电池最高温度==:{}",singleBatteryMaxTemperature); + while (singleBatteryMaxTemperature.endsWith("0")){ + singleBatteryMaxTemperature=singleBatteryMaxTemperature.substring(0,singleBatteryMaxTemperature.length()-1); + } + vehicleData.setSingleBatteryMaxTemperature(singleBatteryMaxTemperature); + log.info("单体电池最高温度==:{}",vehicleData.getSingleBatteryMaxTemperature()); + + //singleBatteryMinTemperature 单体电池最低温度 + String singleBatteryMinTemperature =str.substring(178,184); + log.info("单体电池最低温度==:{}",singleBatteryMinTemperature); + while (singleBatteryMinTemperature.endsWith("0")){ + singleBatteryMinTemperature=singleBatteryMinTemperature.substring(0,singleBatteryMinTemperature.length()-1); + } + vehicleData.setSingleBatteryMinTemperature(singleBatteryMinTemperature); + log.info("单体电池最低温度==:{}",vehicleData.getSingleBatteryMinTemperature()); + + //availableBatteryCapacity 可用电池容量 + String availableBatteryCapacity =str.substring(184,190); + log.info("可用电池容量==:{}",availableBatteryCapacity); + while (availableBatteryCapacity.endsWith("0")){ + availableBatteryCapacity=availableBatteryCapacity.substring(0,availableBatteryCapacity.length()-1); + } + vehicleData.setAvailableBatteryCapacity(availableBatteryCapacity); + log.info("可用电池容量==:{}",vehicleData.getAvailableBatteryCapacity()); + + //vehicleStatus 车辆状态 + int vehicleStatus = Integer.parseInt(str.substring(190,191)); + vehicleData.setVehicleStatus(vehicleStatus); + log.info("车辆状态==:{}",vehicleData.getVehicleStatus()); + + //chargingStatus 充电状态 + int chargingStatus = Integer.parseInt(str.substring(191,192)); + vehicleData.setChargingStatus(chargingStatus); + log.info("充电状态==:{}",vehicleData.getChargingStatus()); + + //operatingStatus 运行状态 + int operatingStatus = Integer.parseInt(str.substring(192,193)); + vehicleData.setOperatingStatus(operatingStatus); + log.info("运行状态==:{}",vehicleData.getOperatingStatus()); + + //socStatus SOC + int socStatus = Integer.parseInt(str.substring(193,194)); + vehicleData.setSocStatus(socStatus); + log.info("SOC==:{}",vehicleData.getSocStatus()); + + //chargingEnergyStorageStatus 可充电储能装置工作状态 + int chargingEnergyStorageStatus = Integer.parseInt(str.substring(194,195)); + vehicleData.setChargingEnergyStorageStatus(chargingEnergyStorageStatus); + log.info("可充电储能装置工作状态==:{}",vehicleData.getChargingEnergyStorageStatus()); + + //driveMotorStatus 驱动电机状态 + int driveMotorStatus = Integer.parseInt(str.substring(195,196)); + vehicleData.setDriveMotorStatus(driveMotorStatus); + log.info("驱动电机状态==:{}",vehicleData.getDriveMotorStatus()); + + //positionStatus 定位是否有效 + int positionStatus = Integer.parseInt(str.substring(196,197)); + vehicleData.setPositionStatus(positionStatus); + log.info("定位是否有效==:{}",vehicleData.getPositionStatus()); + + //easStatus EAS(汽车防盗系统)状态 + int easStatus = Integer.parseInt(str.substring(197,198)); + vehicleData.setEasStatus(easStatus); + log.info("EAS(汽车防盗系统)状态==:{}",vehicleData.getEasStatus()); + + //ptcStatus PTC(电动加热器)状态 + int ptcStatus = Integer.parseInt(str.substring(198,199)); + vehicleData.setPtcStatus(ptcStatus); + log.info("PTC(电动加热器)状态==:{}",vehicleData.getPtcStatus()); + + //epsStatus + int epsStatus = Integer.parseInt(str.substring(199,200)); + vehicleData.setEpsStatus(epsStatus); + log.info("车辆状态==:{}",vehicleData.getEpsStatus()); + + //absStatus EPS(电动助力系统)状态 + int absStatus = Integer.parseInt(str.substring(200,201)); + vehicleData.setAbsStatus(absStatus); + log.info("EPS(电动助力系统)状态==:{}",vehicleData.getAbsStatus()); + + //mcuStatus MCU(电机/逆变器)状态 + int mcuStatus = Integer.parseInt(str.substring(201,202)); + vehicleData.setMcuStatus(mcuStatus); + log.info("MCU(电机/逆变器)状态==:{}",vehicleData.getMcuStatus()); + + //heatingStatus 动力电池加热状态 + int heatingStatus = Integer.parseInt(str.substring(202,203)); + vehicleData.setHeatingStatus(heatingStatus); + log.info("动力电池加热状态==:{}",vehicleData.getHeatingStatus()); + + //batteryStatus 动力电池当前状态 + int batteryStatus = Integer.parseInt(str.substring(203,204)); + vehicleData.setBatteryStatus(batteryStatus); + log.info("动力电池当前状态==:{}",vehicleData.getBatteryStatus()); + + //batteryInsulationStatus 动力电池保温状态 + int batteryInsulationStatus = Integer.parseInt(str.substring(204,205)); + vehicleData.setBatteryInsulationStatus(batteryInsulationStatus); + log.info("动力电池保温状态==:{}",vehicleData.getBatteryInsulationStatus()); + + //dcdcStatus DCDC(电力交换系统)状态 + int dcdcStatus = Integer.parseInt(str.substring(205,206)); + vehicleData.setDcdcStatus(dcdcStatus); + log.info("DCDC(电力交换系统)状态==:{}",vehicleData.getDcdcStatus()); + + //chgStatus CHG(充电机)状态 + int chgStatus = Integer.parseInt(str.substring(206,207)); + vehicleData.setChgStatus(chgStatus); + log.info("CHG(充电机)状态 ==:{}",vehicleData.getChgStatus()); + + log.info("车辆数据解析完成:{}",vehicleData); + + vehicleDataList.add(vehicleData); + + return vehicleDataList; + } +} diff --git a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/service/impl/eventMalfunction/MalfunctionEventServiceImpl.java b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/service/impl/eventMalfunction/MalfunctionEventServiceImpl.java index 775e64a..660db86 100644 --- a/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/service/impl/eventMalfunction/MalfunctionEventServiceImpl.java +++ b/zhilian-modules/zhilian-resolver/src/main/java/com/zhilian/resolver/service/impl/eventMalfunction/MalfunctionEventServiceImpl.java @@ -1,8 +1,9 @@ package com.zhilian.resolver.service.impl.eventMalfunction; import com.alibaba.fastjson.JSON; +import com.zhilian.business.domain.BusinessBreak; +import com.zhilian.business.remote.RemoteBreakService; import com.zhilian.common.redis.service.RedisService; -import com.zhilian.common.resolver.domain.ErrorCar; import com.zhilian.common.resolver.domain.ResolverReportData; import com.zhilian.resolver.mapper.UserMapper; import com.zhilian.resolver.service.ResolverEventService; @@ -11,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.concurrent.TimeUnit; /** @@ -37,109 +39,179 @@ public class MalfunctionEventServiceImpl implements ResolverEventService { @Autowired private ResolverReportInfoService resolverReportInfoService; + @Autowired + private RemoteBreakService remoteBreakService; + @Override public void execute(ResolverReportData vehicleData) { log.info("故障事件开始执行"); if(isAnyFieldZero(vehicleData)){ resolverReportInfoService.saveDataToDatabaseByMalfunction(vehicleData); - - ErrorCar errorCar = new ErrorCar(); - errorCar.setVin(vehicleData.getVin()); + BusinessBreak businessBreak = new BusinessBreak(); + businessBreak.setBreakVin(vehicleData.getVin()); // * 车辆状态 1:正常 0:故障 if(vehicleData.getVehicleStatus()==0){ - errorCar.setCode("GZ001"); - errorCar.setLevel(1); + businessBreak.setBreakCode("CL001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("车体故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); } // * 充电状态 1:正常 0:故障 // private int chargingStatus; if(vehicleData.getChargingStatus()==0){ - errorCar.setCode("GZ001"); - errorCar.setLevel(1); + businessBreak.setBreakCode("CD001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); } // * 运行状态 1:正常 0:故障 if(vehicleData.getOperatingStatus()==0){ - errorCar.setCode("GZ002"); - errorCar.setLevel(3); + businessBreak.setBreakCode("DW001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("行驶故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); } // * SOC 状态 1:正常 0:故障 if(vehicleData.getSocStatus()==0){ - errorCar.setCode("GZ003"); - errorCar.setLevel(3); + businessBreak.setBreakCode("SOC001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); } - // - // /** - // * 可充电储能装置工作状态 1:正常 0:故障 - // */ - // private int chargingEnergyStorageStatus; - // - // /** - // * 驱动电机状态 1:正常 0:故障 - // */ - // private int driveMotorStatus; - // - // /** - // * 定位是否有效 1:有效 0:无效 - // */ - // private int positionStatus; - // - // /** + + // 可充电储能装置工作状态 1:正常 0:故障; + if(vehicleData.getChargingEnergyStorageStatus()==0){ + businessBreak.setBreakCode("CDC001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + + // 驱动电机状态 1:正常 0:故障 + if(vehicleData.getDriveMotorStatus()==0){ + businessBreak.setBreakCode("DJ001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电机故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + + // 定位是否有效 1:有效 0:无效 + if(vehicleData.getPositionStatus()==0){ + businessBreak.setBreakCode("SOC001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("定位故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * EAS(汽车防盗系统)状态 1:正常 0:故障 - // */ - // private int easStatus; - // - // /** + if(vehicleData.getEasStatus()==0){ + businessBreak.setBreakCode("EAS001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("EAS故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * PTC(电动加热器)状态 1:正常 0:故障 - // */ - // private int ptcStatus; - // - // /** + if(vehicleData.getPtcStatus()==0){ + businessBreak.setBreakCode("PTC001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("加热故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * EPS(电动助力系统)状态 1:正常 0:故障 - // */ - // private int epsStatus; - // - // /** + if(vehicleData.getEpsStatus()==0){ + businessBreak.setBreakCode("EPS001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电动助力故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * ABS(防抱死)状态 1:正常 0:故障 - // */ - // private int absStatus; - // - // /** + if(vehicleData.getAbsStatus()==0){ + businessBreak.setBreakCode("ABS001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("ABS故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * MCU(电机/逆变器)状态 1:正常 0:故障 - // */ - // private int mcuStatus; - // - // /** + if(vehicleData.getMcuStatus()==0){ + businessBreak.setBreakCode("MCU001"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("MCU故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * 动力电池加热状态 1:正常 0:故障 - // */ - // private int heatingStatus; - // - // /** + if(vehicleData.getHeatingStatus()==0){ + businessBreak.setBreakCode("DC002"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * 动力电池当前状态 1:正常 0:故障 - // */ - // private int batteryStatus; - // - // /** + if(vehicleData.getBatteryStatus()==0){ + businessBreak.setBreakCode("DC003"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * 动力电池保温状态 1:正常 0:故障 - // */ - // private int batteryInsulationStatus; - // - // /** + if(vehicleData.getBatteryInsulationStatus()==0){ + businessBreak.setBreakCode("DC004"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电池故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * DCDC(电力交换系统) 状态 1:正常 0:故障 - // */ - // private int dcdcStatus; - // - // /** + if(vehicleData.getDcdcStatus()==0){ + businessBreak.setBreakCode("DCDC005"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电力故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + // * CHG(充电机)状态 1:正常 0:故障 - // */ - // private int chgStatus; - String key = "breakdown"; - String value = JSON.toJSONString(errorCar); - redisService.setCacheObject(key,value); + if(vehicleData.getChgStatus()==0){ + businessBreak.setBreakCode("CDJ005"); + businessBreak.setBreakDate(new Date()); + businessBreak.setBreakType("电力故障"); + businessBreak.setBreakState("1"); + remoteBreakService.add(businessBreak); + } + + + + +// String key = "breakdown"; + String value = JSON.toJSONString(businessBreak); + redisService.setCacheObject("breakdown:gz:"+vehicleData.getVin(),value); long expireTime = 30; - redisService.expire(key, expireTime, TimeUnit.MINUTES); + redisService.expire("breakdown:gz:"+vehicleData.getVin(), expireTime, TimeUnit.MINUTES); }