You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.4 KiB

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;
/// <summary>
/// 手动确认成功状态
/// </summary>
public class ManualSuccState : IState
{
private readonly SwapAmtOrderRepository _swapAmtOrderRepository =
AppInfo.Container.Resolve<SwapAmtOrderRepository>();
private readonly CommonMgr _CommonMgr = AppInfo.Container.Resolve<CommonMgr>();
private static readonly ILog _log = LogManager.GetLogger(typeof(CancelState));
private static readonly ManualOperationRecordRepository _manualOperationRecordRepository =
AppInfo.Container.Resolve<ManualOperationRecordRepository>();
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
};
}
}