using iWareCC.Common.Helper; using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql; using iWareSql.DataAccess; using iWareSql.DBModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using XiGang.Core.Model; namespace iWareCC { /// /// 1014库位转运到1020线程 /// public static class Place1014To1020Task { public static void Handler() { while (true) { // SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = ""; Thread.Sleep(2000);//休眠2秒 try { if (SystemValue.isAllowRuning_Place1014To1020Task && SystemValue.isStartedModel) { if (FormCC.RGV_1020_NoHasCategory_COUNT <= 25) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,25秒内光电显示有货,无须处理转运到1020任务"; continue; } using (DbModel context = new DbModel()) { EDevice rgvLocation = EDevice.拆盘机入口1014; var stationCode = Convert.ToInt32(rgvLocation).ToString(); var isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattionFor2(stationCode); V_AllStore store = null; var isSys_HasCatogryForRgvStattion = MyExtendHelper.IsSys_HasCatogryForRgvStattion(context, stationCode, ref store); var isExistOtherTaskDoing = PartTaskHandler.IsExistOtherTaskDoing(stationCode); var isExistOtherTaskDoingForDeviceTaskTypeEnum_立库空托到拆盘机入口 = PartTaskHandler.IsExistOtherTaskDoingForDeviceTaskTypeEnum(DeviceTaskTypeEnum.立库空托到拆盘机入口); var isExistOtherTaskDoingForDeviceTaskTypeEnum_空托转运到拆盘机入口 = PartTaskHandler.IsExistOtherTaskDoingForDeviceTaskTypeEnum(DeviceTaskTypeEnum.空托转运到拆盘机入口); if (isGD_HasCatogryForRgvStattion == false) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,光电显示无货,无须处理转运到1020任务"; continue; } else if (isSys_HasCatogryForRgvStattion == false) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示无货,无须处理转运到1020任务"; continue; } else if (isExistOtherTaskDoing == true) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有其他任务占用,无须处理转运到1020任务"; continue; } else if (isExistOtherTaskDoingForDeviceTaskTypeEnum_立库空托到拆盘机入口 == true) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有立库空托到拆盘机入口任务占用,无须处理转运到1020任务"; continue; } else if (isExistOtherTaskDoingForDeviceTaskTypeEnum_空托转运到拆盘机入口 == true) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有空托转运到拆盘机入口任务占用,无须处理转运到1020任务"; continue; } //判断1020 EDevice rgvLocation_1020 = EDevice.拆盘机1020; isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattion(((int)rgvLocation_1020).ToString()); if (isGD_HasCatogryForRgvStattion == true) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,光电显示有货,无须处理转运到1020任务"; continue; } ////等待30秒,确定拆盘机无货才可以创建任务,因为拆盘机在拆盘的时候,光电可能有一瞬间是 无货的状态 [EditBy shaocx,2022-04-29] //Thread.Sleep(30 * 1000); //rgvLocation_1020 = EDevice.拆盘机1020; //isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattion(((int)rgvLocation_1020).ToString()); //if (isGD_HasCatogryForRgvStattion == true) //{ // SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,光电显示有货,无须处理转运到1020任务"; // continue; //} #region 处理 var fr = MyExtendHelper.DoHandler(context, store, EDevice.拆盘机1020); if (fr.result == false) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "错误:拆盘机入口1014处新建从 1014库位转运到1020线程 任务失败:" + fr.resMsg; } else { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "成功创建拆盘机入口1014处新建 1014库位转运到1020 任务"; } #endregion continue; } } } catch (Exception ex) { SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014库位转运到1020线程出现异常:" + ex.Message; Log4NetHelper.WriteErrorLog(LogType.CCWCFService, "Place1014To1020Task 出现异常:" + ex.Message, ex); } } } } }