//using iWareCommon.Utils;
//using iWareModel.Entity.MES;
//using iWareSql.MyDbContext;
//using Newtonsoft.Json;
//using System;
//using System.Collections.Generic;
//using System.Threading;
//using System.Linq;
//using Admin.NET.Core.TaskModule.Enum;
//using System.Configuration;
//using iWareModel.Entity.WCS;
//using iWareCC.Common.Helper;
//using Newtonsoft.Json.Bson;
//using System.Data.Entity;
//using System.Web;
//using iWareModel.Entity.WMS;
//using iWareCommon;
//using System.Threading.Tasks;
//using static System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar;
//using System.Windows.Forms;
//using iWareSql.DataAccess;
//namespace iWareCC
//{
// ///
// /// 3巷道下发任务处理的线程
// ///
// public class IssueTask3Handler
// {
// public static void Handler()
// {
// var errMsg = "";
// while (true)
// {
// try
// {
// //SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "循环开始...";
// if (SystemValue.isAllowRuning_OutTaskIssueTaskHandler3 && SystemValue.isStartedModel)
// {
// errMsg = "";//重置
// try
// {
// #region 查询堆垛机是否空闲
// //var utl = string.Format(WcsIp + @"GetDevicesInfo?Timestamp={0}&Creator={1}", DateTime.Now.ToString(), "cc");
// //var result1 = HttpHelper.Post(utl, "");
// WCSDevicesOutput data1 = null;
// if (FormCC.IsSimulationPLC)
// {//如果是模拟
// data1 = MyExtendHelper.GetSimulationSrmDevicesOutput();
// Log4NetHelper.WriteInfoLog(LogType.IssueTask3, "出库处理的线程(OutPlanTaskHandler)查询堆垛机是否空闲,模拟环境");
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "堆垛机状态查询模拟";
// }
// else
// {
// var utl = string.Format(@"GetDevicesInfo?Timestamp={0}&Creator={1}", DateTime.Now.ToString(), "cc");
// IDictionary parameter = new Dictionary();
// var result1 = new HTTPService(FormCC.WcsIp).postContentForString(utl, parameter, "");
// Log4NetHelper.WriteInfoLog(LogType.IssueTask3, "出库处理的线程(OutPlanTaskHandler)查询堆垛机是否空闲,返回结果:" + result1);
// if (result1 == null)
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "堆垛机状态查询失败,WCS返回NULL";
// continue;//继续下一次循环
// }
// data1 = JsonConvert.DeserializeObject(result1);
// if (data1 == null || !data1.Success || data1.Data == null)
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "堆垛机状态查询失败,WCS返回结果:" + result1;
// continue;//继续下一次循环
// }
// }
// if (data1.Data != null && data1.Data.SRM3 != null && data1.Data.SRM3.isfree == "1")
// {
// using (MyDbContext mycontext3 = new MyDbContext())
// {
// int Lane = int.Parse(data1.Data.SRM3.SrmNo);
// //如果有 ,就不下发出库任务了 【Editby shaocx,2023-03-07】
// var wareTask = TaskHandler.IsExistNoFinishedAndHasIssueWCSTaskByLane(mycontext3, 3);
// if (wareTask != null)
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = $"|| 3巷道下发出库任务失败,因为存在未结束,但是已下发WCS的任务!任务号:{wareTask.TaskNo},起点:{wareTask.FromLocationCode},目标点:{wareTask.ToLocationCode}";
// continue;//继续下一次循环
// }
// var ware_Tasks = mycontext3.ware_task.Where(x => (x.IsDeleted == null || x.IsDeleted == false) && x.State == 0 && x.AreaType == (int)AreaTypeEnum.立体库 && x.TaskCategory == 2 && x.Lane == Lane)
// .Where(TaskHandler.CommonFilterExpressionForNoFinishAndNoCancel())
// .OrderByDescending(x => x.TaskPriority).ToList();//查询未WCS下发未完成的任务
// if (ware_Tasks != null && ware_Tasks.Count > 0)
// {
// IssueTaskHelper.Out(mycontext3, FormCC.WcsIp, Lane, ware_Tasks, ref errMsg);
// if (!string.IsNullOrEmpty(errMsg))
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "|| 3巷道下发出库任务失败," + errMsg;
// }
// }
// }
// }
// else
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "|| 3号巷道无任务或者3号堆垛机不是空闲状态!";
// }
// #endregion
// // SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "循环结束...";
// }
// catch (Exception ex)
// {
// Log4NetHelper.WriteErrorLog(LogType.IssueTask3, "处理出入库下发=>" + errMsg + ",异常:" + ex.Message, ex);
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "处理出入库下发=>" + errMsg + ",异常:" + ex.Message;
// }
// }
// }
// catch (Exception ex)
// {
// SystemWarningMsg._lbl_Alert_OutPlanTaskHandler3 = "出现异常:" + ex.Message;
// Log4NetHelper.WriteErrorLog(LogType.IssueTask3, "OutPlanTaskHandler 出库任务 出现异常:" + ex.Message, ex);
// }
// Thread.Sleep(3 * 1000);//休眠3秒
// }
// }
// }
//}