using Autofac; using Entity.Constant; using Entity.DbModel.Station; using HybirdFrameworkCore.Autofac; using log4net; using Repository.Station; using Service.Execute.Utils; using Service.Mgr; namespace Service.Execute.Step; /// /// 手动确认成功状态 /// public class ManualSuccState : IState { private readonly SwapAmtOrderRepository _swapAmtOrderRepository = AppInfo.Container.Resolve(); private readonly CommonMgr _CommonMgr = AppInfo.Container.Resolve(); private static readonly ILog _log = LogManager.GetLogger(typeof(CancelState)); private static readonly ManualOperationRecordRepository _manualOperationRecordRepository = AppInfo.Container.Resolve(); public StateResult Handle(SwappingStateMachine machine) { _log.Info($"goto ManualSucc"); try { machine.ManualSwapSuccFlag = false; if (machine.SwapOrderBatteryInfo.swapAmtOrder != null) { machine.SwapOrderBatteryInfo.swapAmtOrder.Status = (byte)InfoEnum.AmtOrderStatus.SwapFinish; _swapAmtOrderRepository.Update(machine.SwapOrderBatteryInfo.swapAmtOrder); } if (machine.SwapOrder != null) { machine.SwapOrder.SwapResult = (byte)InfoEnum.SwapOrderResult.Success; machine.SwapOrder.VehicleLeaveTime = DateTime.Now; _CommonMgr.UpdateSwapOrder(machine); } var manualOperationRecord = new ManualOperationRecord() { Type = 1, CreatedBy = UserManager.Account, UpdatedBy = UserManager.Account, Operator = machine.OperateModel.Operator, Reason = machine.OperateModel.Reason, }; if (machine.SwapOrder != null) { manualOperationRecord.SwapOrderSn = machine.SwapOrder.Sn; } _manualOperationRecordRepository.Insert(manualOperationRecord); ; StationReadyState.CanWelcomeInfo = true; machine.Reset(); } catch (Exception e) { machine.Reset(); _log.Error($"ManualSuccState err={e}"); } return new StateResult() { SwappingState = SwappingState.StationReady }; } }