diff --git a/Entity/DbModel/Station/AmtOrderInfo.cs b/Entity/DbModel/Station/AmtOrderInfo.cs
deleted file mode 100644
index 7efa3f4..0000000
--- a/Entity/DbModel/Station/AmtOrderInfo.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-using SqlSugar;
-
-namespace Entity.DbModel.Station
-{
- ///
- ///预约订单表
- ///
- [SugarTable("amt_order_info")]
- public partial class AmtOrderInfo
- {
- public AmtOrderInfo()
- {
- }
-
- ///
- /// Desc:主键
- /// Default:
- /// Nullable:False
- ///
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "id")]
- public long Id { get; set; }
-
- ///
- /// Desc:换电站编码
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "sn")]
- public string Sn { get; set; }
-
- ///
- /// Desc:车辆编码
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "car_no")]
- public string CarNo { get; set; }
-
- ///
- /// Desc:预约单号
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "order_no")]
- public string? OrderNo { get; set; }
-
- ///
- /// Desc:车辆vim码
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "vin")]
- public string Vin { get; set; }
-
- ///
- /// Desc:预约电池类型编号
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "battery_type")]
- public string BatteryType { get; set; }
-
- ///
- /// Desc:预约电池编号
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "battery_nos")]
- public string BatteryNos { get; set; }
-
- ///
- /// Desc:预约数量
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "batnum")]
- public int? Batnum { get; set; }
-
- ///
- /// Desc:预约电池锁仓仓号
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "bin_nos")]
- public string BinNos { get; set; }
-
- ///
- /// Desc:预约时间
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "start_time")]
- public DateTime? StartTime { get; set; }
-
- ///
- /// Desc:预约到期时间
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "end_time")]
- public DateTime? EndTime { get; set; }
-
- ///
- /// Desc:预约单状态:1:预约成功;2:预约取消;3:预约失败;4:换电完成;5:换电失败;6:换电中;7:预约过期
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "status")]
- public byte? Status { get; set; }
-
- ///
- /// Desc:取消时间
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "cancel_time")]
- public DateTime? CancelTime { get; set; }
-
- ///
- /// Desc:换电完成时间
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "swap_finish_time")]
- public DateTime? SwapFinishTime { get; set; }
-
- ///
- /// Desc:换电订单编号
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "swap_order_no")]
- public string SwapOrderNo { get; set; }
-
- ///
- /// Desc:创建人
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "created_by")]
- public string CreatedBy { get; set; }
-
- ///
- /// Desc:创建时间
- /// Default:CURRENT_TIMESTAMP
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "created_time")]
- public DateTime? CreatedTime { get; set; }
-
- ///
- /// Desc:更新人
- /// Default:
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "updated_by")]
- public string UpdatedBy { get; set; }
-
- ///
- /// Desc:更新时间
- /// Default:CURRENT_TIMESTAMP
- /// Nullable:True
- ///
- [SugarColumn(ColumnName = "updated_time")]
- public DateTime? UpdatedTime { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Entity/DbModel/Station/SwapAmtOrder.cs b/Entity/DbModel/Station/SwapAmtOrder.cs
index f89c06e..f0115f8 100644
--- a/Entity/DbModel/Station/SwapAmtOrder.cs
+++ b/Entity/DbModel/Station/SwapAmtOrder.cs
@@ -36,24 +36,24 @@ namespace Entity.DbModel.Station
/// Default:
/// Nullable:True
///
- [SugarColumn(ColumnName="pay_status")]
- public int? PayStatus {get;set;}
+ [SugarColumn(ColumnName="battery_type")]
+ public string BatteryType {get;set;}
///
/// Desc:车辆vin码
/// Default:
/// Nullable:True
///
- [SugarColumn(ColumnName="vin")]
- public string Vin {get;set;}
+ [SugarColumn(ColumnName="car_no")]
+ public string CarNo {get;set;}
///
/// Desc:车辆mac
/// Default:
/// Nullable:True
///
- [SugarColumn(ColumnName="mac")]
- public string Mac {get;set;}
+ [SugarColumn(ColumnName="battery_no_list")]
+ public string BatteryNoList {get;set;}
///
/// Desc:预约电池数量
diff --git a/HybirdFrameworkDriver/Common/MsgCache.cs b/HybirdFrameworkDriver/Common/MsgCache.cs
index 29a1e26..079743c 100644
--- a/HybirdFrameworkDriver/Common/MsgCache.cs
+++ b/HybirdFrameworkDriver/Common/MsgCache.cs
@@ -2,9 +2,9 @@
namespace HybirdFrameworkDriver.Common;
-public class MsgCache
+public class MsgCache
{
- private readonly ConcurrentDictionary _dictionary = new();
+ private readonly ConcurrentDictionary> _dictionary = new();
private static readonly string MsgKey = "msg_";
public void Add(string key, dynamic value)
@@ -12,7 +12,7 @@ public class MsgCache
_dictionary[key] = value;
}
- public bool TryGet(string key, out dynamic? value)
+ public bool TryGet(string key, out MsgPair? value)
{
return _dictionary.TryGetValue(key, out value);
}
@@ -22,12 +22,12 @@ public class MsgCache
_dictionary.Remove(key, out var value);
}
- public void AddByMsgId(int key, dynamic value)
+ public void AddByMsgId(int key, MsgPair value)
{
_dictionary[MsgKey + key] = value;
}
- public bool TryGetMsgId(int key, out dynamic? value)
+ public bool TryGetMsgId(int key, out MsgPair? value)
{
return _dictionary.TryGetValue(MsgKey + key, out value);
}
@@ -36,4 +36,12 @@ public class MsgCache
{
_dictionary.Remove(MsgKey + key, out var value);
}
+
+
+}
+
+public class MsgPair
+{
+ public TReq? Req { get; set; }
+ public TResp? Resp { get; set; }
}
\ No newline at end of file
diff --git a/Repository/Repository.csproj b/Repository/Repository.csproj
index e5483ac..914e75a 100644
--- a/Repository/Repository.csproj
+++ b/Repository/Repository.csproj
@@ -16,4 +16,8 @@
+
+
+
+
diff --git a/Repository/Station/AmtOrderInfoRepository.cs b/Repository/Station/AmtOrderInfoRepository.cs
deleted file mode 100644
index 4478473..0000000
--- a/Repository/Station/AmtOrderInfoRepository.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Entity.DbModel.Station;
-using HybirdFrameworkCore.Autofac.Attribute;
-using SqlSugar;
-
-namespace Repository.Station;
-
-[Scope("SingleInstance")]
-public class AmtOrderInfoRepository : BaseRepository
-{
- public AmtOrderInfoRepository(ISqlSugarClient sqlSugar) : base(sqlSugar)
- {
- }
-}
\ No newline at end of file
diff --git a/Service/Cloud/Client/CloudClient.cs b/Service/Cloud/Client/CloudClient.cs
index efb7b77..1fb4783 100644
--- a/Service/Cloud/Client/CloudClient.cs
+++ b/Service/Cloud/Client/CloudClient.cs
@@ -3,6 +3,7 @@ using Autofac;
using Autofac.Core;
using HybirdFrameworkCore.Autofac;
using HybirdFrameworkCore.Autofac.Attribute;
+using HybirdFrameworkDriver.Common;
using log4net;
using MQTTnet;
using MQTTnet.Client;
@@ -19,6 +20,7 @@ using Newtonsoft.Json.Linq;
using Service.Cloud.Handler;
using Service.Cloud.Msg;
using Service.Cloud.Msg.Cloud.Req;
+using Service.Cloud.Msg.Cloud.Resp;
using Service.Cloud.Msg.Host.Req;
namespace Service.Cloud.Client;
@@ -61,15 +63,21 @@ public class CloudClient : IMqttClientConnectedHandler, IMqttApplicationMessageR
#endregion
- #region Cmd
+ #region Cmd msg cache
public CarCanStart? CarCanStart { get; set; }
+ ///
+ ///
+ ///
+ public MsgPair CarAuth { get; set; } = new();
#endregion
- private IMqttClient? MqttClient;
+ #region basic
+
+ private IMqttClient? MqttClient;
- private List handlers = new List();
+ private List handlers = new ();
private static ushort _incrementId;
@@ -329,4 +337,19 @@ public class CloudClient : IMqttClientConnectedHandler, IMqttApplicationMessageR
return builder.Build();
}
+
+ #endregion
+
+
+
+ #region 主动发送CMD
+
+ public void SendVehicleCertification(VehicleCertification vehicleCertification)
+ {
+ this.CarAuth.Req = vehicleCertification;
+ this.CarAuth.Resp = null;
+ this.Publish(vehicleCertification);
+ }
+
+ #endregion
}
\ No newline at end of file
diff --git a/Service/Cloud/Handler/AmtBatHandler.cs b/Service/Cloud/Handler/AmtBatHandler.cs
index 1aa47dd..e288648 100644
--- a/Service/Cloud/Handler/AmtBatHandler.cs
+++ b/Service/Cloud/Handler/AmtBatHandler.cs
@@ -14,12 +14,12 @@ namespace Service.Cloud.Handler;
public class AmtBatHandler : IBaseHandler
{
private BinInfoRepository _binInfoRepository;
- private AmtOrderInfoRepository _amtOrderInfoRepository;
+ private SwapAmtOrderRepository _swapAmtOrderRepository;
- public AmtBatHandler(BinInfoRepository binInfoRepository, AmtOrderInfoRepository amtOrderInfoRepository)
+ public AmtBatHandler(BinInfoRepository binInfoRepository, SwapAmtOrderRepository swapAmtOrderRepository)
{
_binInfoRepository = binInfoRepository;
- _amtOrderInfoRepository = amtOrderInfoRepository;
+ _swapAmtOrderRepository = swapAmtOrderRepository;
}
public void Handle(string t)
@@ -29,7 +29,7 @@ public class AmtBatHandler : IBaseHandler
AmtBat? amtBat = JsonConvert.DeserializeObject(t);
if (amtBat != null)
{
- int count = _amtOrderInfoRepository.GetCount(it =>
+ int count = _swapAmtOrderRepository.GetCount(it =>
it.CarNo == amtBat.cn && it.Status == (byte)InfoEnum.AmtOrderStatus.Success);
if (count > 0)
@@ -38,14 +38,14 @@ public class AmtBatHandler : IBaseHandler
}
else
{
- AmtOrderInfo amtOrderInfo = new AmtOrderInfo()
+ SwapAmtOrder amtOrderInfo = new SwapAmtOrder()
{
Sn = StaticStationInfo.StationNo,
CarNo = amtBat.cn,
- Batnum = amtBat.bm,
+ BatteryCount = amtBat.bm,
BatteryType = amtBat.bn,
- StartTime = amtBat.at,
- EndTime = amtBat.at.AddMinutes(amtBat.am)
+ AmtTime = amtBat.at,
+ ExpireTime = amtBat.at.AddMinutes(amtBat.am)
};
}
diff --git a/Service/Cloud/Handler/CarAuthResHandler.cs b/Service/Cloud/Handler/CarAuthResHandler.cs
new file mode 100644
index 0000000..431c485
--- /dev/null
+++ b/Service/Cloud/Handler/CarAuthResHandler.cs
@@ -0,0 +1,23 @@
+using HybirdFrameworkCore.Autofac.Attribute;
+using Newtonsoft.Json;
+using Service.Cloud.Client;
+using Service.Cloud.Common;
+using Service.Cloud.Msg.Cloud.Resp;
+
+namespace Service.Cloud.Handler;
+
+[Scope("InstancePerDependency")]
+public class CarAuthResHandler : IBaseHandler
+
+{
+ public bool CanHandle(string cmd)
+ {
+ return CloudConst.carAuthRes == cmd;
+ }
+
+ public void Handle(string t)
+ {
+ VehicleCertificationResp? resp = JsonConvert.DeserializeObject(t);
+ CloudClientMgr.CloudClient.CarAuth.Resp = resp;
+ }
+}
\ No newline at end of file
diff --git a/Service/Cloud/Handler/CarCanStartHandler.cs b/Service/Cloud/Handler/CarCanStartHandler.cs
index d07833d..cdf3d77 100644
--- a/Service/Cloud/Handler/CarCanStartHandler.cs
+++ b/Service/Cloud/Handler/CarCanStartHandler.cs
@@ -1,10 +1,12 @@
-using Newtonsoft.Json;
+using HybirdFrameworkCore.Autofac.Attribute;
+using Newtonsoft.Json;
using Service.Cloud.Client;
using Service.Cloud.Common;
using Service.Cloud.Msg.Cloud.Req;
namespace Service.Cloud.Handler;
+[Scope("InstancePerDependency")]
public class CarCanStartHandler : IBaseHandler
{
public bool CanHandle(string cmd)