using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.DataService; using WcsMain.Enum.Convey; using WcsMain.EquipOperation.Convey; using WcsMain.EquipOperation.Entity; using WcsMain.Plugins; namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; /// /// 1~5 站台环线的出口 /// /// /// /// public class PickStandEnd(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao) : IBaseGetData { /// /// 读码失败 /// /// /// /// /// public void ReadFail(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { var plcId = dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; ConveyPLCTask plcTask = new(plcId, 1); // 读码失败,移栽进拣选站台 var errText = conveyOperation.WriteTask(area, plcTask); if (string.IsNullOrEmpty(errText)) { ConsoleLog.Warning($"拣选出口站台:{area} 读码失败,写入PLC成功,{plcTask}"); return; } ConsoleLog.Warning($"【警告】拣选出口站台:{area} 读码失败,写入PLC失败,{plcTask},信息:{errText}"); } /// /// 读码成功 /// /// /// /// /// public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { var plcId = dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; // 获取一个 plcId /* 判断条码有没有拣选任务 */ var conveyTasks = conveyTaskDao.Query(new AppConveyTask { VehicleNo = msg, TaskStatus = (int)ConveyTaskStatusEnum.create }); if (conveyTasks == null) { ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg} 查询任务失败,数据服务异常"); ConveyPLCTask plcTask = new(plcId, 2); // 连接中断环线运行 var errText = conveyOperation.WriteTask(area, plcTask); if (string.IsNullOrEmpty(errText)) { ConsoleLog.Success($"拣选出口站台:{area} 箱码:{msg},写入PLC成功,{plcTask}"); return; } ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); return; } if (conveyTasks.Count < 1) { ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg} 无拣选任务"); ConveyPLCTask plcTask = new(plcId, 3); var errText = conveyOperation.WriteTask(area, plcTask); if (string.IsNullOrEmpty(errText)) { ConsoleLog.Success($"拣选出口站台:{area} 箱码:{msg},写入PLC成功,{plcTask}"); return; } ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); return; } /* 判断拣选任务中有没有这个站台的任务 */ var pickStand1Task = conveyTasks.Find(f => f.Location == "P3"); if (pickStand1Task == null) // 不存在这个站台任务 { ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg} 没有此站台的任务,环线运行"); ConveyPLCTask plcTask = new(plcId, 3); // 不存在这个站台任务 var errText = conveyOperation.WriteTask(area, plcTask); if (string.IsNullOrEmpty(errText)) { ConsoleLog.Success($"拣选出口站台:{area} 箱码:{msg},写入PLC成功,{plcTask}"); return; } ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); } else { ConsoleLog.Info($"拣选出口站台:{area} 箱码:{msg} 存在此站台任务"); ConveyPLCTask plcTask = new(plcId, 1); // 存在拣选台任务 var errText = conveyOperation.WriteTask(area, plcTask); if (string.IsNullOrEmpty(errText)) { ConsoleLog.Success($"拣选出口站台:{area} 箱码:{msg},写入PLC成功,{plcTask}"); return; } ConsoleLog.Warning($"【警告】拣选出口站台:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}"); } } }