diff --git a/Service/Execute/Tech/InfoAttribute.cs b/Entity/Attr/InfoAttribute.cs similarity index 82% rename from Service/Execute/Tech/InfoAttribute.cs rename to Entity/Attr/InfoAttribute.cs index 7857ae5..b5de10a 100644 --- a/Service/Execute/Tech/InfoAttribute.cs +++ b/Entity/Attr/InfoAttribute.cs @@ -1,8 +1,8 @@ using System.Reflection; -namespace Swapping.Business.Tech; +namespace Entity.Attr; -public class InfoAttribute : Attribute +public class InfoAttribute : System.Attribute { private string _Led; private string _Sound; @@ -32,7 +32,7 @@ public static class InfoExtend FieldInfo? fieldInfo = type.GetField(value.ToString()); if (fieldInfo != null && fieldInfo.IsDefined(typeof(InfoAttribute), true)) { - Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(InfoAttribute)); + System.Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(InfoAttribute)); if (attribute != null) { return ((InfoAttribute)attribute).GetLed(); @@ -48,7 +48,7 @@ public static class InfoExtend FieldInfo? fieldInfo = type.GetField(value.ToString()); if (fieldInfo != null && fieldInfo.IsDefined(typeof(InfoAttribute), true)) { - Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(InfoAttribute)); + System.Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(InfoAttribute)); if (attribute != null) { return ((InfoAttribute)attribute).GetSound(); diff --git a/Service/Execute/Tech/RemarkAttribute.cs b/Entity/Attr/RemarkAttribute.cs similarity index 80% rename from Service/Execute/Tech/RemarkAttribute.cs rename to Entity/Attr/RemarkAttribute.cs index 1ec3e7c..eaf60b6 100644 --- a/Service/Execute/Tech/RemarkAttribute.cs +++ b/Entity/Attr/RemarkAttribute.cs @@ -1,8 +1,8 @@ using System.Reflection; -namespace Service.Execute.Tech; +namespace Entity.Attr; -public class RemarkAttribute : Attribute +public class RemarkAttribute : System.Attribute { private string _Remark; @@ -25,7 +25,7 @@ public static class RemarkExtend FieldInfo? fieldInfo = type.GetField(value.ToString()); if (fieldInfo != null && fieldInfo.IsDefined(typeof(RemarkAttribute), true)) { - Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(RemarkAttribute)); + System.Attribute? attribute = fieldInfo.GetCustomAttribute(typeof(RemarkAttribute)); if (attribute != null) { return ((RemarkAttribute)attribute).GetRemark(); diff --git a/Service/Execute/Enum/InfoEnum.cs b/Entity/Constant/InfoEnum.cs similarity index 98% rename from Service/Execute/Enum/InfoEnum.cs rename to Entity/Constant/InfoEnum.cs index 04bc262..5821d96 100644 --- a/Service/Execute/Enum/InfoEnum.cs +++ b/Entity/Constant/InfoEnum.cs @@ -1,7 +1,6 @@ -using Service.Execute.Tech; -using Swapping.Business.Tech; +using Entity.Attr; -namespace Service.Execute.Enum; +namespace Entity.Constant; public class InfoEnum { diff --git a/Entity/DbModel/Station/SwapAmtOrder.cs b/Entity/DbModel/Station/SwapAmtOrder.cs index f0115f8..0776180 100644 --- a/Entity/DbModel/Station/SwapAmtOrder.cs +++ b/Entity/DbModel/Station/SwapAmtOrder.cs @@ -40,7 +40,7 @@ namespace Entity.DbModel.Station public string BatteryType {get;set;} /// - /// Desc:车辆vin码 + /// Desc:车牌号 /// Default: /// Nullable:True /// @@ -151,10 +151,6 @@ namespace Entity.DbModel.Station [SugarColumn(ColumnName="updated_time")] public DateTime? UpdatedTime {get;set;} - /// - /// 车牌 - /// - public string VehicleNo { get; set; } - + } } diff --git a/Entity/Dto/SelectPackDto.cs b/Entity/Dto/SelectPackDto.cs new file mode 100644 index 0000000..2716dd1 --- /dev/null +++ b/Entity/Dto/SelectPackDto.cs @@ -0,0 +1,16 @@ +using Entity.Constant; +using Entity.DbModel.Station; + +namespace Entity.Dto; + +/// +/// 选包dto +/// +public class SelectPackDto +{ + public bool SuccessFlag { get; set; } + + public InfoEnum.SelectBinStatusInfo Info { get; set; } + + public BinInfo BinInfo { get; set; } +} \ No newline at end of file diff --git a/HybirdFrameworkCore/Entity/IPage.cs b/HybirdFrameworkCore/Entity/IPage.cs index b9a8d4a..4b7cdde 100644 --- a/HybirdFrameworkCore/Entity/IPage.cs +++ b/HybirdFrameworkCore/Entity/IPage.cs @@ -9,7 +9,7 @@ public class IPage public int PageSize; public List? Rows; - + public IPage(int total, QueryPageModel page, List? rows) { Total = total; diff --git a/Repository/Station/BinInfoRepository.cs b/Repository/Station/BinInfoRepository.cs index 71580e6..e5b5a7e 100644 --- a/Repository/Station/BinInfoRepository.cs +++ b/Repository/Station/BinInfoRepository.cs @@ -1,14 +1,67 @@ +using Entity.Constant; using Entity.DbModel.Station; +using Entity.Dto; using HybirdFrameworkCore.Autofac.Attribute; using SqlSugar; namespace Repository.Station; [Scope("SingleInstance")] -public class BinInfoRepository:BaseRepository +public class BinInfoRepository : BaseRepository { - public BinInfoRepository(ISqlSugarClient sqlSugar) : base(sqlSugar) { } + + /// + /// 选包 + /// + /// StaticStationInfo.SwapSoc + /// StaticStationInfo.SwapFinishChargeTime + /// + public SelectPackDto SelectPack(string swapSoc, string swapFinishChargeTime) + { + SelectPackDto selectPackDto = new() + { + SuccessFlag = false, + }; + List list = + QueryListByClause(i => + i.Exists == 1 && i.Status == 1 && i.AmtLock == (int)InfoEnum.AmtBatLockStatus.UnLock); + if (list.Count <= 0) + { + selectPackDto.Info = InfoEnum.SelectBinStatusInfo.NoBattery; + return selectPackDto; + } + + list = list.Where(i => i.ChargeStatus == 2).ToList(); + if (list.Count <= 0) + { + selectPackDto.Info = InfoEnum.SelectBinStatusInfo.LessOfFinishCharging; + return selectPackDto; + } + + + list = list.Where(i => i.Soc > int.Parse(swapSoc)).ToList(); + if (list.Count <= 0) + { + selectPackDto.Info = InfoEnum.SelectBinStatusInfo.LessOfSoc; + return selectPackDto; + } + + list = list.Where(i => new TimeSpan(DateTime.Now.Ticks - + i.LastChargeFinishTime.ToDateTime().Ticks) + .TotalMinutes > int.Parse(swapFinishChargeTime)).ToList(); + if (list.Count <= 0) + { + selectPackDto.Info = InfoEnum.SelectBinStatusInfo.LessOf3Minute; + return selectPackDto; + } + + selectPackDto.BinInfo = list[0]; + selectPackDto.Info = InfoEnum.SelectBinStatusInfo.Success; + selectPackDto.SuccessFlag = true; + + return selectPackDto; + } } \ No newline at end of file diff --git a/Service/Cloud/Handler/AmtBatHandler.cs b/Service/Cloud/Handler/AmtBatHandler.cs index e288648..7d5900f 100644 --- a/Service/Cloud/Handler/AmtBatHandler.cs +++ b/Service/Cloud/Handler/AmtBatHandler.cs @@ -1,11 +1,11 @@ -using Entity.DbModel.Station; +using Entity.Constant; +using Entity.DbModel.Station; using HybirdFrameworkCore.Autofac.Attribute; using Newtonsoft.Json; using Repository.Station; using Service.Cloud.Common; using Service.Cloud.Msg.Cloud.Req; using Service.Cloud.Msg.Host.Resp; -using Service.Execute.Enum; using Service.Init; namespace Service.Cloud.Handler; diff --git a/Service/Execute/Api/CloudApi.cs b/Service/Execute/Api/CloudApi.cs index f497df8..8378017 100644 --- a/Service/Execute/Api/CloudApi.cs +++ b/Service/Execute/Api/CloudApi.cs @@ -1,8 +1,8 @@ +using Entity.Constant; using Entity.DbModel.Station; using log4net; using Service.Cloud.Client; using Service.Cloud.Msg.Cloud.Req; -using Service.Execute.Enum; using Service.Execute.Model; namespace Service.Execute.Api; diff --git a/Service/Execute/Model/SwapOrderBatteryInfo.cs b/Service/Execute/Model/SwapOrderBatteryInfo.cs index 1fc3337..a9ab377 100644 --- a/Service/Execute/Model/SwapOrderBatteryInfo.cs +++ b/Service/Execute/Model/SwapOrderBatteryInfo.cs @@ -1,6 +1,6 @@ +using Entity.Constant; using Entity.DbModel.Station; using NewLife.Common; -using Service.Execute.Enum; namespace Service.Execute.Model; diff --git a/Service/Execute/Step/CancelState.cs b/Service/Execute/Step/CancelState.cs index f3bb553..089e6c4 100644 --- a/Service/Execute/Step/CancelState.cs +++ b/Service/Execute/Step/CancelState.cs @@ -1,14 +1,16 @@ -using log4net; +using Autofac; +using Entity.Constant; +using HybirdFrameworkCore.Autofac; +using log4net; using Repository.Station; -using Service.Execute.Enum; namespace Service.Execute.Step; public class CancelState : IState { - private SwapOrderRepository SwapOrderRepository { get; set; } + private readonly SwapOrderRepository _swapOrderRepository= AppInfo.Container.Resolve(); - private SwapAmtOrderRepository SwapAmtOrderRepository { get; set; } + private readonly SwapAmtOrderRepository _swapAmtOrderRepository = AppInfo.Container.Resolve(); private static readonly ILog _log = LogManager.GetLogger(typeof(CancelState)); public StateResult Handle(SwappingStateMachine machine) @@ -18,13 +20,13 @@ public class CancelState : IState if (machine.SwapOrderBatteryInfo.swapAmtOrder != null) { machine.SwapOrderBatteryInfo.swapAmtOrder.Status = (byte)InfoEnum.AmtOrderStatus.SwapFail; - SwapAmtOrderRepository.Update(machine.SwapOrderBatteryInfo.swapAmtOrder); + _swapAmtOrderRepository.Update(machine.SwapOrderBatteryInfo.swapAmtOrder); } if (machine.SwapOrder != null) { machine.SwapOrder.SwapResult = (byte)InfoEnum.SwapOrderResult.Fail; - SwapOrderRepository.Update(machine.SwapOrder); + _swapOrderRepository.Update(machine.SwapOrder); } machine.Reset(); diff --git a/Service/Execute/Step/CarCtrlState.cs b/Service/Execute/Step/CarCtrlState.cs index 3d00df9..277a6e4 100644 --- a/Service/Execute/Step/CarCtrlState.cs +++ b/Service/Execute/Step/CarCtrlState.cs @@ -1,11 +1,11 @@ -using log4net; +using Entity.Attr; +using Entity.Constant; +using log4net; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Station; -using Swapping.Business.Tech; namespace Service.Execute.Step; diff --git a/Service/Execute/Step/CarPrepareState.cs b/Service/Execute/Step/CarPrepareState.cs index 4e4fa3b..81f5392 100644 --- a/Service/Execute/Step/CarPrepareState.cs +++ b/Service/Execute/Step/CarPrepareState.cs @@ -1,16 +1,18 @@ -using AutoMapper; +using Autofac; +using AutoMapper; +using Entity.Attr; using Entity.Constant; using Entity.DbModel.Station; +using Entity.Dto; +using HybirdFrameworkCore.Autofac; using log4net; using Repository.Station; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Init; using Service.Station; -using Swapping.Business.Tech; namespace Service.Execute.Step; @@ -19,11 +21,11 @@ public class CarPrepareState : IState private readonly ILog _log = LogManager.GetLogger(typeof(CarPrepareState)); - private BinInfoRepository BinInfoRepository { get; set; } - public SwapOrderStepService SwapOrderStepService { get; set; } - private SwapAmtOrderRepository AmtOrderRepository { get; set; } + private readonly BinInfoRepository _binInfoRepository = AppInfo.Container.Resolve(); + private readonly SwapOrderStepService _swapOrderStepService = AppInfo.Container.Resolve(); + private readonly SwapAmtOrderRepository _amtOrderRepository = AppInfo.Container.Resolve(); - private SwapOrderBatteryRepository SwapOrderBatteryRepository { get; set; } + private readonly SwapOrderBatteryRepository _swapOrderBatteryRepository = AppInfo.Container.Resolve(); public StateResult Handle(SwappingStateMachine machine) { @@ -118,8 +120,8 @@ public class CarPrepareState : IState CloudApi.SendStateLog(machine.SwapOrder, machine.BusinessSwappingForCloudState); //清除下发的指令,等待新的指令 CloudApi.ClearCarCanStartInfo(); - - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CarInPositionFlag, + + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CarInPositionFlag, machine.StepSort++, machine.SwapOrder.Sn); } } @@ -157,8 +159,8 @@ public class CarPrepareState : IState _log.Info("cloud check vehicle done"); machine.CloudVelCheckFlag = true; machine.LedTool.WriteProgramContent("换电准备中:云平台车辆验证完成"); - - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CloudVelCheckFlag, + + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CloudVelCheckFlag, machine.StepSort++, machine.SwapOrder.Sn); } } @@ -266,8 +268,8 @@ public class CarPrepareState : IState public InvokeStatus SelectPack(SwappingStateMachine machine) { SwapAmtOrder? swapAmtOrder = - AmtOrderRepository.QueryByClause(i => - i.Status == (int)InfoEnum.AmtOrderStatus.Success && i.VehicleNo.Equals(machine.BoxCarInfoModel.CarNo)); + _amtOrderRepository.QueryByClause(i => + i.Status == (int)InfoEnum.AmtOrderStatus.Success && i.CarNo.Equals(machine.BoxCarInfoModel.CarNo)); return Invoker.Invoke("selectPack", 500, 20, machine.IsCanceled, @@ -315,7 +317,7 @@ public class CarPrepareState : IState UpBatteryBinNo = int.Parse(UpBin.No), DownBatteryBinNo = int.Parse(InBin.No), }; - SwapOrderBatteryRepository.Insert(swapOrderBattery); + _swapOrderBatteryRepository.Insert(swapOrderBattery); } /// @@ -330,7 +332,7 @@ public class CarPrepareState : IState BinInfo dbBinInfo = mapperBinInfo.Map(orderBatteryInfo.UpBinInfo); dbBinInfo.AmtLock = (int)InfoEnum.AmtBatLockStatus.Lock; - BinInfoRepository.Update(dbBinInfo); + _binInfoRepository.Update(dbBinInfo); if (!orderBatteryInfo.isAmt) { return; @@ -341,7 +343,7 @@ public class CarPrepareState : IState IMapper mapperAmt = configAmt.CreateMapper(); SwapAmtOrder swapAmtOrder = mapperAmt.Map(orderBatteryInfo.swapAmtOrder); swapAmtOrder.Status = (int)InfoEnum.AmtOrderStatus.Swapping; - AmtOrderRepository.Update(swapAmtOrder); + _amtOrderRepository.Update(swapAmtOrder); } /// 1.仓位状态:启动 @@ -377,7 +379,7 @@ public class CarPrepareState : IState SwapOrderBatteryInfo orderBatteryInfo = new SwapOrderBatteryInfo(); orderBatteryInfo.swapAmtOrder = swapAmtOrder; orderBatteryInfo.isAmt = true; - BinInfo UpBin = BinInfoRepository.QueryByClause(i => i.No.Equals(swapAmtOrder.AmtBinNoList)); + BinInfo UpBin = _binInfoRepository.QueryByClause(i => i.No.Equals(swapAmtOrder.AmtBinNoList)); bool CanSwap = UpBin.Exists == 1 && UpBin.Status == 1 && UpBin.ChargeStatus == 2 && UpBin.AmtLock == (int)InfoEnum.AmtBatLockStatus.Lock && new TimeSpan(DateTime.Now.Ticks - UpBin.LastChargeFinishTime.ToDateTime() @@ -402,53 +404,23 @@ public class CarPrepareState : IState /// private void UpBin(SwapOrderBatteryInfo orderBatteryInfo) { - List list = - BinInfoRepository.QueryListByClause(i => - i.Exists == 1 && i.Status == 1 && i.AmtLock == (int)InfoEnum.AmtBatLockStatus.UnLock); - if (list.Count <= 0) - { - orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.NoBattery; - return; - } - - list = list.Where(i => i.ChargeStatus == 2).ToList(); - if (list.Count <= 0) - { - orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.LessOfFinishCharging; - return; - } + SelectPackDto selectPack = + _binInfoRepository.SelectPack(StaticStationInfo.SwapSoc, StaticStationInfo.SwapFinishChargeTime); - - list = list.Where(i => i.Soc > int.Parse(StaticStationInfo.SwapSoc)).ToList(); - if (list.Count <= 0) - { - orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.LessOfSoc; - return; - } - - list = list.Where(i => new TimeSpan(DateTime.Now.Ticks - - i.LastChargeFinishTime.ToDateTime().Ticks) - .TotalMinutes > int.Parse(StaticStationInfo.SwapFinishChargeTime)).ToList(); - if (list.Count <= 0) - { - orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.LessOf3Minute; - return; - } - - orderBatteryInfo.UpBinInfo = list[0]; - orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.Success; + orderBatteryInfo.UpBinInfo = selectPack.BinInfo; + orderBatteryInfo.CanSwap = selectPack.Info; } /// - /// 放电池判断 + /// 放电池判断:取出来的电池仓位能不能放 /// /// private void InBin(SwapOrderBatteryInfo orderBatteryInfo) { List list = - BinInfoRepository.QueryListByClause(i => - i.Exists == 1 && i.Status == 1 && i.AmtLock == (int)InfoEnum.AmtBatLockStatus.UnLock - && i.Exists == 0); + _binInfoRepository.QueryListByClause(i => + i.Status == 1 && i.AmtLock == (int)InfoEnum.AmtBatLockStatus.UnLock + && i.Exists == 0); if (list.Count <= 0) { orderBatteryInfo.CanSwap = InfoEnum.SelectBinStatusInfo.LessOfEmptyBin; diff --git a/Service/Execute/Step/DoSwappingState.cs b/Service/Execute/Step/DoSwappingState.cs index 50ed76b..d4b2237 100644 --- a/Service/Execute/Step/DoSwappingState.cs +++ b/Service/Execute/Step/DoSwappingState.cs @@ -1,20 +1,22 @@ -using log4net; +using Autofac; +using Entity.Attr; +using Entity.Constant; +using HybirdFrameworkCore.Autofac; +using log4net; using Repository.Station; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Station; -using Swapping.Business.Tech; namespace Service.Execute.Step; public class DoSwappingState : IState { private readonly ILog _log = LogManager.GetLogger(typeof(DoSwappingState)); - private SwapOrderRepository SwapOrderRepository { get; set; } - public SwapOrderStepService SwapOrderStepService { get; set; } + private readonly SwapOrderRepository _swapOrderRepository = AppInfo.Container.Resolve(); + private readonly SwapOrderStepService _swapOrderStepService = AppInfo.Container.Resolve(); public StateResult Handle(SwappingStateMachine machine) { @@ -107,10 +109,10 @@ public class DoSwappingState : IState if (startSwapping) { machine.SwapOrder.SwapBeginTime = DateTime.Now; - SwapOrderRepository.Update(machine.SwapOrder); + _swapOrderRepository.Update(machine.SwapOrder); machine.SwapStatus = 0; machine.StartSwappingFlag = true; - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.StartSwappingFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.StartSwappingFlag, machine.StepSort++, machine.SwapOrder.Sn); } } @@ -138,7 +140,7 @@ public class DoSwappingState : IState if (machine.UnOldBatteryFlag) { - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.UnOldBatteryFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.UnOldBatteryFlag, machine.StepSort++, machine.SwapOrder.Sn); } }, () => { }); @@ -156,7 +158,7 @@ public class DoSwappingState : IState if (machine.StorageOldBatteryFlag) { - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.StorageOldBatteryFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.StorageOldBatteryFlag, machine.StepSort++, machine.SwapOrder.Sn); } }, () => { }); @@ -173,7 +175,7 @@ public class DoSwappingState : IState machine.OutNewBatteryFlag = PlcApi.ReadPlcTaskStatus() == 1004; if (machine.OutNewBatteryFlag) { - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.OutNewBatteryFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.OutNewBatteryFlag, machine.StepSort++, machine.SwapOrder.Sn); } }, () => { }); @@ -192,7 +194,7 @@ public class DoSwappingState : IState if (machine.InstallNewBatteryFlag) { - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.InstallNewBatteryFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.InstallNewBatteryFlag, machine.StepSort++, machine.SwapOrder.Sn); } }, () => { }); @@ -215,7 +217,7 @@ public class DoSwappingState : IState //上报云平台换电完成 machine.SwapStatus = 1; - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.FinishNewBatteryFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.FinishNewBatteryFlag, machine.StepSort++, machine.SwapOrder.Sn); } }, () => { }); diff --git a/Service/Execute/Step/StationReadyState.cs b/Service/Execute/Step/StationReadyState.cs index 575f15d..8b080c3 100644 --- a/Service/Execute/Step/StationReadyState.cs +++ b/Service/Execute/Step/StationReadyState.cs @@ -1,20 +1,21 @@ using System.Text; +using Autofac; +using Entity.Attr; using Entity.Constant; using Entity.DbModel.Station; +using HybirdFrameworkCore.Autofac; using log4net; using Microsoft.OpenApi.Extensions; using Microsoft.VisualBasic; using Newtonsoft.Json; using Repository.Station; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Init; using Service.Station; using Swapping.Business.Common; -using Swapping.Business.Tech; namespace Service.Execute.Step; @@ -23,9 +24,9 @@ public class StationReadyState : IState private readonly ILog _log = LogManager.GetLogger(typeof(StationReadyState)); - public SwapOrderRepository SwapOrderRepository { get; set; } + private readonly SwapOrderRepository _swapOrderRepository = AppInfo.Container.Resolve(); - public SwapOrderStepService SwapOrderStepService { get; set; } + private readonly SwapOrderStepService _swapOrderStepService = AppInfo.Container.Resolve(); public StateResult Handle(SwappingStateMachine machine) { @@ -203,11 +204,11 @@ public class StationReadyState : IState //新增换电订单 machine.SwapOrder = SaveOrder(BuildOrder(machine.RfidReadModel)); //新增小步 - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.Idel, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.Idel, machine.StepSort++, machine.SwapOrder.Sn); - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.RadarInFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.RadarInFlag, machine.StepSort++, machine.SwapOrder.Sn); - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.RfidReadFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.RfidReadFlag, machine.StepSort++, machine.SwapOrder.Sn); RfidApi.StopRead(); _log.Info("stop read rfid"); @@ -239,7 +240,7 @@ public class StationReadyState : IState private SwapOrder SaveOrder(SwapOrder swapOrder) { - SwapOrderRepository.Insert(swapOrder); + _swapOrderRepository.Insert(swapOrder); return swapOrder; } } \ No newline at end of file diff --git a/Service/Execute/Step/SwapCanStartState.cs b/Service/Execute/Step/SwapCanStartState.cs index b0a1bc9..36c7a31 100644 --- a/Service/Execute/Step/SwapCanStartState.cs +++ b/Service/Execute/Step/SwapCanStartState.cs @@ -1,15 +1,16 @@ -using Entity.Constant; +using Autofac; +using Entity.Attr; +using Entity.Constant; +using HybirdFrameworkCore.Autofac; using log4net; using Repository.Station; using Service.Cloud.Client; using Service.Cloud.Msg.Cloud.Req; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Init; using Service.Station; -using Swapping.Business.Tech; namespace Service.Execute.Step; @@ -20,8 +21,8 @@ public class SwapCanStartState : IState { private readonly ILog _log = LogManager.GetLogger(typeof(SwapCanStartState)); - public SwapOrderStepService SwapOrderStepService { get; set; } - private SwapOrderRepository SwapOrderRepository { get; set; } + private readonly SwapOrderStepService _swapOrderStepService = AppInfo.Container.Resolve(); + private readonly SwapOrderRepository _swapOrderRepository = AppInfo.Container.Resolve(); public StateResult Handle(SwappingStateMachine machine) { @@ -65,10 +66,10 @@ public class SwapCanStartState : IState _log.Info("SwapCanStart ok"); //更新换电订单 machine.SwapOrder.CloudSn = carCanStart.on; - SwapOrderRepository.Update(machine.SwapOrder.CloudSn); + _swapOrderRepository.Update(machine.SwapOrder.CloudSn); machine.CloudCarCanStartFlag = true; - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CloudCarCanStartFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.CloudCarCanStartFlag, machine.StepSort++, machine.SwapOrder.Sn); } else diff --git a/Service/Execute/Step/SwapDoneState.cs b/Service/Execute/Step/SwapDoneState.cs index 40ae2d1..162f82e 100644 --- a/Service/Execute/Step/SwapDoneState.cs +++ b/Service/Execute/Step/SwapDoneState.cs @@ -1,20 +1,22 @@ -using log4net; +using Autofac; +using Entity.Attr; +using Entity.Constant; +using HybirdFrameworkCore.Autofac; +using log4net; using Repository.Station; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.SwapException; using Service.Station; -using Swapping.Business.Tech; namespace Service.Execute.Step; public class SwapDoneState : IState { - private SwapOrderRepository SwapOrderRepository { get; set; } - public SwapOrderStepService SwapOrderStepService { get; set; } - private SwapAmtOrderRepository SwapAmtOrderRepository { get; set; } + private readonly SwapOrderRepository _swapOrderRepository = AppInfo.Container.Resolve(); + private readonly SwapOrderStepService _swapOrderStepService = AppInfo.Container.Resolve(); + private readonly SwapAmtOrderRepository _swapAmtOrderRepository = AppInfo.Container.Resolve(); private readonly ILog _log = LogManager.GetLogger(typeof(SwapDoneState)); @@ -30,7 +32,7 @@ public class SwapDoneState : IState machine.SwapOrder.SwapResult = machine.SwapStatus; machine.SwapOrder.SwapEndTime = DateTime.Now; machine.SwapOrder.FailReason = machine.SwapFailReason; - SwapOrderRepository.Update(machine.SwapOrder); + _swapOrderRepository.Update(machine.SwapOrder); if (machine.SwapStatus == (int)InfoEnum.SwapOrderResult.Success) @@ -92,7 +94,7 @@ public class SwapDoneState : IState machine.VelLockFlag = true; - SwapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.VelLockFlag, + _swapOrderStepService.InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep.VelLockFlag, machine.StepSort++, machine.SwapOrder.Sn); } } @@ -128,19 +130,19 @@ public class SwapDoneState : IState machine.BusinessSwappingForCloudState = InfoEnum.BusinessSwappingForCloudState.SwapDoneWithoutVel; machine.SwapOrder!.VehicleLeaveTime = DateTime.Now; - SwapOrderRepository.Update(machine.SwapOrder); + _swapOrderRepository.Update(machine.SwapOrder); if (machine.SwapOrderBatteryInfo!.swapAmtOrder != null) { machine.SwapOrderBatteryInfo.swapAmtOrder.Status = machine.SwapStatus == (int)InfoEnum.SwapOrderResult.Success ? (int)InfoEnum.AmtOrderStatus.SwapFinish : (int)InfoEnum.AmtOrderStatus.SwapFail; - SwapAmtOrderRepository.Update(machine.SwapOrderBatteryInfo.swapAmtOrder); + _swapAmtOrderRepository.Update(machine.SwapOrderBatteryInfo.swapAmtOrder); } machine.RadarOutFlag = true; - SwapOrderStepService.InsertSwapStepForSwapMain( + _swapOrderStepService.InsertSwapStepForSwapMain( machine.SwapStatus == (int)InfoEnum.SwapOrderResult.Success ? InfoEnum.BusinessSwappingStep.RadarOutFlag : InfoEnum.BusinessSwappingStep.RadarOutFailFlag, diff --git a/Service/Execute/SwappingStateMachine.cs b/Service/Execute/SwappingStateMachine.cs index 3551c49..a6e27d2 100644 --- a/Service/Execute/SwappingStateMachine.cs +++ b/Service/Execute/SwappingStateMachine.cs @@ -1,15 +1,16 @@ -using DotNetty.Common.Utilities; +using Autofac; +using DotNetty.Common.Utilities; +using Entity.Constant; using Entity.DbModel.Station; +using HybirdFrameworkCore.Autofac; using log4net; using Newtonsoft.Json; using Repository.Station; using Service.Execute.Api; -using Service.Execute.Enum; using Service.Execute.Model; using Service.Execute.StaticTools; using Service.Execute.Step; using Service.Execute.SwapException; -using Service.Execute.Tech; namespace Service.Execute; @@ -17,9 +18,12 @@ public class SwappingStateMachine : IDisposable { private static readonly ILog Log = LogManager.GetLogger(typeof(SwappingStateMachine)); private static readonly SwappingStateMachine SwappingMachine = new SwappingStateMachine(); + private BinInfoRepository BinInfoRepository { get; set; } + private SwapAmtOrderRepository AmtOrderRepository { get; set; } + public bool CancelFlag { get; set; } = false; public bool StopFlag { get; set; } = false; @@ -137,6 +141,9 @@ public class SwappingStateMachine : IDisposable _dictionary[SwappingState.Canceled] = new CancelState(); LedTool = new LedTool(); + + BinInfoRepository = AppInfo.Container.Resolve(); + AmtOrderRepository = AppInfo.Container.Resolve(); } public static SwappingStateMachine GetInstance() diff --git a/Service/Execute/Enum/SwapOrderNoGenerator.cs b/Service/Execute/Utils/SwapOrderNoGenerator.cs similarity index 100% rename from Service/Execute/Enum/SwapOrderNoGenerator.cs rename to Service/Execute/Utils/SwapOrderNoGenerator.cs diff --git a/Service/Service.csproj b/Service/Service.csproj index b4cce1f..7f81982 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -39,4 +39,8 @@ + + + + diff --git a/Service/Station/SwapOrderStepService.cs b/Service/Station/SwapOrderStepService.cs index 28d6575..65300ee 100644 --- a/Service/Station/SwapOrderStepService.cs +++ b/Service/Station/SwapOrderStepService.cs @@ -7,7 +7,6 @@ using Repository.Station; using SqlSugar; using System.Linq.Expressions; using Entity.Constant; -using Service.Execute.Enum; namespace Service.Station; diff --git a/Service/System/LoginService.cs b/Service/System/LoginService.cs index 25c6de9..dc1ccc8 100644 --- a/Service/System/LoginService.cs +++ b/Service/System/LoginService.cs @@ -446,7 +446,7 @@ namespace Service.System var typeList = GetConstAttributeList(); var type = typeList.FirstOrDefault(u => u.Name == typeName); - var isEnum = type.BaseType.Name == "Enum"; + var isEnum = type.BaseType.Name == "Utils"; constlist = type.GetFields()? .Where(isEnum, u => u.FieldType.Name == typeName) .Select(u => new ConstResp diff --git a/WebStarter/Program.cs b/WebStarter/Program.cs index 45e9c90..47bb01e 100644 --- a/WebStarter/Program.cs +++ b/WebStarter/Program.cs @@ -28,7 +28,7 @@ builder.Host.ConfigureContainer(cb => ConnectionString = AppSettingsConstVars.DbSqlConnection, // 设置数据库连接字符串 DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? DbType.MySql : DbType.SqlServer, IsAutoCloseConnection = true, - InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attribute + InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attr }); return db; }).As().SingleInstance(); diff --git a/WinFormStarter/Program.cs b/WinFormStarter/Program.cs index e574e9c..b443774 100644 --- a/WinFormStarter/Program.cs +++ b/WinFormStarter/Program.cs @@ -37,7 +37,7 @@ internal static class Program ConnectionString = AppSettingsConstVars.DbSqlConnection, // 设置数据库连接字符串 DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? DbType.MySql : DbType.SqlServer, IsAutoCloseConnection = true, - InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attribute + InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attr }); return db; }).As().InstancePerLifetimeScope(); diff --git a/WpfStarter/App.xaml.cs b/WpfStarter/App.xaml.cs index 2e55232..db8fed8 100644 --- a/WpfStarter/App.xaml.cs +++ b/WpfStarter/App.xaml.cs @@ -25,7 +25,7 @@ public partial class App : Application ? DbType.MySql : DbType.SqlServer, IsAutoCloseConnection = true, - InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attribute + InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attr }); return db; }).As().InstancePerLifetimeScope();