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 PlanJobList = new List();//计划点亮任务列表 public static List ExecuteJobList = new List();//作业中任务列表 #region 获取计划任务列表 public List 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 GetExecuteJobList() { //List jobModel = (List)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 PlanJobDel = PlanJobList.FindAll(m => m.OrderID == orderid); // foreach (var planitem in PlanJobDel) // { // PlanJobList.Remove(planitem); // } // List ExecuteJobDel = ExecuteJobList.FindAll(m => m.OrderID == orderid); // foreach (var excItem in ExecuteJobDel) // { // ExecuteJobList.Remove(excItem); // } //} //#endregion #region Job缓存处理方法 /// /// Job缓存处理方法 /// /// /// /// public bool UpdateJobModelList(List 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); //} //List list = PlanJobList.FindAll(p => p.Block == JobParam.FirstOrDefault().Block); //foreach (JobModel item in list) //{ // PlanJobList.Remove(item); //} JobParam.ForEach(m => PlanJobList.Remove(m));//删除计划任务 } return true; } } #endregion } public enum EcommendType { /// /// API接受任务 /// [Description("API接受任务")] Create, /// /// 修改状态 /// [Description("作业开始")] UpdateStartWork, /// /// 修改状态 /// [Description("作业进行中")] UpdateOnWork, /// /// 点亮灯操作 /// [Description("作业中")] Execute, /// /// 作业完成 /// [Description("作业明细完成")] CompleteDetail, /// /// 作业完成 /// [Description("作业区域修改")] UpdateTaskBlock, /// /// 作业完成 /// [Description("作业完成")] Complete } }