步序初始化

master
tq 5 months ago
parent 519b6bcafb
commit 173897b781

@ -16,6 +16,10 @@ public class SwappingStateInfoResp
/// <summary>
/// 换电步序时刻
/// </summary>
public DateTime StartTime{ get; set; }
public DateTime? StartTime{ get; set; }
/// <summary>
/// 步序执行状态
/// 0:初始化 1:执行完成
/// </summary>
public int Status{ get; set; }
}

@ -39,12 +39,15 @@ public class CommonMgr
/// </summary>
public void InsertStep(InfoEnum.BusinessSwappingStep step, SwappingStateMachine machine)
{
machine.StepModel.Add(new()
var stepModel = new StepModel
{
StepName = BaseEnumExtensions.GetDescription(step),
StepNo = (int)step,
StartTime = DateTime.Now
});
StartTime = DateTime.Now,
Status = 1
};
machine.StepModel[step.ToString()] = stepModel;
_swapOrderStepService.InsertSwapStepForSwapMain(step,
machine.StepSort++, machine.SwapOrder.Sn);
}

@ -19,5 +19,10 @@ public class StepModel
/// <summary>
/// 换电步序时刻
/// </summary>
public DateTime StartTime{ get; set; }
public DateTime? StartTime{ get; set; }
/// <summary>
/// 步序执行状态
/// 0:初始化 1:执行完成
/// </summary>
public int Status{ get; set; }
}

@ -1,4 +1,5 @@
using Autofac;
using System.Collections.Concurrent;
using Autofac;
using DotNetty.Common.Utilities;
using Entity.Constant;
using Entity.DbModel.Station;
@ -66,9 +67,26 @@ public class SwappingStateMachine : IDisposable
public SwapOrderBatteryInfo? SwapOrderBatteryInfo = null;
public List<StepModel> StepModel = null;
public ConcurrentDictionary<string, StepModel> StepModel =
new ConcurrentDictionary<string, StepModel>
{
["1"] = new StepModel { StepNo = 1, Status = 0, StepName = "空闲" },
["2"] = new StepModel { StepNo = 2, Status = 0, StepName = "车辆到站(入口雷达检测到车辆驶入)" },
["3"] = new StepModel { StepNo = 3, Status = 0, StepName = "rfid扫描完成" },
["4"] = new StepModel { StepNo = 4, Status = 0, StepName = "云平台车辆认证" },
["5"] = new StepModel { StepNo = 5, Status = 0, StepName = "车辆到位" },
["6"] = new StepModel { StepNo = 6, Status = 0, StepName = "车辆解锁" },
["7"] = new StepModel { StepNo = 7, Status = 0, StepName = "下发plc选包" },
["8"] = new StepModel { StepNo = 8, Status = 0, StepName = "开始换电" },
["9"] = new StepModel { StepNo = 9, Status = 0, StepName = "拆旧电池完成" },
["10"] = new StepModel { StepNo = 10, Status = 0, StepName = "入库旧电池完成" },
["11"] = new StepModel { StepNo = 11, Status = 0, StepName = "搬运新电池完成" },
["12"] = new StepModel { StepNo = 12, Status = 0, StepName = "安装新电池完成" },
["13"] = new StepModel { StepNo = 13, Status = 0, StepName = "安装完成" },
["14"] = new StepModel { StepNo = 14, Status = 0, StepName = "车辆上锁" },
["15"] = new StepModel { StepNo = 15, Status = 0, StepName = "换电完成(车辆驶离)" },
["16"] = new StepModel { StepNo = 16, Status = 0, StepName = "换电失败(车辆驶离)" },
};
#region 小步状态
//雷达检测/车辆进入
@ -323,7 +341,12 @@ public class SwappingStateMachine : IDisposable
SwapOrderBatteryInfo = null;
StepSort = 0;
StepModel = new List<StepModel>();
foreach (var key in StepModel.Keys.ToList())
{
StepModel[key].Status = 0;
StepModel[key].StartTime = null;
}
PlcSwapFlag = false;
ManualSwapSuccFlag = false;

@ -1,10 +1,13 @@
using System.Collections.Concurrent;
using System.ComponentModel;
using Autofac;
using AutoMapper;
using Common.Util;
using Entity.Api.Resp;
using Entity.Constant;
using Entity.DbModel.Station;
using Entity.Dto.Req;
using HybirdFrameworkCore.Autofac;
using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Entity;
using log4net;
@ -15,6 +18,7 @@ using Service.Cloud.Client;
using Service.Execute;
using Service.Execute.Api;
using Service.Execute.Model;
using Service.Execute.Utils;
using Service.Init;
using Service.Mgr;
using Service.Plc.Client;
@ -80,10 +84,16 @@ public class MonitorService
var configBinInfo =
new MapperConfiguration(cfg => cfg.CreateMap<StepModel, SwappingStateInfoResp>().ReverseMap());
IMapper mapperBinInfo = configBinInfo.CreateMapper();
List<SwappingStateInfoResp> stateInfoList =
mapperBinInfo.Map<List<SwappingStateInfoResp>>(StationSoftMgr.SwappingStateMachine.StepModel);
List<SwappingStateInfoResp> stateInfoList = new List<SwappingStateInfoResp>();
ConcurrentDictionary<string, StepModel> dictionary = StationSoftMgr.SwappingStateMachine.StepModel;
stateInfoList = dictionary.Values
.OrderBy(model => model.StepNo)
.Select(model => mapperBinInfo.Map<SwappingStateInfoResp>(model))
.ToList();
var tboxCarInfoModel = StationSoftMgr.SwappingStateMachine.BoxCarInfoModel;
List<BinInfo> binInfos = BinInfoRepository.QueryListByClause(i => i.Exists == 1 && i.Status == 1);

Loading…
Cancel
Save