using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.DataService; using WcsMain.Enum.Stacker; using WcsMain.EquipOperation.Convey; using WcsMain.EquipOperation.Entity; using WcsMain.ExtendMethod; namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData; /// /// 入库异常异常口判定 /// /// /// R3 /// public class StackerInErr(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppWmsTaskDao wmsTaskDao) : IBaseGetData { /// /// 读码失败 /// /// /// /// /// public void ReadFail(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) { var plcId = dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; ConveyPLCTask plcTask = new(plcId, 3); 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 wmsTasks = wmsTaskDao.Select(new AppWmsTask { VehicleNo = msg, TaskStatus = (int)WmsTaskStatusEnum.create }); if (wmsTasks == null) { // 数据库服务器连接失败 ConsoleLog.Exception($"【异常】入库异常口:{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; } if (wmsTasks.Count < 1) { // 不存在任务 ConsoleLog.Exception($"【异常】入库异常口:{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 wmsTask = wmsTasks.First(); // 取得任务 var locationDetail = CommonData.AppLocations.DetailWithWmsLocation(wmsTask.Destination); if (locationDetail == null) { // 点位不存在 ConsoleLog.Exception($"【异常】入库分流:{area} 箱码:{msg} 终点:{wmsTask.Destination} 不存在,请重试"); 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 successRouter = (short)(locationDetail.TunnelNo ?? 0); ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wmsTask.Destination} 巷道:{locationDetail.TunnelNo}"); ConveyPLCTask plcTaskOk = new(plcId, successRouter); var errTextOk = conveyOperation.WriteTask(area, plcTaskOk); if (string.IsNullOrEmpty(errTextOk)) { ConsoleLog.Success($"入库异常口:{area} 箱码:{msg},写入PLC成功,{plcTaskOk}"); return; } ConsoleLog.Warning($"【警告】入库异常口:{area} 箱码:{msg},写入PLC失败,{plcTaskOk},信息:{errTextOk}"); } }