From 06cc3b15f04856b213198940462220f4f6a61040 Mon Sep 17 00:00:00 2001 From: CZ Date: Fri, 21 Jun 2024 13:05:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=87=AA=E5=8A=A8=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=9B=B4=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/Charger/MyTask/AutoChargeTask.cs | 33 +++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/Service/Charger/MyTask/AutoChargeTask.cs b/Service/Charger/MyTask/AutoChargeTask.cs index 9bf4e17..4a89386 100644 --- a/Service/Charger/MyTask/AutoChargeTask.cs +++ b/Service/Charger/MyTask/AutoChargeTask.cs @@ -76,10 +76,24 @@ public class AutoChargeTask : ITask List elecPriceModelVersionDetails = elecPriceModelVersionDetailRepository.QueryListByClause(it => it.Version == elecPriceModelVersion.Version); - ElecPriceModelVersionDetail? elecPriceModelVersionDetail = elecPriceModelVersionDetails.Where(i => + /*ElecPriceModelVersionDetail? elecPriceModelVersionDetail = elecPriceModelVersionDetails.Where(i => i.StartHour <= now.Hour && i.StartMinute <= now.Minute && i.EndHour > now.Hour && - i.EndMinute > now.Minute).FirstOrDefault(); + i.EndMinute > now.Minute).FirstOrDefault();*/ + ElecPriceModelVersionDetail? elecPriceModelVersionDetail = null; + + foreach (var VARIABLE in elecPriceModelVersionDetails) + { + // 构造开始和结束的DateTime对象,使用当前日期的年月日 + DateTime startTime = new DateTime(now.Year, now.Month, now.Day, VARIABLE.StartHour, + VARIABLE.StartMinute, 0); + DateTime endTime = new DateTime(now.Year, now.Month, now.Day, VARIABLE.EndHour, VARIABLE.EndMinute, 0); + if (DateTime.Now >= startTime && DateTime.Now <= endTime) + { + elecPriceModelVersionDetail = VARIABLE; + } + } + if (elecPriceModelVersionDetail == null) { Log.Info("lack of effective elecPriceModelVersionDetail"); @@ -129,17 +143,24 @@ public class AutoChargeTask : ITask List canSwapList = binInfos.Where(it => it.Soc != null && Convert.ToSingle(it.Soc) >= StaticStationInfo.SwapSoc && it.CanSwapFlag == 1) .ToList(); - if (canSwapList.Count == needBatteryCount) + /*if (canSwapList.Count == needBatteryCount) { Log.Info($"lack of needBatteryCount {needBatteryCount}"); return; - } + }*/ - if (canSwapList.Count > needBatteryCount) + if (canSwapList.Count >= needBatteryCount) { List chargingList = binInfos.Where(it => it.ChargeStatus == 1).ToList(); - int needStopCount = chargingList.Count - (canSwapList.Count - needBatteryCount); + var bininfo = binInfos.Where(i => i.No == "1").ToList(); + int iCache = 0;//缓存仓电池数量 + if (bininfo.Count > 0) + { + iCache = 1; + } + + int needStopCount = chargingList.Count + iCache - (canSwapList.Count - needBatteryCount); if (needStopCount > 0) { //停电量低的