<add>[important]添加入库异常口扫码逻辑

This commit is contained in:
葛林强 2024-06-12 10:04:13 +08:00
parent d16b29ed6b
commit aed0a69c8c
2 changed files with 100 additions and 4 deletions

View File

@ -1,20 +1,117 @@
using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I; using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I;
using WcsMain.Common;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity; 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; namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData;
/// <summary> /// <summary>
/// 入库异常异常口判定 ---- 卡特专用 ---- 苏州卡特 /// 入库异常异常口判定 ---- 卡特专用 ---- 苏州卡特
/// </summary> /// </summary>
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;
/// <summary>
/// 读码失败
/// </summary>
/// <param name="disPlayName"></param>
/// <param name="msg"></param>
/// <param name="area"></param>
/// <param name="routerMethodData"></param>
public void ReadFail(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) 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;
} }
/// <summary>
/// 读码成功
/// </summary>
/// <param name="disPlayName"></param>
/// <param name="msg"></param>
/// <param name="area"></param>
/// <param name="routerMethodData"></param>
public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData) 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<AppWcsTask>? 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;
} }
} }

View File

@ -121,7 +121,6 @@ public class StackerInSpliter(ConveyOperation conveyOperation, DataBaseData data
return; return;
} }
ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0); ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0);
// 点位不存在
ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}"); ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}");
ConveyPLCTask plcTaskOk = new(plcId, (short)router); ConveyPLCTask plcTaskOk = new(plcId, (short)router);
string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk); string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk);