diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs
index a3aa637..355471c 100644
--- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs
+++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInErr.cs
@@ -1,20 +1,117 @@
using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I;
+using WcsMain.Common;
+using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
+using WcsMain.DataService;
+using WcsMain.Enum.Convey;
+using WcsMain.Enum.Stacker;
+using WcsMain.EquipOperation.Convey;
+using WcsMain.EquipOperation.Entity;
+using WcsMain.ExtendMethod;
namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData;
///
/// 入库异常异常口判定 ---- 卡特专用 ---- 苏州卡特
///
-public class StackerInErr : IBaseGetData
+public class StackerInErr(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppWcsTaskDao wcsTaskDao) : IBaseGetData
{
+
+ private readonly ConveyOperation _conveyOperation = conveyOperation;
+ private readonly DataBaseData _dataBaseData = dataBaseData;
+ private readonly AppWcsTaskDao _wcsTaskDao = wcsTaskDao;
+
+ ///
+ /// 读码失败
+ ///
+ ///
+ ///
+ ///
+ ///
public void ReadFail(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData)
{
-
+ int plcId = _dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId;
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.NoRead);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库异常口:{area} 读码失败,写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库异常口:{area} 读码失败,写入PLC失败,{plcTask},信息:{errText}");
+ return;
}
+ ///
+ /// 读码成功
+ ///
+ ///
+ ///
+ ///
+ ///
public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData)
{
-
+ int plcId = _dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; // 获取一个 plcId
+ (string code, string direction) = msg.FormatDir();
+ /* 判断方向是否正确 */
+ string? routerDirection = routerMethodData.AllowDirection;
+ if (!string.IsNullOrEmpty(routerDirection))
+ {
+ string[] dirs = routerDirection.Split(',');
+ if (!dirs.Contains(direction))
+ {
+ ConsoleLog.Warning($"【警告】入库异常口:{area} 箱码:{msg} 方向:{direction} 方向不正确,允许的方向为:{routerDirection}");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WcsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库异常口:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库异常口:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ }
+ /* 查询任务 */
+ List? wcsTasks = _wcsTaskDao.Select(new AppWcsTask { VehicleNo = code, TaskStatus = (int)WcsTaskStatusEnum.create });
+ if (wcsTasks == default)
+ {
+ // 数据库服务器连接失败
+ ConsoleLog.Exception($"【异常】入库异常口:{area} 箱码:{msg} 查询任务失败,请检查服务器网络");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WmsErr);
+ string 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 (wcsTasks.Count < 1)
+ {
+ // 不存在任务
+ ConsoleLog.Exception($"【异常】入库异常口:{area} 箱码:{msg} 不存在入库任务");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WcsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库异常口:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库异常口:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ // 存在入库任务
+ ConsoleLog.Success($"入库异常口:{area} 箱码:{msg} 存在入库任务");
+ ConveyPLCTask plcTaskOk = new(plcId, (short)ConveyRouterEnum.Move);
+ string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk);
+ if (string.IsNullOrEmpty(errTextOk))
+ {
+ ConsoleLog.Success($"入库异常口:{area} 箱码:{msg},写入PLC成功,{plcTaskOk}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库异常口:{area} 箱码:{msg},写入PLC失败,{plcTaskOk},信息:{errTextOk}");
+ return;
}
}
diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
index 198ef1d..4c28024 100644
--- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
+++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
@@ -121,7 +121,6 @@ public class StackerInSpliter(ConveyOperation conveyOperation, DataBaseData data
return;
}
ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0);
- // 点位不存在
ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}");
ConveyPLCTask plcTaskOk = new(plcId, (short)router);
string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk);