482 lines
17 KiB
C#
482 lines
17 KiB
C#
|
|
using System.Text;
|
|||
|
|
using WcsMain.ApiServe.Controllers.Dto.WcsDto.WcsTask;
|
|||
|
|
using WcsMain.Common;
|
|||
|
|
using WcsMain.DataBase.TableEntity;
|
|||
|
|
using WcsMain.Enum.TaskEnum;
|
|||
|
|
using WcsMain.WcsAttribute.AutoFacAttribute;
|
|||
|
|
|
|||
|
|
namespace WcsMain.DataBase.Dao;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// tbl_app_wcs_task 表操作类
|
|||
|
|
/// </summary>
|
|||
|
|
[Component]
|
|||
|
|
public class AppWcsTaskDao
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 新增一条记录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWcsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Insert(params AppWcsTask[] appWcsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
return CommonTool.DbServe.Insertable(appWcsTask).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新一条记录,根据主键,主键PlcId
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWcsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Update(AppWcsTask appWcsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Updateable(appWcsTask).IgnoreColumns(ignoreAllNullColumns: true);
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除一条记录,根据主键,主键PlcId
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWcsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int Delete(AppWcsTask appWcsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Deleteable(appWcsTask);
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="appWcsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
/// <remarks>
|
|||
|
|
/// 时间不在筛选行列
|
|||
|
|
/// </remarks>
|
|||
|
|
public List<AppWcsTask>? Select(AppWcsTask appWcsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWcsTask>()
|
|||
|
|
.WhereIF(appWcsTask.PlcId != default, w => w.PlcId == appWcsTask.PlcId)
|
|||
|
|
.WhereIF(appWcsTask.NextPlcId != default, w => w.NextPlcId == appWcsTask.NextPlcId)
|
|||
|
|
.WhereIF(appWcsTask.TaskCategory != default, w => w.TaskCategory == appWcsTask.TaskCategory)
|
|||
|
|
.WhereIF(appWcsTask.TaskId != default, w => w.TaskId == appWcsTask.TaskId)
|
|||
|
|
.WhereIF(appWcsTask.TaskType != default, w => w.TaskType == appWcsTask.TaskType)
|
|||
|
|
.WhereIF(appWcsTask.TaskSort != default, w => w.TaskSort == appWcsTask.TaskSort)
|
|||
|
|
.WhereIF(appWcsTask.TaskStatus != default, w => w.TaskStatus == appWcsTask.TaskStatus)
|
|||
|
|
.WhereIF(appWcsTask.Origin != default, w => w.Origin == appWcsTask.Origin)
|
|||
|
|
.WhereIF(appWcsTask.Destination != default, w => w.Destination == appWcsTask.Destination)
|
|||
|
|
.WhereIF(appWcsTask.PlcVehicleNo != default, w => w.PlcVehicleNo == appWcsTask.PlcVehicleNo)
|
|||
|
|
.WhereIF(appWcsTask.VehicleNo != default, w => w.VehicleNo == appWcsTask.VehicleNo)
|
|||
|
|
.WhereIF(appWcsTask.VehicleSize != default, w => w.VehicleSize == appWcsTask.VehicleSize)
|
|||
|
|
.WhereIF(appWcsTask.Weight != default, w => w.Weight == appWcsTask.Weight)
|
|||
|
|
.OrderByDescending(o => o.CreateTime).OrderBy(o => o.TaskSort);
|
|||
|
|
return sqlFuc.ToList();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找所有数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? Select() => Select(new AppWcsTask());
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据 TaskId 删除任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="taskId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int DeleteWithTaskId(string taskId)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Deleteable<AppWcsTask>().Where(w => w.TaskId == taskId);
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 带参数分页查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageRequest"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public (List<AppWcsTask>? wcsTasks, int totalRows) SelectPage(GetWcsTaskWithPageRequest pageRequest)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
int totalRows = 0;
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWcsTask>()
|
|||
|
|
.WhereIF(!string.IsNullOrEmpty(pageRequest.SearchStr),
|
|||
|
|
w => w.Destination!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.PlcId.ToString()!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.Origin!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.VehicleNo!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.TaskId!.Contains(pageRequest.SearchStr!)
|
|||
|
|
|| w.Remark!.Contains(pageRequest.SearchStr!)); // 模糊查询
|
|||
|
|
if (pageRequest.TaskType != default) // 查询任务类型
|
|||
|
|
{
|
|||
|
|
List<int?> taskTypes = [];
|
|||
|
|
foreach (var taskType in pageRequest.TaskType)
|
|||
|
|
{
|
|||
|
|
if (taskType == "入库任务") { taskTypes.Add((int)TaskTypeEnum.inTask); }
|
|||
|
|
if (taskType == "出库任务") { taskTypes.Add((int)TaskTypeEnum.outTask); }
|
|||
|
|
if (taskType == "拣选任务") { taskTypes.Add((int)TaskTypeEnum.pick); }
|
|||
|
|
if (taskType == "盘点任务") { taskTypes.Add((int)TaskTypeEnum.check); }
|
|||
|
|
if (taskType == "移库任务") { taskTypes.Add((int)TaskTypeEnum.moveTask); }
|
|||
|
|
}
|
|||
|
|
sqlFuc.Where(w => taskTypes.Contains(w.TaskType));
|
|||
|
|
}
|
|||
|
|
if (pageRequest.TaskStatus != default) // 查询任务状态
|
|||
|
|
{
|
|||
|
|
List<int?> taskStatuss = [];
|
|||
|
|
foreach (var taskStatus in pageRequest.TaskStatus)
|
|||
|
|
{
|
|||
|
|
if (taskStatus == "待执行") { taskStatuss.Add((int)WcsTaskStatusEnum.create); }
|
|||
|
|
if (taskStatus == "离开起点") { taskStatuss.Add((int)WcsTaskStatusEnum.leaveOrigin); }
|
|||
|
|
if (taskStatus == "执行中") { taskStatuss.Add((int)WcsTaskStatusEnum.running); }
|
|||
|
|
if (taskStatus == "到达终点") { taskStatuss.Add((int)WcsTaskStatusEnum.arriveDestination); }
|
|||
|
|
if (taskStatus == "执行完成") { taskStatuss.Add((int)WcsTaskStatusEnum.complete); }
|
|||
|
|
if (taskStatus == "执行异常") { taskStatuss.Add((int)WcsTaskStatusEnum.err); }
|
|||
|
|
}
|
|||
|
|
sqlFuc.Where(w => taskStatuss.Contains(w.TaskStatus));
|
|||
|
|
}
|
|||
|
|
if (pageRequest.TimeRange is { Count: 2 }) // 时间范围
|
|||
|
|
{
|
|||
|
|
sqlFuc.Where(w => w.CreateTime > pageRequest.TimeRange[0] && w.CreateTime < pageRequest.TimeRange[1]);
|
|||
|
|
}
|
|||
|
|
sqlFuc.OrderByDescending(o => new { o.CreateTime });
|
|||
|
|
var queryResult = sqlFuc.ToPageList(pageRequest.Page!.PageIndex, pageRequest.Page!.PageSize, ref totalRows);
|
|||
|
|
return (queryResult, totalRows);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/******************************************************************** 业务方法 *********************************************/
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保留多少天前数据 ---- 删除的是备份表
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="days"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int ClearData(int days)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Deleteable<AppWcsTask>().AS("[tbl_app_wcs_task_bak]").Where(w => w.CreateTime < DateTime.Now.AddDays(-days));
|
|||
|
|
return sqlFuc.ExecuteCommand();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 转换WMS任务到WCS任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="wcsTasks"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public string TransWmsTaskToWcsTask(params AppWcsTask[]? wcsTasks)
|
|||
|
|
{
|
|||
|
|
if (wcsTasks == default || wcsTasks.Length < 1)
|
|||
|
|
{
|
|||
|
|
return "传入的任务为空";
|
|||
|
|
}
|
|||
|
|
var result = CommonTool.DbServe.Ado.UseTran(() =>
|
|||
|
|
{
|
|||
|
|
CommonTool.DbServe.Insertable(wcsTasks).ExecuteCommand();
|
|||
|
|
foreach (var wcsTask in wcsTasks)
|
|||
|
|
{
|
|||
|
|
CommonTool.DbServe.Updateable(new AppWmsTask()
|
|||
|
|
{ TaskId = wcsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.queuing })
|
|||
|
|
.IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
return result.Data ? string.Empty : result.ErrorException.Message;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查找各组 taskId 中最前的任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? GetNeedExecuteTasks()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
const string sql = "SELECT * FROM tbl_app_wcs_task a WHERE task_sort = (SELECT MIN(task_sort) from tbl_app_wcs_task where a.task_id = task_id) and task_status = 0 ORDER BY create_time asc";
|
|||
|
|
List<AppWcsTask> tasks = CommonTool.DbServe.Ado.SqlQuery<AppWcsTask>(sql);
|
|||
|
|
return tasks;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 校验除了这个任务以外,该组是否有其他任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="wcsTask"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? CheckIsHaveOtherTask(AppWcsTask wcsTask)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
List<AppWcsTask> wcsTasks = CommonTool.DbServe.Queryable<AppWcsTask>()
|
|||
|
|
.Where(w => w.TaskId == wcsTask.TaskId && w.TaskSort != wcsTask.TaskSort).ToList();
|
|||
|
|
return wcsTasks;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据任务ID查询所有的wcs任务数据,包括备份表内的数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// /// <param name="taskId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? GetAllTasksWithBakData(string taskId)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
string selectSql = $"select * from (select * from tbl_app_wcs_task union all select * from tbl_app_wcs_task_bak) as a where task_id = '{taskId}' order by create_time asc ";
|
|||
|
|
List<AppWcsTask> wcsTasks = CommonTool.DbServe.SqlQueryable<AppWcsTask>(selectSql).ToList();
|
|||
|
|
return wcsTasks;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据 PlcId 查找任务数据,包括备份表
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="plcId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? GetAllTasksWithBakDataUsePlcId(int? plcId)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
string selectSql = $"select * from (select * from tbl_app_wcs_task union all select * from tbl_app_wcs_task_bak) as a where plc_id = '{plcId}' order by create_time asc ";
|
|||
|
|
List<AppWcsTask> wcsTasks = CommonTool.DbServe.SqlQueryable<AppWcsTask>(selectSql).ToList();
|
|||
|
|
return wcsTasks;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据堆垛机编号查询该堆垛机下需要执行的入库任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="stackerId"></param>
|
|||
|
|
/// <param name="vehicleNo"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? SelectInTaskWithStacker(int stackerId, string? vehicleNo = default)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
StringBuilder sql = new();
|
|||
|
|
sql.AppendLine($"select * from tbl_app_wcs_task where origin in (select wcs_location from tbl_app_location where equipment_id = {stackerId}) and task_type = {(int)TaskTypeEnum.inTask} ");
|
|||
|
|
sql.AppendLine($"and task_category = {(int)TaskCategoryEnum.stacker} ");
|
|||
|
|
sql.AppendLine($"and task_status = {(int)WcsTaskStatusEnum.create} ");
|
|||
|
|
if (!string.IsNullOrEmpty(vehicleNo))
|
|||
|
|
{
|
|||
|
|
sql.AppendLine($"and vehicle_no = '{vehicleNo}' ");
|
|||
|
|
}
|
|||
|
|
sql.AppendLine("order by priority desc, wms_time asc ");
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Ado.SqlQuery<AppWcsTask>(sql.ToString());
|
|||
|
|
return sqlFuc;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据堆垛机编号查询该堆垛机下需要执行的出库任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="stackerId"></param>
|
|||
|
|
/// <param name="vehicleNo"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? SelectOutTaskWithStacker(int stackerId, string? vehicleNo = default)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
StringBuilder sql = new();
|
|||
|
|
sql.AppendLine($"select * from tbl_app_wcs_task where origin in (select wcs_location from tbl_app_location where equipment_id = {stackerId}) and task_type = {(int)TaskTypeEnum.outTask} ");
|
|||
|
|
sql.AppendLine($"and task_category = {(int)TaskCategoryEnum.stacker} ");
|
|||
|
|
sql.AppendLine($"and task_status = {(int)WcsTaskStatusEnum.create} ");
|
|||
|
|
if (!string.IsNullOrEmpty(vehicleNo))
|
|||
|
|
{
|
|||
|
|
sql.AppendLine($"and vehicle_no = '{vehicleNo}' ");
|
|||
|
|
}
|
|||
|
|
sql.AppendLine("order by priority desc, wms_time asc ");
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Ado.SqlQuery<AppWcsTask>(sql.ToString());
|
|||
|
|
return sqlFuc;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据堆垛机编号查询该堆垛机下需要执行的拣选出库任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="stackerId"></param>
|
|||
|
|
/// <param name="vehicleNo"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? SelectPickOutTaskWithStacker(int stackerId, string? vehicleNo = "")
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
StringBuilder sql = new();
|
|||
|
|
sql.AppendLine($"select * from tbl_app_wcs_task where origin in (select wcs_location from tbl_app_location where equipment_id = {stackerId}) and task_type = {(int)TaskTypeEnum.pick} ");
|
|||
|
|
sql.AppendLine($"and task_category = {(int)TaskCategoryEnum.stacker} ");
|
|||
|
|
sql.AppendLine($"and task_status = {(int)WcsTaskStatusEnum.create} ");
|
|||
|
|
if (!string.IsNullOrEmpty(vehicleNo))
|
|||
|
|
{
|
|||
|
|
sql.AppendLine($"and vehicle_no = '{vehicleNo}' ");
|
|||
|
|
}
|
|||
|
|
sql.AppendLine("order by priority desc, create_time asc ");
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Ado.SqlQuery<AppWcsTask>(sql.ToString());
|
|||
|
|
return sqlFuc;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据堆垛机编号查询该堆垛机下需要执行的移库任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="stackerId"></param>
|
|||
|
|
/// <param name="vehicleNo"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? SelectMoveTaskWithStacker(int stackerId, string? vehicleNo = "")
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
StringBuilder sql = new();
|
|||
|
|
sql.AppendLine($"select * from tbl_app_wcs_task where origin in (select wcs_location from tbl_app_location where equipment_id = {stackerId}) and task_type = {(int)TaskTypeEnum.moveTask} ");
|
|||
|
|
sql.AppendLine($"and task_category = {(int)TaskCategoryEnum.stacker} ");
|
|||
|
|
sql.AppendLine($"and task_status = {(int)WcsTaskStatusEnum.create} ");
|
|||
|
|
if (!string.IsNullOrEmpty(vehicleNo))
|
|||
|
|
{
|
|||
|
|
sql.AppendLine($"and vehicle_no = '{vehicleNo}' ");
|
|||
|
|
}
|
|||
|
|
sql.AppendLine("order by priority desc, create_time asc ");
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Ado.SqlQuery<AppWcsTask>(sql.ToString());
|
|||
|
|
return sqlFuc;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据起点或者终点查找当前正在运行的任务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="destinations"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<AppWcsTask>? QueryTaskWithWcsLocation(params string?[] destinations)
|
|||
|
|
{
|
|||
|
|
List<AppWcsTask>? result = [];
|
|||
|
|
if (destinations.Length < 1) return result;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
foreach (var destination in destinations)
|
|||
|
|
{
|
|||
|
|
var sqlFuc = CommonTool.DbServe.Queryable<AppWcsTask>()
|
|||
|
|
.Where(x => x.Destination == destination || x.Origin == destination)
|
|||
|
|
.Where(x => DataService.EnumData.GetWcsTaskStatusEnumRunningStatus().Contains((int)WcsTaskStatusEnum.running));
|
|||
|
|
result.AddRange(sqlFuc.ToList());
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
_ = ex;
|
|||
|
|
return default;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|