2023-01-13 15:30:20 +08:00
|
|
|
|
using Epost.Common;
|
|
|
|
|
using Epost.Model;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Epost.DAL.Cache
|
|
|
|
|
{
|
|
|
|
|
public class JobModelCacheDAL
|
|
|
|
|
{
|
|
|
|
|
private static object lockobj = new object();
|
|
|
|
|
public static List<JobModel> PlanJobList = new List<JobModel>();//计划点亮任务列表
|
|
|
|
|
public static List<JobModel> ExecuteJobList = new List<JobModel>();//作业中任务列表
|
|
|
|
|
|
|
|
|
|
#region 获取计划任务列表
|
|
|
|
|
public List<JobModel> GetPlanJobList()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
//LogHelper.WriteLogInfo("pppppppppppppppppppppp开始ppppppppppppppppppppppp" + PlanJobList.Count);
|
|
|
|
|
//if (PlanJobList != null && PlanJobList.Count > 0)
|
|
|
|
|
//{
|
|
|
|
|
// foreach (var item in PlanJobList)
|
|
|
|
|
// {
|
|
|
|
|
// LogHelper.WriteLogInfo("HHHHHHHHHH" + item.OrderID + "HHHHHHHH" + item.Address + "HHHHHHHHHHH" + item.TaskArea + "HHHHHHHHHHHH" + item.State + "HHHHHHHHHHHH" + item.Block + "HHHHHH"+item.BatchId);
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//LogHelper.WriteLogInfo("pppppppppppppppppppppp结束ppppppppppppppppppppppp" + PlanJobList.Count);
|
|
|
|
|
|
|
|
|
|
//读取数据库 处理异常断电等情况------待开发
|
|
|
|
|
return PlanJobList;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 获取作业中任务列表
|
|
|
|
|
public List<JobModel> GetExecuteJobList()
|
|
|
|
|
{
|
|
|
|
|
//List<JobListModel> jobModel = (List<JobListModel>)CacheHelper.Get("jobList");
|
|
|
|
|
|
|
|
|
|
//读取数据库 处理异常断电等情况------待开发
|
|
|
|
|
return ExecuteJobList;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 初始化任务列表
|
|
|
|
|
public void ClearJobList()
|
|
|
|
|
{
|
|
|
|
|
foreach (var planitem in PlanJobList.ToArray())
|
|
|
|
|
{
|
|
|
|
|
PlanJobList.Remove(planitem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var excItem in ExecuteJobList.ToArray())
|
|
|
|
|
{
|
|
|
|
|
ExecuteJobList.Remove(excItem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
//#region 取消订单
|
|
|
|
|
//public void CancelJob(string orderid)
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
// List<JobListModel> PlanJobDel = PlanJobList.FindAll(m => m.OrderID == orderid);
|
|
|
|
|
|
|
|
|
|
// foreach (var planitem in PlanJobDel)
|
|
|
|
|
// {
|
|
|
|
|
// PlanJobList.Remove(planitem);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// List<JobListModel> ExecuteJobDel = ExecuteJobList.FindAll(m => m.OrderID == orderid);
|
|
|
|
|
|
|
|
|
|
// foreach (var excItem in ExecuteJobDel)
|
|
|
|
|
// {
|
|
|
|
|
// ExecuteJobList.Remove(excItem);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
#region Job缓存处理方法
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Job缓存处理方法
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="JobParam"></param>
|
|
|
|
|
/// <param name="CommendType"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public bool UpdateJobModelList(List<JobModel> JobParam, EcommendType CommendType)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
lock (lockobj)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (CommendType.Equals(EcommendType.Create))
|
|
|
|
|
{
|
|
|
|
|
PlanJobList.AddRange(JobParam);
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.UpdateStartWork))
|
|
|
|
|
{
|
|
|
|
|
// PlanJobList.FirstOrDefault().State = 1;
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.UpdateOnWork))
|
|
|
|
|
{
|
|
|
|
|
// PlanJobList.FirstOrDefault().State = 2;
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.Execute))
|
|
|
|
|
{
|
|
|
|
|
JobParam.ForEach(m => PlanJobList.Remove(m));//删除计划任务
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.UpdateTaskBlock))
|
|
|
|
|
{
|
|
|
|
|
JobParam.ForEach(m => ExecuteJobList.Remove(m));
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.CompleteDetail))
|
|
|
|
|
{
|
|
|
|
|
// ExecuteJobList.ForEach(m => m.detail.Remove(JobParam.FirstOrDefault().detail[0]));//从点亮灯任务列表中删除
|
|
|
|
|
//todo 去修改orders 数据表的订单状态和明细状态
|
|
|
|
|
}
|
|
|
|
|
else if (CommendType.Equals(EcommendType.Complete))
|
|
|
|
|
{
|
|
|
|
|
//删除作业任务 已完成
|
|
|
|
|
//foreach (var planitem in PlanJobList.ToArray())
|
|
|
|
|
//{
|
|
|
|
|
// PlanJobList.Remove(planitem);
|
|
|
|
|
//}
|
2024-12-09 13:16:59 +08:00
|
|
|
|
//List<JobModel> list = PlanJobList.FindAll(p => p.Block == JobParam.FirstOrDefault().Block);
|
|
|
|
|
//foreach (JobModel item in list)
|
|
|
|
|
//{
|
|
|
|
|
// PlanJobList.Remove(item);
|
|
|
|
|
//}
|
|
|
|
|
JobParam.ForEach(m => PlanJobList.Remove(m));//删除计划任务
|
2023-01-13 15:30:20 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public enum EcommendType
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// API接受任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("API接受任务")]
|
|
|
|
|
Create,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业开始")]
|
|
|
|
|
UpdateStartWork,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业进行中")]
|
|
|
|
|
UpdateOnWork,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 点亮灯操作
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业中")]
|
|
|
|
|
Execute,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 作业完成
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业明细完成")]
|
|
|
|
|
CompleteDetail,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 作业完成
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业区域修改")]
|
|
|
|
|
UpdateTaskBlock,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 作业完成
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("作业完成")]
|
|
|
|
|
Complete
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|