<update>[important]更新普通移栽站台逻辑
This commit is contained in:
parent
e4d2d54fcc
commit
7160730c40
|
|
@ -1,20 +1,124 @@
|
||||||
using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I;
|
using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I;
|
||||||
|
using WcsMain.DataBase.Dao;
|
||||||
using WcsMain.DataBase.TableEntity;
|
using WcsMain.DataBase.TableEntity;
|
||||||
|
using WcsMain.DataService;
|
||||||
|
using WcsMain.Enum.Convey;
|
||||||
|
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 PickStandGetData : IBaseGetData
|
/// <remarks></remarks>
|
||||||
|
public class PickStandGetData(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao) : IBaseGetData
|
||||||
{
|
{
|
||||||
|
private readonly ConveyOperation _conveyOperation = conveyOperation;
|
||||||
|
private readonly DataBaseData _dataBaseData = dataBaseData;
|
||||||
|
private readonly AppConveyTaskDao _conveyTaskDao = conveyTaskDao;
|
||||||
|
|
||||||
|
|
||||||
|
/// <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.Move); // 读码失败,移栽
|
||||||
|
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.Go);
|
||||||
|
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<AppConveyTask>? conveyTasks = _conveyTaskDao.Query(new AppConveyTask { VehicleNo = code, TaskStatus = (int)ConveyTaskStatusEnum.create, Location = area });
|
||||||
|
if (conveyTasks == default)
|
||||||
|
{
|
||||||
|
ConsoleLog.Warning($"【警告】拣选站台:{area} 箱码:{msg} 查询任务失败,和服务器连接中断");
|
||||||
|
ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.Move); // 连接中断去往拣选区
|
||||||
|
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 (conveyTasks.Count < 1)
|
||||||
|
{
|
||||||
|
ConsoleLog.Warning($"【警告】拣选站台:{area} 箱码:{msg} 无拣选任务");
|
||||||
|
ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.Go);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
var conveyTask = conveyTasks.First();
|
||||||
|
// 有拣选任务
|
||||||
|
ConsoleLog.Success($"拣选站台:{area} 箱码:{msg} 存在拣选任务");
|
||||||
|
ConveyPLCTask plcTaskOk = new(plcId, (short)ConveyRouterEnum.Go);
|
||||||
|
string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk);
|
||||||
|
if (string.IsNullOrEmpty(errTextOk))
|
||||||
|
{
|
||||||
|
ConsoleLog.Success($"拣选站台:{area} 箱码:{msg},写入PLC成功,{plcTaskOk}");
|
||||||
|
int updateResult = _conveyTaskDao.Update(new AppConveyTask() { TaskId = conveyTask.TaskId, MoveTime = DateTime.Now, TaskStatus = (int)ConveyTaskStatusEnum.moved });
|
||||||
|
if (updateResult < 1)
|
||||||
|
{
|
||||||
|
ConsoleLog.Warning($"【警告】拣选站台:{area} 箱码:{msg} 更新移栽状态失败");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ConsoleLog.Success($"拣选站台:{area} 箱码:{msg} 更新移栽状态成功");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ConsoleLog.Warning($"【警告】拣选站台:{area} 箱码:{msg},写入PLC失败,{plcTaskOk},信息:{errTextOk}");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,30 @@ public class AppConveyTaskDao
|
||||||
public List<AppConveyTask>? Query() => Query(new AppConveyTask());
|
public List<AppConveyTask>? Query() => Query(new AppConveyTask());
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据主键更新数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="conveyTask"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public int Update(params AppConveyTask[] conveyTask)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var sqlFuc = CommonTool.DbServe.Updateable(conveyTask).IgnoreColumns(ignoreAllNullColumns: true);
|
||||||
|
return sqlFuc.ExecuteCommand();
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
_ = ex;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
public enum ConveyTaskStatusEnum
|
public enum ConveyTaskStatusEnum
|
||||||
{
|
{
|
||||||
create = 0, // 新创建
|
create = 0, // 新创建
|
||||||
noved = 1, // 已经移栽
|
moved = 1, // 已经移栽
|
||||||
arrive = 2, // 到达
|
arrive = 2, // 到达
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user