using Admin.NET.Core.TaskModule.Enum;
|
using iWareSql.MyDbContext;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace iWareSql.DataAccess
|
{
|
public class TaskHandler
|
{
|
/// <summary>
|
/// 查找该库位是否存在 未结束的任务
|
/// </summary>
|
/// <param name="dbContext"></param>
|
/// <param name="location"></param>
|
/// <returns></returns>
|
public static wms_task IsExistNoFinishedTask(MyDbContext.MyDbContext dbContext, string location)
|
{
|
var wms_tasks = dbContext.wms_task
|
.Where(CommonFilterExpressionForNoFinishAndNoCancel())
|
.Where(x => ( x.IsDelete == false)
|
&& (x.SourcePlaceCode == location || x.ToPlaceCode == location)
|
).FirstOrDefault();
|
return wms_tasks;
|
}
|
|
/// <summary>
|
/// 获取当前未结束的任务的站点集合(包括起点和终点)
|
/// </summary>
|
/// <param name="dbContext"></param>
|
/// <returns></returns>
|
public static List<string> GetLocationListByNoFinishedTask(MyDbContext.MyDbContext dbContext)
|
{
|
List<string> locationList = new List<string>();
|
var wms_tasks = dbContext.wms_task
|
.Where(CommonFilterExpressionForNoFinishAndNoCancel())
|
.Where(x =>
|
//x.AreaType == (int)AreaTypeEnum.立体库
|
// &&
|
( x.IsDelete == false)).ToList();
|
locationList.AddRange(wms_tasks.Select(x => x.SourcePlaceCode).ToList());
|
locationList.AddRange(wms_tasks.Select(x => x.ToPlaceCode).ToList());
|
return locationList;
|
}
|
|
///// <summary>
|
///// 某巷道 是否存在 未结束,但是已下发WCS 的任务
|
///// </summary>
|
///// <param name="repository"></param>
|
///// <param name="locationCode"></param>
|
///// <returns></returns>
|
//public static wms_task IsExistNoFinishedAndHasIssueWCSTaskByLane(MyDbContext.MyDbContext dbContext, int lane)
|
//{
|
// var wms_tasks = dbContext.wms_task
|
// .Where(CommonFilterExpressionForNoFinishAndNoCancel())
|
// .Where(x =>
|
// x.State == 1
|
// && x.Lane == lane
|
// && x.AreaType == (int)AreaTypeEnum.立体库
|
// && (x.IsDeleted == null || x.IsDeleted == false)
|
// )
|
// .OrderByDescending(x => x.TaskPriority)
|
// .FirstOrDefault();
|
// return wms_tasks;
|
//}
|
|
|
|
/// <summary>
|
/// 更新任务表的任务消息
|
/// </summary>
|
/// <param name="taskId"></param>
|
/// <param name="errMsg"></param>
|
public static void UpdateTaskMsg(long taskId, string errMsg)
|
{
|
using (MyDbContext.MyDbContext dbContext = new MyDbContext.MyDbContext())
|
{
|
var singleTask = dbContext.wms_task.Where(x => x.Id == taskId).FirstOrDefault();
|
singleTask.TaskMsg = errMsg;
|
singleTask.UpdateTime = DateTime.Now;
|
|
dbContext.SaveChanges();
|
}
|
}
|
|
|
/// <summary>
|
/// 获取 任务 不是 已完成,并且不是 已取消 的任务筛选条件
|
/// </summary>
|
/// <returns></returns>
|
public static Func<wms_task, bool> CommonFilterExpressionForNoFinishAndNoCancel()
|
{
|
Func<wms_task, bool> predicate = m =>
|
(m.TaskStatus!= Convert.ToInt32(TaskStatusEnum.已完成)
|
&& m.TaskStatus != Convert.ToInt32(TaskStatusEnum.已取消)
|
)
|
;
|
return predicate;
|
}
|
|
///// <summary>
|
///// 获取 任务 不是 已完成,并且不是 已取消 的任务,并且是 未下发WCS的筛选条件
|
///// </summary>
|
///// <returns></returns>
|
//public static Func<wms_task, bool> CommonFilterExpressionForNoFinishAndNoCancelWithNoIssueWCS()
|
//{
|
// Func<wms_task, bool> predicate = m =>
|
// //任务状态 0-未下发WCS ,1-已下发WCS
|
// m.State != 1 &&
|
// (m.TaskState != Convert.ToInt32(WareTaskStateEnum.已完成)
|
// && m.TaskState != Convert.ToInt32(WareTaskStateEnum.已取消)
|
// )
|
// ;
|
// return predicate;
|
//}
|
|
///// <summary>
|
///// 获取 任务 不是 已完成,并且不是 已取消 ,并且是 已暂停的 的任务筛选条件
|
///// </summary>
|
///// <returns></returns>
|
//public static Func<wms_task, bool> CommonFilterExpressionForNoFinishAndNoCancelAndNoStop()
|
//{
|
// Func<wms_task, bool> predicate = m =>
|
// (m.TaskState != Convert.ToInt32(WareTaskStateEnum.已完成)
|
// && m.TaskState != Convert.ToInt32(WareTaskStateEnum.已取消)
|
// && m.TaskState != Convert.ToInt32(WareTaskStateEnum.已暂停)
|
// )
|
// ;
|
// return predicate;
|
//}
|
}
|
}
|