diff --git a/Entity/Dto/Req/DistributeElecPriceReq.cs b/Entity/Dto/Req/DistributeElecPriceReq.cs
new file mode 100644
index 0000000..ad72250
--- /dev/null
+++ b/Entity/Dto/Req/DistributeElecPriceReq.cs
@@ -0,0 +1,13 @@
+namespace Entity.Dto.Req;
+
+public class DistributeElecPriceReq
+{
+ ///
+ /// 充电机号
+ ///
+ public string BinNo { get; set; }
+ ///
+ /// 电价模型详情:版本
+ ///
+ public int Version { get; set; }
+}
\ No newline at end of file
diff --git a/Service/Charger/ChargerService.cs b/Service/Charger/ChargerService.cs
index 570e755..56ba458 100644
--- a/Service/Charger/ChargerService.cs
+++ b/Service/Charger/ChargerService.cs
@@ -3,6 +3,8 @@ using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Entity;
using Repository.Station;
using Service.Charger.Client;
+using Service.Charger.Msg.Host.Req;
+using SqlSugar;
namespace Service.Charger;
@@ -13,6 +15,7 @@ namespace Service.Charger;
public class ChargerService
{
public BinInfoRepository BinInfoRepository { get; set; }
+ public ElecPriceModelVersionDetailRepository ElecPriceModelVersionDetailRepository { get; set; }
///
/// 启动充电
@@ -69,4 +72,63 @@ public class ChargerService
return Result.Success("发送停止命令成功");
}
+ ///
+ /// 下发尖峰平谷
+ ///
+ ///
+ ///
+ public Result DistributeElecPriceForCharge(string binNo,int version)
+ {
+ Dictionary chargerClients = ClientMgr.Dictionary;
+ if (chargerClients.Values.Count <= 0)
+ {
+ return Result.Fail();
+ }
+
+ foreach (var chargerClientsValue in chargerClients.Values)
+ {
+
+ if (chargerClientsValue.Connected)
+ {
+ chargerClientsValue.SendSetPeakValleyTime(BulidSetPeakValleyTimeObj(version));
+ }
+ }
+
+ return Result.Success();
+ }
+
+ public SetPeakValleyTime BulidSetPeakValleyTimeObj(int version)
+ {
+ List elecPriceModelVersionDetails =
+ ElecPriceModelVersionDetailRepository.QueryListByClause(u => u.Version == version,u=>u.StartHour,OrderByType.Asc);
+ SetPeakValleyTime setPeakValleyTime = new SetPeakValleyTime()
+ {
+ NumberTime =Convert.ToByte( elecPriceModelVersionDetails.Count),
+ StartHH1 = Convert.ToByte(elecPriceModelVersionDetails[0].StartHour),
+ StartHH2 = Convert.ToByte(elecPriceModelVersionDetails[1].StartHour),
+ StartHH3 = Convert.ToByte(elecPriceModelVersionDetails[2].StartHour),
+ StartHH4 = Convert.ToByte(elecPriceModelVersionDetails[3].StartHour),
+ StartHH5 = Convert.ToByte(elecPriceModelVersionDetails[4].StartHour),
+ StartHH6 = Convert.ToByte(elecPriceModelVersionDetails[5].StartHour),
+ StartHH7 = Convert.ToByte(elecPriceModelVersionDetails[6].StartHour),
+ StartHH8 = Convert.ToByte(elecPriceModelVersionDetails[7].StartHour),
+ StartMM1 = Convert.ToByte(elecPriceModelVersionDetails[0].StartMinute),
+ StartMM2 = Convert.ToByte(elecPriceModelVersionDetails[1].StartMinute),
+ StartMM3 = Convert.ToByte(elecPriceModelVersionDetails[2].StartMinute),
+ StartMM4 = Convert.ToByte(elecPriceModelVersionDetails[3].StartMinute),
+ StartMM5 = Convert.ToByte(elecPriceModelVersionDetails[4].StartMinute),
+ StartMM6 = Convert.ToByte(elecPriceModelVersionDetails[5].StartMinute),
+ StartMM7 = Convert.ToByte(elecPriceModelVersionDetails[6].StartMinute),
+ StartMM8 = Convert.ToByte(elecPriceModelVersionDetails[7].StartMinute),
+ TimePeak1 = Convert.ToByte(elecPriceModelVersionDetails[0].Type),
+ TimePeak2 = Convert.ToByte(elecPriceModelVersionDetails[1].Type),
+ TimePeak3 = Convert.ToByte(elecPriceModelVersionDetails[2].Type),
+ TimePeak4 = Convert.ToByte(elecPriceModelVersionDetails[3].Type),
+ TimePeak5 = Convert.ToByte(elecPriceModelVersionDetails[4].Type),
+ TimePeak6 = Convert.ToByte(elecPriceModelVersionDetails[5].Type),
+ TimePeak7 = Convert.ToByte(elecPriceModelVersionDetails[6].Type),
+ TimePeak8 = Convert.ToByte(elecPriceModelVersionDetails[7].Type)
+ };
+ return setPeakValleyTime;
+ }
}
\ No newline at end of file
diff --git a/WebStarter/Controllers/ChargeController.cs b/WebStarter/Controllers/ChargeController.cs
index fb4a701..6a18ebb 100644
--- a/WebStarter/Controllers/ChargeController.cs
+++ b/WebStarter/Controllers/ChargeController.cs
@@ -1,5 +1,6 @@
using AutoMapper;
using Entity.DbModel.Station;
+using Entity.Dto.Req;
using Entity.Dto.Resp;
using HybirdFrameworkCore.Entity;
using Microsoft.AspNetCore.Mvc;
@@ -103,4 +104,16 @@ public class ChargeController : ControllerBase
{
return _chargerService.StopChargeByBinNo(binNo);
}
+
+ ///
+ /// 下发电价配置
+ ///
+ ///
+ [HttpGet]
+ [Route("DistributeElecPriceForCharge")]
+ public Result DistributeElecPriceForCharge([FromBody] DistributeElecPriceReq input )
+ {
+ return _chargerService.DistributeElecPriceForCharge(input.BinNo,input.Version);
+ }
+
}
\ No newline at end of file