diff --git a/Service/Execute/Step/CarPrepareState.cs b/Service/Execute/Step/CarPrepareState.cs index 80227c0..4ce1ec5 100644 --- a/Service/Execute/Step/CarPrepareState.cs +++ b/Service/Execute/Step/CarPrepareState.cs @@ -389,7 +389,7 @@ public class CarPrepareState : IState //选包成功 _CommonMgr.LockBinAndUpdateAmt(orderBatteryInfo); machine.SwapOrderBatteryInfo = orderBatteryInfo; - _CommonMgr.SaveSwapBattery(machine); + machine.SelectPackFlag = true; } }, () => diff --git a/Service/Execute/Step/SwapDoneState.cs b/Service/Execute/Step/SwapDoneState.cs index 75d0c98..8af8aec 100644 --- a/Service/Execute/Step/SwapDoneState.cs +++ b/Service/Execute/Step/SwapDoneState.cs @@ -29,11 +29,13 @@ public class SwapDoneState : IState /// public StateResult Handle(SwappingStateMachine machine) { + //更新换电订单 machine.SwapOrder!.SwapResult = machine.SwapStatus; machine.SwapOrder.SwapEndTime = DateTime.Now; machine.SwapOrder.FailReason = machine.SwapFailReason; _CommonMgr.UpdateSwapOrder(machine); + _CommonMgr.SaveSwapBattery(machine); //修改预约单 @@ -80,8 +82,6 @@ public class SwapDoneState : IState { return SwappingStateMachine.ReturnWithInvokeErr(existRadar, ExceptionReason.None); } - - return new StateResult() { SwappingState = SwappingState.StationReady diff --git a/Service/MyTask/UpdateDownBatteryInfoTask.cs b/Service/MyTask/UpdateDownBatteryInfoTask.cs index 6067bef..f4b95bc 100644 --- a/Service/MyTask/UpdateDownBatteryInfoTask.cs +++ b/Service/MyTask/UpdateDownBatteryInfoTask.cs @@ -47,9 +47,10 @@ public class UpdateDownBatteryInfoTask : ITask return; } + List downBatteryBinNos = batterys.Select(i => i.DownBatteryBinNo.ToString()).ToList(); Dictionary binInfosMap = _BinInfoRepository - .QueryListByClause(i => downBatteryBinNos.Contains(i.No)).ToDictionary(i => i.No); + .QueryListByClause(i => downBatteryBinNos.Contains(i.No) && i.Exists==1).ToDictionary(i => i.No); List updateDbBattery = new List(); @@ -66,6 +67,10 @@ public class UpdateDownBatteryInfoTask : ITask continue; } + if (!info.BatteryNo.Equals(battery.DownBatteryNo)) + { + continue; + } battery.DownBatteryNo = info.BatteryNo; battery.DownBatterySoc = info.Soc; battery.DownBatterySoe = info.Soe; diff --git a/Service/Station/MonitorService.cs b/Service/Station/MonitorService.cs index 692547f..553e8df 100644 --- a/Service/Station/MonitorService.cs +++ b/Service/Station/MonitorService.cs @@ -36,15 +36,15 @@ public class MonitorService public PlcTaskMgr PlcTaskMgr { get; set; } public MoveBinRecordRepository MoveBinRecordRepository { get; set; } - - + + [DisplayName("获取移仓分页")] public async Task> Page(PageMoveBinRecordReq input) { RefAsync total = 0; - + var items = await MoveBinRecordRepository.QueryPageAsync( - entity => true, + entity => true, !string.IsNullOrWhiteSpace(input.UpBatterySoc), u => u.UpBatterySoc.Equals(input.UpBatterySoc.Trim()), !string.IsNullOrWhiteSpace(input.UpBinNo), u => u.UpBinNo.Equals(input.UpBinNo.Trim()), !string.IsNullOrWhiteSpace(input.UpBatteryNo), u => u.UpBatteryNo.Equals(input.UpBatteryNo.Trim()), @@ -57,21 +57,22 @@ public class MonitorService Rows = items, }; } - + public async Task Add(AddMoveBinRecordReq input) { string result = ""; MoveBinRecord moveBinRecord = await MoveBinRecordRepository.InsertAsync(input); - + return "新增id:" + moveBinRecord.Id; } + public virtual async Task Update(UpdateMoveBinRecordReq Req) { return await MoveBinRecordRepository.UpdateAsync(Req); } - - + + public virtual async Task Delete(DeleteMoveBinRecordReq input) { var user = await MoveBinRecordRepository.QueryByClauseAsync(u => u.Id == input.Id); @@ -79,21 +80,22 @@ public class MonitorService throw new ArgumentException($"不存在"); return await MoveBinRecordRepository.DeleteAsync(user); } + public Result GetSwapMonitorData() { var configBinInfo = new MapperConfiguration(cfg => cfg.CreateMap().ReverseMap()); IMapper mapperBinInfo = configBinInfo.CreateMapper(); - - + + List stateInfoList = new List(); ConcurrentDictionary dictionary = StationSoftMgr.SwappingStateMachine.StepModel; stateInfoList = dictionary.Values .OrderBy(model => model.StepNo) .Select(model => mapperBinInfo.Map(model)) .ToList(); - - + + var tboxCarInfoModel = StationSoftMgr.SwappingStateMachine.BoxCarInfoModel; List binInfos = BinInfoRepository.QueryListByClause(i => i.Exists == 1 && i.Status == 1); @@ -274,7 +276,7 @@ public class MonitorService Type = type, CreatedTime = DateTime.Now }; - moveBinRecord= MoveBinRecordRepository.Insert(moveBinRecord); + moveBinRecord = MoveBinRecordRepository.Insert(moveBinRecord); result = PlcMgr.HoldOn(); if (!result) @@ -299,6 +301,7 @@ public class MonitorService MoveBinRecordRepository.Update(moveBinRecord); return Result.Fail(); } + Log.Info($"move battery success update moveBin={JsonConvert.SerializeObject(moveBinRecord)}"); //如果是缓存仓 更新缓存仓的数据 @@ -315,14 +318,12 @@ public class MonitorService } - if (removeBin.CacheBinFlag == 1) - { - removeBin.Exists = 0; - removeBin.BatteryNo = "-1"; - removeBin.Soc = -1; - removeBin.Soe = -1; - removeBin.Soh = -1; - } + removeBin.Exists = 0; + removeBin.BatteryNo = "-1"; + removeBin.Soc = -1; + removeBin.Soe = -1; + removeBin.Soh = -1; + removeBin.BatteryEnterSeq = 0; BinInfoRepository.Update(removeBin); @@ -336,10 +337,10 @@ public class MonitorService Log.Error($"move battery fail e={e.Message}"); if (moveBinRecord != null) { - moveBinRecord.Status = 3; MoveBinRecordRepository.Update(moveBinRecord); } + PlcMgr.PlcClient?.ResetTaskNo(); return Result.Fail(); @@ -358,4 +359,4 @@ public class MonitorService return Result>.Success(mapperBinInfo.Map>(queryListByClause)); } -} +} \ No newline at end of file