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
|
{
|
/// <summary>
|
/// 1014库位转运到1020线程
|
/// </summary>
|
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);
|
}
|
}
|
}
|
}
|
}
|