SCLS/SSWCS_JXDL(2019)/ControlSystem/CDisassembleTask.cs

4940 lines
273 KiB
C#
Raw Permalink Normal View History

2025-05-19 09:45:29 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DBFactory;
using CommonClassLib;
using Microsoft.VisualBasic;
using System.Threading;
namespace ControlSystem
{
/// <summary>
/// Creator:Richard.liu
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// ѡȡ<D1A1><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊԭ<CEAA><D4AD><EFBFBD><EFBFBD>1<EFBFBD><31>ÿ<EFBFBD><C3BF>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ̨Ҫ<CCA8><D2AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 2<><32>ÿ<EFBFBD><C3BF><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>Ҫ<EFBFBD><D2AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣩣<EFBFBD>
/// 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ʽʱ<CABD><CAB1><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߼<EFBFBD>9<EFBFBD><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>С<EFBFBD>
///
/// <20>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20>ֽ<EFBFBD>ԭ<EFBFBD>򣺰<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ָ<E8B1B8><D6B8>
/// </summary>
//20091107<30><37><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>SelectTask_ManPRI();SelectTask_OnlyIn();SelectTask_InSubjoinOut();
//SelectTask_OnlyOut();SelectTask_OutSubjoinIn();<3B><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>order by FTASKLEVEL desc,FBEGTIME asc
public static class CDisassembleTask
{
static Thread mythread;
static bool exitThread = false;//20091107
private static void BeginListen()
{//20091107
while (!exitThread )
{
try
{
MyTaskIntoSteps();
}
catch (Exception ex)
{
_DisassembleTaskError = ex.Message;
}
}
}
public static void EndListen()
{//20091107
exitThread = true;
if (mythread != null)
{
dbo.Close();
mythread.Abort();
mythread = null;
}
}
public static void StartListen()
{
exitThread = false;
mythread = new Thread(new ThreadStart(BeginListen));
mythread.IsBackground = true;
mythread.Start();
}
static string _DisassembleTaskError="";
public static string DisassembleTaskError
{
get { return _DisassembleTaskError; }
set { _DisassembleTaskError = value; }
}
static DBOperator dbo = new DBOperator() ;
static DBOperator dboM = new DBOperator("ManConnString", "ManDBFactory");
static CCommonFunction ccf = new CCommonFunction();
static Model.MDevice devinfo;
/// <summary>
/// <20><><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task<73><6B><EFBFBD><EFBFBD>
/// </summary>
public static void MyTaskIntoSteps()
{
try
{
int Pri = ccf.SelectTaskPriPrecept();
switch (Pri)
{
case 0://<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
SelectTask_ManPRI();
break;
case 1://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectTask_OnlyIn();
break;
case 12://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Я<EFBFBD><D0AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectTask_InSubjoinOut();
break;
case 2://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectTask_OnlyOut();
break;
case 21://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Я<EFBFBD><D0AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectTask_OutSubjoinIn();
break;
default:
break;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.MyTaskIntoStepsʱ<73><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
static void SelectTask_ManPRI()
{
try
{
string sql = "select * from T_Manage_Task where " +
" FIntoStepOK='0' order by FTASKLEVEL desc,F_ManageTaskKindIndex asc,FBEGTIME asc, FID asc ";
DataView dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
DataView dv = new DataView();//20091107
DataView dv1 = new DataView();//20091107
Model.MDevice deviceInfo;
for (int i = 0; i < dvM.Count; i++)
{
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "1")
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
//sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
// " where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"] + " and F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_Status>=1";
//dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
//if (dv.Count > 0)
//{
// continue;
//}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_LockedState>0";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;//20091107
if (dv1.Count > 0)
{
continue;
}
}
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "2")
//<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж϶Ѷ<CFB6><D1B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
" where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"] +
" and F_DeviceIndex=" + dvM[i]["FSTACK"] + " and F_Status>0 ";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
continue;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20091009
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTACK"] + " and (F_LockedState>0 or F_ManTaskReserve>0)";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;//20091107
if (dv1.Count > 0)
{
continue;
}
//20091128
//<2F>жϽ<D0B6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2>ֵĶ<D6B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>о<EFBFBD><D0BE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dvM[i]["FENDDEVICE"] + ") and (FSTACK = " +
dvM[i]["FSTACK"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32( dvM[i]["FSTACK"])) ;
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dvM[i]);
}
}
}
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int routeid = MinRouteID(Convert.ToInt32(dvM[i]["FSTARTDEVICE"]), Convert.ToInt32(dvM[i]["FENDDEVICE"]));
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dvM[i]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32( dvM[i]["F_ManageTaskKindIndex"]),Convert.ToInt32( dvM[i]["FID"]), routeid,dvM[i],0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvM[i]["FID"]
+ " and F_ManageTaskKindIndex=" + dvM[i]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32( dvM[i]["FSTACK"])) ;
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]));
}
}
}
}
//20091107
dvM = null;
dv = null;
dv1 = null;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.SelectTask_ManPRIʱ<49><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ٲ<EFBFBD><D9B2>ֳ<EFBFBD><D6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
static void SelectTask_OnlyIn()
{
try
{
Model.MDevice deviceInfo;
string sql = "select * from T_Manage_Task where " +
" FIntoStepOK='0' order by FCONTROLTASKTYPE asc, F_ManageTaskKindIndex asc,FBEGTIME asc, FID asc ";
DataView dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
for (int i = 0; i < dvM.Count; i++)
{
DataView dv;
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "1")
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
//sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
// " where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"] + " and F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_Status>0";
//dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
//if (dv.Count > 0)
//{
// continue;
//}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_LockedState>0";
DataView dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
}
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "2")
//<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж϶Ѷ<CFB6><D1B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
" where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"] +
" and F_DeviceIndex=" + dvM[i]["FSTACK"] + " and F_Status>0";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
continue;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20091009
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTACK"] + " and (F_LockedState>0 or F_ManTaskReserve>0)";
DataView dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
////20091128
//<2F>жϽ<D0B6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2>ֵĶ<D6B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>о<EFBFBD><D0BE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dvM[i]["FENDDEVICE"] + ") and (FSTACK = " +
dvM[i]["FSTACK"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dvM[i]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dvM[i]);
}
}
}
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int routeid = MinRouteID(Convert.ToInt32(dvM[i]["FSTARTDEVICE"]), Convert.ToInt32(dvM[i]["FENDDEVICE"]));
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dvM[i]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]), routeid, dvM[i],0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvM[i]["FID"]
+ " and F_ManageTaskKindIndex=" + dvM[i]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32( dvM[i]["FSTACK"])) ;
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]));
}
}
}
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.SelectTask_OnlyInʱ<6E><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD><D6A3>ж<EFBFBD>T_Manage_Task<73><6B><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ѡһ<D1A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD><EFBFBD>жѶ<D0B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><F1A3ACB2>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>еȴ<D0B5>ִ<EFBFBD>еĶѶ<C4B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡһ<D1A1><D2BB><EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Ϊ9<CEAA><39>
///
/// </summary>
static void SelectTask_InSubjoinOut()
{
try
{
string sql = "SELECT F_StackIndex FROM T_Base_StackInfo";
DataView dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
DataView dv = new DataView();//20091107
DataView dv12 = new DataView();
DataView dvv = new DataView();
DataView dv0 = new DataView();
DataView dv1 = new DataView();
DataView dv00 = new DataView();
Model.MDevice deviceInfo;
int routeid = -1;
for (int i = 0; i < dvM.Count; i++)
{
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ǹ<EFBFBD><C7B8><EFBFBD>ִ<EFBFBD><D6B4>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>˶Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>
string sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTATUS = 0) AND (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 1) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;//20091107
for (int j = 0; j < dv.Count;j++ )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]), dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j],0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
#endregion
#region Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT T_Monitor_Task.F_MonitorIndex FROM T_Monitor_Task ,T_Manage_Task WHERE "+
" (T_Monitor_Task.F_ManageTaskIndex = T_Manage_Task.FID AND "+
" T_Monitor_Task.F_ManageTASKKINDINDEX = T_Manage_Task.F_ManageTaskKindIndex)"+
" And (T_Monitor_Task.F_Status = 1 OR T_Monitor_Task.F_Status = 2) AND F_DeviceCommandIndex=5 and " +
"(T_Monitor_Task.F_DeviceIndex = " + dvM[i]["F_StackIndex"] + ") AND (T_Manage_Task.FCONTROLTASKTYPE = 1)";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>Я<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//20091013
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] +
") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count <= 0)//û<>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD>
{
#region <EFBFBD><EFBFBD>ѡ<EFBFBD>˶Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><>ѡ<EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
routeid = MinRouteID(Convert.ToInt32(dv[0]["FSTARTDEVICE"]), Convert.ToInt32(dv[0]["FENDDEVICE"]), dv[0]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[0]);
}
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[0]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[0]);
}
}
if (CreateMonitor(Convert.ToInt32(dv[0]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[0]["FID"]), routeid, dv[0], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
int level = Convert.ToInt32(dv[0]["FTASKLEVEL"]) == 100 ? 100 : 9;
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1',FTASKLEVEL=" + level + " where FID=" + dv[0]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[0]["F_ManageTaskKindIndex"]);
dbo.ExceSQL("update dbo.T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dv[0]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dv[0]["FID"] + "");
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[0]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[0]["FID"]));
}
}
}
}
#endregion
}
else
{//20091014
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] +
") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><>ѡ<EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//20091102
for (int j = 0; j < dv.Count; j++)
{
//<2F>жϽ<D0B6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2>ֵĶ<D6B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>о<EFBFBD><D0BE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dv[j]["FENDDEVICE"] + ") and (FSTACK = " +
dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc";
dv12 = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;//20091107
if (dv12.Count <= 0)
{
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]), dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[j]);
}
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
int level = Convert.ToInt32(dv[j]["FTASKLEVEL"]) == 100 ? 100 : 9;
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1',FTASKLEVEL=" + level + " where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
dbo.ExceSQL("update T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dv[j]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dv[j]["FID"] + "");
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
}
}
else
{
//20091107
dvv = dbo.ExceSQL("select * from T_Manage_Task WHERE (FSTACK = " +
dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0)").Tables[0].DefaultView;
for (int aa = 0; aa < dvv.Count; aa++)
{
dbo.ExceSQL("update T_Manage_Task set FTASKLEVEL=9 WHERE (FTASKLEVEL<>100) and F_ManageTASKKINDINDEX=" +
dvv[aa]["F_ManageTaskKindIndex"] + " and FID=" + dvv[aa]["FID"] + "");
dbo.ExceSQL("update T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dvv[aa]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dvv[aa]["FID"] + "");
}
}
}
#endregion
}
else//û<>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
#region û<EFBFBD>д˶Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FIntoStepOK = '0') order by FTASKLEVEL desc, FCONTROLTASKTYPE asc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
//20091102
for(int j=0;j<dv.Count;j++)
//if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡһ<D1A1><D2BB><EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if (dv[j]["FCONTROLTASKTYPE"].ToString() == "2")
//<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж϶Ѷ<CFB6><D1B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{//20091014
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE="+dv[j]["FENDDEVICE"]+") and (FSTACK = " +
dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc";
dv00 = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;//20091107
if (dv00.Count > 0)//<2F>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ŶӾͲ<D3BE><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
continue;
}
sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
" where F_DeviceIndex=" + dv[j]["FSTACK"] + " and F_Status>0 ";
dv0 = dbo.ExceSQL(sql).Tables[0].DefaultView;//20091107
if (dv0.Count > 0)
{
continue;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20091009
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dv[j]["FSTACK"] + " and (F_LockedState>0 or F_ManTaskReserve>0)";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;//220091007
if (dv1.Count > 0)
{
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[j]);
}
}
}
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]), dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
#endregion
}
#endregion
}
sql = "SELECT * FROM T_Manage_Task WHERE ((FSTACK <= 0)or(FCONTROLTASKTYPE = 3)) AND (FIntoStepOK = '0') order by FTASKLEVEL desc, FCONTROLTASKTYPE asc,FBEGTIME asc";
dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
for (int i = 0; i < dvM.Count; i++)//<2F><>ѡû<D1A1>жѶ<D0B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
routeid = MinRouteID(Convert.ToInt32(dvM[i]["FSTARTDEVICE"]), Convert.ToInt32(dvM[i]["FENDDEVICE"]), dvM[i]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dvM[i]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]), routeid, dvM[i], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvM[i]["FID"]
+ " and F_ManageTaskKindIndex=" + dvM[i]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dvM[i]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]));
}
}
}
}
//20091107
dvM=null;
dv = null;
dv12 = null;
dvv = null;
dv0 = null;
dv1 = null;
dv00 = null;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.SelectTask_InSubjoinOutʱ<74><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
static void SelectTask_OnlyOut()
{
try
{
string sql = "select * from T_Manage_Task where " +
" FIntoStepOK='0' order by FCONTROLTASKTYPE decs, F_ManageTaskKindIndex asc,FBEGTIME asc, FID asc ";
DataView dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
Model.MDevice deviceInfo;
for (int i = 0; i < dvM.Count; i++)
{
DataView dv;
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "1")
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
//sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
// " where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"] + " and F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_Status>0";
//dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
//if (dv.Count > 0)
//{
// continue;
//}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTARTDEVICE"] + " and F_LockedState>0";
DataView dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
}
if (dvM[i]["FCONTROLTASKTYPE"].ToString() == "2")
//<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж϶Ѷ<CFB6><D1B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
{
sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
" where F_ManageTASKKINDINDEX=" + dvM[i]["F_ManageTASKKINDINDEX"]
+ " and F_DeviceIndex=" + dvM[i]["FSTACK"] + " and F_Status>0 ";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
continue;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20091009
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["FSTACK"] + " and (F_LockedState>0 or F_ManTaskReserve>0)";
DataView dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
//20091128
//<2F>жϽ<D0B6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2>ֵĶ<D6B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>о<EFBFBD><D0BE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dvM[i]["FENDDEVICE"] + ") and (FSTACK = " +
dvM[i]["FSTACK"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dvM[i]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dvM[i]);
}
}
}
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int routeid = MinRouteID(Convert.ToInt32(dvM[i]["FSTARTDEVICE"]), Convert.ToInt32(dvM[i]["FENDDEVICE"]));
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dvM[i]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]), routeid, dvM[i], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvM[i]["FID"]
+ " and F_ManageTaskKindIndex=" + dvM[i]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dvM[i]["FSTACK"]));
if (deviceInfo.IfCorrelDoubleFork== "1")
{
CreateRelativeMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]));
}
}
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.SelectTask_OnlyOutʱ<74><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ѡһ<D1A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9
/// </summary>
static void SelectTask_OutSubjoinIn()
{
try
{
Model.MDevice deviceInfo;
string sql = "SELECT F_StackIndex FROM T_Base_StackInfo";
DataView dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
int routeid = -1;
for (int i = 0; i < dvM.Count; i++)
{//20090928
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>˶Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>
string sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTATUS = 0) AND (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 1) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
DataView dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
for ( int j = 0; j < dv.Count; j++)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]),dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
#endregion
//20091005
#region Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT T_Monitor_Task.F_MonitorIndex FROM T_Monitor_Task ,T_Manage_Task WHERE " +
" (T_Monitor_Task.F_ManageTaskIndex = T_Manage_Task.FID AND " +
" T_Monitor_Task.F_ManageTASKKINDINDEX = T_Manage_Task.F_ManageTaskKindIndex)" +
" And (T_Monitor_Task.F_Status = 1 OR T_Monitor_Task.F_Status = 2) AND F_DeviceCommandIndex=5 and " +
"(T_Monitor_Task.F_DeviceIndex = " + dvM[i]["F_StackIndex"] + ") AND (T_Manage_Task.FCONTROLTASKTYPE = 1)";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>
//20091013
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count <= 0)//û<>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷӻ<C5B6><D3BB><EFBFBD>ִ<EFBFBD><D6B4>
{
#region <EFBFBD><EFBFBD>ѡ<EFBFBD>˶Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><>ѡ<EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
routeid = MinRouteID(Convert.ToInt32(dv[0]["FSTARTDEVICE"]), Convert.ToInt32(dv[0]["FENDDEVICE"]), dv[0]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[0]);
}
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[0]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[0]);
}
}
if (CreateMonitor(Convert.ToInt32(dv[0]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[0]["FID"]), routeid, dv[0], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dv[0]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[0]["F_ManageTaskKindIndex"]);
dbo.ExceSQL("update dbo.T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dv[0]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dv[0]["FID"] + "");
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[0]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[0]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[0]["FID"]));
}
}
}
}
#endregion
}
else
{//20091014
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTACK = " + dvM[i]["F_StackIndex"] +
") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)//<2F><>ѡ<EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//20091102
for (int j = 0; j < dv.Count; j++)
{
//<2F>жϽ<D0B6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ֵij<D6B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2>ֵĶ<D6B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>о<EFBFBD><D0BE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dv[j]["FENDDEVICE"] + ") and (FSTACK = " +
dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc,FBEGTIME asc";
DataView dv12 = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv12.Count <= 0)
{
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]), dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[j]);
}
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
int level = Convert.ToInt32(dv[j]["FTASKLEVEL"]) == 100 ? 100 : 9;
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1',FTASKLEVEL=" + level + " where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
dbo.ExceSQL("update T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dv[j]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dv[j]["FID"] + "");
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
}
}
else
{
DataView dvv = dbo.ExceSQL("select * from T_Manage_Task WHERE (FSTACK = " +
dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0)").Tables[0].DefaultView;
for (int aa = 0; aa < dvv.Count; aa++)
{
dbo.ExceSQL("update T_Manage_Task set FTASKLEVEL=9 WHERE (FTASKLEVEL<>100) and F_ManageTASKKINDINDEX=" +
dvv[aa]["F_ManageTaskKindIndex"] + " and FID=" + dvv[aa]["FID"] + "");
dbo.ExceSQL("update T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=" +
dvv[aa]["F_ManageTaskKindIndex"] + " and F_ManageTaskIndex=" + dvv[aa]["FID"] + "");
}
}
}
#endregion
}
#endregion
//20091005
else
{
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>˶Ѷ<CBB6><D1B6><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>˶Ѷ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//20091014
sqlstr = "SELECT * FROM T_Manage_Task WHERE (FSTATUS = 0) AND (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '0') order by FTASKLEVEL desc,FBEGTIME asc";
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
//20091102
for(int j=0;j<dv.Count;j++)
//if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
{//20091014
sqlstr = "SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FENDDEVICE=" + dv[j]["FENDDEVICE"] +
") and (FSTACK = " + dvM[i]["F_StackIndex"] + ") AND (FCONTROLTASKTYPE = 2) AND (FIntoStepOK = '1') AND (FStatus = 0) order by FTASKLEVEL desc";
DataView dv112 = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv112.Count > 0)//<2F>д˶Ѷ<CBB6><D1B6><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ŶӾͲ<D3BE><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
continue;
}
//<2F>ж϶Ѷ<CFB6><D1B6><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>л<EFBFBD><D0BB>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>
//20090928
sql = "SELECT F_ManageTASKKINDINDEX, F_DeviceIndex, F_Status FROM T_Monitor_Task" +
" where F_DeviceIndex=" + dvM[i]["F_StackIndex"] + " and F_Status>0 ";
DataView dv0 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv0.Count > 0)
{
continue;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20091009
sql = "SELECT F_DeviceIndex, F_LockedState FROM T_Base_Device where F_DeviceIndex=" + dvM[i]["F_StackIndex"] + " and (F_LockedState>0 or F_ManTaskReserve>0)";
DataView dv1 = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv1.Count > 0)
{
continue;
}
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
routeid = MinRouteID(Convert.ToInt32(dv[j]["FSTARTDEVICE"]), Convert.ToInt32(dv[j]["FENDDEVICE"]), dv[j]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dv[j]);
}
continue;
}
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dv[j]["FSTACK"]));
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
GetOutDoubleForkTask(dv[j]);
}
}
if (CreateMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]), routeid, dv[j], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dv[j]["FID"]
+ " and F_ManageTaskKindIndex=" + dv[j]["F_ManageTaskKindIndex"]);
//20100323
//20101028<32><38><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (deviceInfo != null)
{
if (deviceInfo.IfCorrelDoubleFork == "1")
{
CreateRelativeMonitor(Convert.ToInt32(dv[j]["F_ManageTaskKindIndex"]), Convert.ToInt32(dv[j]["FID"]));
}
}
}
}
#endregion
}
}
//add 20131219 16003<30><33><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣨿<EFBFBD><F1A3A8BF><EFBFBD>Ⱥ<EFBFBD><C8BA>16003<30><33><EFBFBD><EFBFBD><E9B6AF><EFBFBD><EFBFBD>
sql = "SELECT * FROM T_Manage_Task WHERE ((FSTACK <= 0)or(FCONTROLTASKTYPE = 3)) AND (FIntoStepOK = '0') and (FSTARTDEVICE <>16003) order by FTASKLEVEL desc, FCONTROLTASKTYPE asc,FBEGTIME asc";
dvM = dbo.ExceSQL(sql).Tables[0].DefaultView;
for (int i = 0; i < dvM.Count; i++)//<2F><>ѡû<D1A1>жѶ<D0B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
routeid = MinRouteID(Convert.ToInt32(dvM[i]["FSTARTDEVICE"]), Convert.ToInt32(dvM[i]["FENDDEVICE"]), dvM[i]["FUseAwayFork"]);
if (routeid == -1)
{
if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
{//20091107
GetUsableDestination(dvM[i]);
}
continue;
}
if (CreateMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]), routeid, dvM[i], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvM[i]["FID"]
+ " and F_ManageTaskKindIndex=" + dvM[i]["F_ManageTaskKindIndex"]);
//20100323
CreateRelativeMonitor(Convert.ToInt32(dvM[i]["F_ManageTaskKindIndex"]), Convert.ToInt32(dvM[i]["FID"]));
}
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.SelectTask_OutSubjoinInʱ<6E><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
}
}
/// <summary>
/// <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>RouteIDSub
/// </summary>
/// <param name="startdevice"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="enddevice"><3E>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int MinRouteID(int startdevice,int enddevice)
{
try
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string sql = "SELECT distinct(T_Base_Route_Device.F_RouteIDSub) FROM T_Base_Device,T_Base_Route_Device," +
"T_Base_Route where T_Base_Route_Device.F_RouteID = T_Base_Route.F_RouteID and " +
" T_Base_Route_Device.F_DeviceIndex = T_Base_Device.F_DeviceIndex and " +
" F_StartDevice=" + startdevice + " and F_EndDevice=" + enddevice + " and F_Status=1";
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
List<double> minroute=new List<double>() ;//0,routIDSub<75><62>1<EFBFBD><31>·<EFBFBD><C2B7><EFBFBD><EFBFBD>Сֵ
if (dv.Count == 0)
{
return -1;
}
for (int i = 0; i < dv.Count; i++)
{
DataView dvd = dbo.ExceSQL("SELECT F_RouteIDSub, F_LockedState FROM T_Base_Device,T_Base_Route_Device WHERE "+
" T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and (T_Base_Route_Device.F_RouteIDSub = " +
dv[i]["F_RouteIDSub"] + ") AND (T_Base_Device.F_LockedState = - 1)").Tables[0].DefaultView;
if (dvd.Count > 0)
{
continue;
}
List<double> route = new List<double>();//0,routIDSub<75><62>1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>·<EFBFBD><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>3<EFBFBD><33>·<EFBFBD><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>Ȩ<EFBFBD><C8A8>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD>
route.Add(Convert.ToDouble(dv[i]["F_RouteIDSub"]));//RouteIDSub
DataView dv1 = dbo.ExceSQL("select count(F_DeviceIndex) as steps from T_Base_Route_Device where F_RouteIDSub="
+ dv[i]["F_RouteIDSub"] + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
//route.Add(Convert.ToDouble(dv1[0]["steps"]));//<2F><><EFBFBD><EFBFBD>
route.Add(0);
}
else
{
continue;
}
//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>·<EFBFBD><C2B7>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string runsql = "SELECT COUNT(DISTINCT F_ManageTaskIndex) AS ManCount FROM T_Monitor_Task GROUP BY F_RouteID HAVING (F_RouteID = " + dv[i]["F_RouteIDSub"]+")";
DataView dv2 = dbo.ExceSQL(runsql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["ManCount"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["ManCount"]));//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string monisql = "SELECT COUNT(T_Monitor_Task.F_MonitorIndex) AS mtask FROM T_Monitor_Task ,T_Base_Route_Device where (T_Monitor_Task.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex) and (T_Base_Route_Device.F_RouteIDSub = " + dv[i]["F_RouteIDSub"] + ")";
dv2 = dbo.ExceSQL(monisql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["mtask"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["mtask"]));//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*0.3+·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>*0.3+<2B>ռ<E8B1B8><D5BC><EFBFBD><EFBFBD>*0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD>
if (minroute.Count == 0)
{
minroute.Add(route[0]);
minroute.Add(route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
else
{
if (minroute[1] > (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3))
{
minroute[0] = route[0];
minroute[1] = (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
}
}
if (minroute.Count > 0)
{
return Convert.ToInt32(minroute[0]);
}
else
{
return -1;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.MinRouteIDʱ<44><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
return -1;
}
}
/// <summary>
/// 20091005
/// <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>RouteIDSub
/// </summary>
/// <param name="startdevice"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="enddevice"><3E>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// /// <param name="enddevice"><3E><>ǰ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int MinRouteID(int startdevice, int enddevice,int nowdevice)
{
try
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string sql = "SELECT distinct(T_Base_Route_Device.F_RouteIDSub) FROM T_Base_Device,T_Base_Route_Device," +
"T_Base_Route where T_Base_Route_Device.F_RouteID = T_Base_Route.F_RouteID and " +
" T_Base_Route_Device.F_DeviceIndex = T_Base_Device.F_DeviceIndex and " +
" F_StartDevice=" + startdevice + " and F_EndDevice=" + enddevice + " and F_Status=1 and T_Base_Device.F_DeviceIndex ="+ nowdevice +"";
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
List<double> minroute = new List<double>();//0,routIDSub<75><62>1<EFBFBD><31>·<EFBFBD><C2B7><EFBFBD><EFBFBD>Сֵ
if (dv.Count == 0)
{
return -1;
}
for (int i = 0; i < dv.Count; i++)
{
DataView dvd = dbo.ExceSQL("SELECT F_RouteIDSub, F_LockedState FROM T_Base_Device,T_Base_Route_Device WHERE " +
" T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and (T_Base_Route_Device.F_RouteIDSub = " +
dv[i]["F_RouteIDSub"] + ") AND (T_Base_Device.F_LockedState = - 1)").Tables[0].DefaultView;
if (dvd.Count > 0)
{
continue;
}
List<double> route = new List<double>();//0,routIDSub<75><62>1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>·<EFBFBD><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>3<EFBFBD><33>·<EFBFBD><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>Ȩ<EFBFBD><C8A8>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD>
route.Add(Convert.ToDouble(dv[i]["F_RouteIDSub"]));//RouteIDSub
DataView dv1 = dbo.ExceSQL("select count(F_DeviceIndex) as steps from T_Base_Route_Device where F_RouteIDSub="
+ dv[i]["F_RouteIDSub"] + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
//route.Add(Convert.ToDouble(dv1[0]["steps"]));//<2F><><EFBFBD><EFBFBD>
route.Add(0);
}
else
{
continue;
}
//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>·<EFBFBD><C2B7>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string runsql = "SELECT COUNT(DISTINCT F_ManageTaskIndex) AS ManCount FROM T_Monitor_Task GROUP BY F_RouteID HAVING (F_RouteID = " + dv[i]["F_RouteIDSub"] + ")";
DataView dv2 = dbo.ExceSQL(runsql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["ManCount"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["ManCount"]));//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string monisql = "SELECT COUNT(T_Monitor_Task.F_MonitorIndex) AS mtask FROM T_Monitor_Task ,T_Base_Route_Device where (T_Monitor_Task.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex) and (T_Base_Route_Device.F_RouteIDSub = " + dv[i]["F_RouteIDSub"] + ")";
dv2 = dbo.ExceSQL(monisql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["mtask"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["mtask"]));//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*0.3+·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>*0.3+<2B>ռ<E8B1B8><D5BC><EFBFBD><EFBFBD>*0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD>
if (minroute.Count == 0)
{
minroute.Add(route[0]);
minroute.Add(route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
else
{
if (minroute[1] > (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3))
{
minroute[0] = route[0];
minroute[1] = (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
}
}
if (minroute.Count > 0)
{
return Convert.ToInt32(minroute[0]);
}
else
{
return -1;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.MinRouteIDʱ<44><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
return -1;
}
}
/// <summary>
/// <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>RouteIDSub
/// </summary>
/// <param name="startdevice"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="enddevice"><3E>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="AllStatus"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>״̬<D7B4><CCAC>true<75><65>false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int MinRouteID(int startdevice, int enddevice, bool AllStatus, object useAwayfork)
{
string dff =string.Empty;
if (useAwayfork.ToString() == "-")
{
dff = "F_UseAwayFork<>'n'";
}
else
{
dff = "(F_UseAwayFork='" + useAwayfork + "' or F_UseAwayFork='-' )";//20101028
}
try
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string sql = "SELECT distinct(T_Base_Route_Device.F_RouteIDSub) FROM T_Base_Device,T_Base_Route_Device," +
"T_Base_Route where T_Base_Route_Device.F_RouteID = T_Base_Route.F_RouteID and " +
" T_Base_Route_Device.F_DeviceIndex = T_Base_Device.F_DeviceIndex and " +
" F_StartDevice=" + startdevice + " and F_EndDevice=" + enddevice + " and "+dff+" ";
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
List<double> minroute = new List<double>();//0,routIDSub<75><62>1<EFBFBD><31>·<EFBFBD><C2B7><EFBFBD><EFBFBD>Сֵ
if (dv.Count == 0)
{
return -1;
}
for (int i = 0; i < dv.Count; i++)
{
List<double> route = new List<double>();//0,routIDSub<75><62>1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>·<EFBFBD><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>3<EFBFBD><33>·<EFBFBD><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>Ȩ<EFBFBD><C8A8>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD>
route.Add(Convert.ToDouble(dv[i]["F_RouteIDSub"]));//RouteIDSub
DataView dv1 = dbo.ExceSQL("select count(F_DeviceIndex) as steps from T_Base_Route_Device where F_RouteIDSub="
+ dv[i]["F_RouteIDSub"] + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
//route.Add(Convert.ToDouble(dv1[0]["steps"]));//<2F><><EFBFBD><EFBFBD>
route.Add(0);
}
else
{
continue;
}
//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>·<EFBFBD><C2B7>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string runsql = "SELECT COUNT(DISTINCT F_ManageTaskIndex) AS ManCount FROM T_Monitor_Task GROUP BY F_RouteID HAVING (F_RouteID = " + dv[i]["F_RouteIDSub"] + ")";
DataView dv2 = dbo.ExceSQL(runsql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["ManCount"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["ManCount"]));//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string monisql = "SELECT COUNT(T_Monitor_Task.F_MonitorIndex) AS mtask FROM T_Monitor_Task ,T_Base_Route_Device where (T_Monitor_Task.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex) and (T_Base_Route_Device.F_RouteIDSub = " + dv[i]["F_RouteIDSub"] + ")";
dv2 = dbo.ExceSQL(monisql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["mtask"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["mtask"]));//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*0.3+·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>*0.3+<2B>ռ<E8B1B8><D5BC><EFBFBD><EFBFBD>*0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD>
if (minroute.Count == 0)
{
minroute.Add(route[0]);
minroute.Add(route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
else
{
if (minroute[1] > (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3))
{
minroute[0] = route[0];
minroute[1] = (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
}
}
if (minroute.Count > 0)
{
return Convert.ToInt32(minroute[0]);
}
else
{
return -1;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.MinRouteIDʱ<44><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
return -1;
}
}
/// <summary>
/// 20100702
/// <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>RouteIDSub
/// </summary>
/// <param name="startdevice"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="enddevice"><3E>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="useAwayfork"><3E>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static int MinRouteID(int startdevice, int enddevice, object useAwayfork)
{
string dff = string.Empty;
if (useAwayfork.ToString() == "-")
{
dff = "F_UseAwayFork<>'n'";
}
else
{
dff = "(F_UseAwayFork='" + useAwayfork + "' or F_UseAwayFork='-' )";//20101028
}
try
{
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string sql = "SELECT distinct(T_Base_Route_Device.F_RouteIDSub) FROM T_Base_Device,T_Base_Route_Device," +
"T_Base_Route where T_Base_Route_Device.F_RouteID = T_Base_Route.F_RouteID and " +
" T_Base_Route_Device.F_DeviceIndex = T_Base_Device.F_DeviceIndex and " +
" F_StartDevice=" + startdevice + " and F_EndDevice=" + enddevice + " and "+dff+" and F_Status=1 ";
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
List<double> minroute = new List<double>();//0,routIDSub<75><62>1<EFBFBD><31>·<EFBFBD><C2B7><EFBFBD><EFBFBD>Сֵ
if (dv.Count == 0)
{
return -1;
}
for (int i = 0; i < dv.Count; i++)
{
DataView dvd = dbo.ExceSQL("SELECT F_RouteIDSub, F_LockedState FROM T_Base_Device,T_Base_Route_Device WHERE " +
" T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and (T_Base_Route_Device.F_RouteIDSub = " +
dv[i]["F_RouteIDSub"] + ") AND (T_Base_Device.F_LockedState = - 1)").Tables[0].DefaultView;
if (dvd.Count > 0)
{
continue;
}
List<double> route = new List<double>();//0,routIDSub<75><62>1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>·<EFBFBD><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>3<EFBFBD><33>·<EFBFBD><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>Ȩ<EFBFBD><C8A8>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>0.3<EFBFBD><EFBFBD>
route.Add(Convert.ToDouble(dv[i]["F_RouteIDSub"]));//RouteIDSub
DataView dv1 = dbo.ExceSQL("select count(F_DeviceIndex) as steps from T_Base_Route_Device where F_RouteIDSub="
+ dv[i]["F_RouteIDSub"] + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
//route.Add(Convert.ToDouble(dv1[0]["steps"]));//<2F><><EFBFBD><EFBFBD>
route.Add(0);
}
else
{
continue;
}
//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD>ʣ<EFBFBD>·<EFBFBD><C2B7>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string runsql = "SELECT COUNT(DISTINCT F_ManageTaskIndex) AS ManCount FROM T_Monitor_Task GROUP BY F_RouteID HAVING (F_RouteID = " + dv[i]["F_RouteIDSub"] + ")";
DataView dv2 = dbo.ExceSQL(runsql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["ManCount"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["ManCount"]));//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
}
else
{
route.Add(0);//·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>
}
//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string monisql = "SELECT COUNT(T_Monitor_Task.F_MonitorIndex) AS mtask FROM T_Monitor_Task ,T_Base_Route_Device where (T_Monitor_Task.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex) and (T_Base_Route_Device.F_RouteIDSub = " + dv[i]["F_RouteIDSub"] + ")";
dv2 = dbo.ExceSQL(monisql).Tables[0].DefaultView;
if (dv2.Count > 0)
{
if (Information.IsNumeric(dv2[0]["mtask"]) == true)
{
route.Add(Convert.ToDouble(dv2[0]["mtask"]));//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
else
{
route.Add(0);//·<><C2B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*0.3+·<><C2B7>ʹ<EFBFBD><CAB9>Ƶ<EFBFBD><C6B5>*0.3+<2B>ռ<E8B1B8><D5BC><EFBFBD><EFBFBD>*0.3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD>
if (minroute.Count == 0)
{
minroute.Add(route[0]);
minroute.Add(route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
else
{
if (minroute[1] > (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3))
{
minroute[0] = route[0];
minroute[1] = (route[1] * 0.3 + route[2] * 0.3 + route[3] * 0.3);
}
}
}
if (minroute.Count > 0)
{
//// 12112<31>ͳ<EFBFBD>12115,12113ֻ<33><D6BB><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
////add by zx20121018
//if (Convert.ToInt32(minroute[0]) == 88001)
//{
// DataView dvfid = dbo.ExceSQL(" select * from T_Monitor_Task where F_NumParam1 =12112 and (F_NumParam4 =12115 or F_NumParam4=12113)").Tables[0].DefaultView;
// if (dvfid.Count > 0)
// {
// return -1;
// }
//}
////<2F><><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////add by zx 20121217
//if ((startdevice == 12604) && (enddevice == 18005))
//{
// DataView dvtuopan = dbo.ExceSQL("select * from T_Manage_Task where FIntoStepOK =1 and FSTARTDEVICE =12604 and FENDDEVICE =18005").Tables[0].DefaultView;
// if (dvtuopan.Count > 0)
// {
// return -1;
// }
//}
//// <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>12307-12310ֻ<30><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//if ((startdevice == 12604) && (enddevice == 18005))
//{
// DataView dvtuopan = dbo.ExceSQL("select * from T_Manage_Task where FIntoStepOK =1 and FSTARTDEVICE =12307 and FENDDEVICE =12310").Tables[0].DefaultView;
// if (dvtuopan.Count > 0)
// {
// return -1;
// }
//}
return Convert.ToInt32(minroute[0]);
}
else
{
return -1;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.MinRouteIDʱ<44><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
return -1;
}
}
/// <summary>
///
/// </summary>
/// <param name="Mankind"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="ManFID">io_control<6F><6C><EFBFBD><EFBFBD></param>
/// <param name="routeIDSub"><3E><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="drv"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ</param>
/// <returns></returns>
public static int CreateMonitor(int Mankind,int ManFID, int routeIDSub,DataRowView drv,int status)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫͬ<D2AA><CDAC>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><E8B1B8>
//<2F><><EFBFBD>󳵡<EFBFBD><F3B3B5A1>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD><EFBFBD>ڹؼ<DAB9><D8BC><EFBFBD><E8B1B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>
//<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><E8B1B8>·<EFBFBD><C2B7><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķָ<C4B7><D6B8>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
//1<><31><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ͷֶο<D6B6><CEBF><EFBFBD>
//2<><32><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>⣨ȡ<E2A3A8><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//3<><33>RGV<47><56>ȡ+RGVȡ<56><C8A1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+RGV<47><56><EFBFBD><EFBFBD>+RGV<47>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//4<><34><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD>
//5<><35><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ͷֶο<D6B6><CEBF><EFBFBD>
//6<><36><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD>(<28><>ȡ+ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD>+<2B>ͻ<EFBFBD>)<29><>
//7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataView dvRoute; DataView dvs;
try
{
//090714
if (ccf.GetMonitorIndex(ManFID, Mankind) >= 30000)
{
ccf.UpdateMonitorIndex(1);
}
//20091107
string sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device.F_DeviceKindIndex,F_UnControl FROM " +
"T_Base_Device,T_Base_Route_Device where " +
"T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
routeIDSub + " order by F_SerialNumber asc ";
dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count == 0) return 0;
dbo.TransBegin();
int CurSerialNumber = 0;
List<int> PriorDevice0 = new List<int>(), PriorKeyDevice0 = new List<int>();
string AheadDetect = string.Empty;
string RunningLock = string.Empty;
string AheadTrigger = string.Empty;
string uncontrol = string.Empty;
for (int i = 0; i < dvRoute.Count; i++)
{
AheadDetect = string.Empty;
RunningLock = string.Empty;
AheadTrigger = string.Empty;
uncontrol = (dvRoute[i]["F_UnControl"] + "").ToString();
List<int> PriorDevice = new List<int>(), NextDevice = new List<int>(),
CurDevice = new List<int>(), NextKeyDevice = new List<int>();//0<><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>;2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><E8B1B8><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ҹؼ<D2B9><D8BC>
if (Convert.ToInt32(dvRoute[i]["F_SerialNumber"]) <= CurSerialNumber) continue; // <20><><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
CurDevice.Add(Convert.ToInt32(dvRoute[i]["F_DeviceIndex"]));
CurDevice.Add(Convert.ToInt32(dvRoute[i]["F_DeviceKindIndex"]));
CurDevice.Add(Convert.ToInt32(dvRoute[i]["F_SerialNumber"]));
CurDevice.Add(Convert.ToInt32(dvRoute[i]["F_DeviceOrder"]));
NextKeyDevice = GetNextKeyDevice(routeIDSub, Convert.ToInt32(dvRoute[i]["F_SerialNumber"]));
if (NextKeyDevice.Count > 0)//<2F>ҵ<EFBFBD><D2B5>ؼ<EFBFBD><D8BC><EFBFBD><E8B1B8>0<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>;2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
{
CurSerialNumber = NextKeyDevice[2];
NextDevice = GetNextDevice(routeIDSub, NextKeyDevice[2]);
PriorDevice = GetPriorDevice(routeIDSub, NextKeyDevice[2]);
int TriggerTaskNo = 0;
int[] Coor = new int[6] { 0, 0, 0, 0, 0, 0 };
//20101118
string tw = string.Empty;
int mainTask = 0; int Rgvorder = 0;
switch (NextKeyDevice[1])
{
case 1:
#region <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>CurDevice-->PriorDeviceĿ<65><C4BF><EFBFBD>豸,<2C><><EFBFBD>⣺2<E2A3BA><32><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>PriorDevice<63><65>PLC<4C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>Ȼ<EEA3AC><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (uncontrol != "1")
{//20091107
if (PriorDevice[1] == 2 )
{
int arrowdev;
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{//20101118
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{//20101118
AheadDetect += ";D" + tw.ToString() ;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]); // <20>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
if (tw != "")
{//20101118
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]); //(<28><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>)
}
else
{
AheadDetect = null;
}
//20110318
//if (12103==CurDevice[0])
//{
// tw = GetBindingDeviceIndexOut(CurDevice[0]);
// if (tw != "")
// {//20101118
// AheadDetect += ";D" + tw.ToString();
// }
//}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]); //<2F><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> //20111116
if (tw != "")
{//20101118
AheadDetect += ";D" + tw.ToString();
}
//20110318
tw = GetBeDetectedDevices(nextConveyor[0]);
if (tw != "")
{//20101118
AheadDetect += ";" + tw.ToString();
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{//20101118
AheadDetect += ";D" + tw.ToString();
}
if (nextConveyor[0] == 12013) //2011/11/16 <20><><EFBFBD><EFBFBD><EFBFBD>Ǽ춨<C7BC><ECB6A8><EFBFBD>ؿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if (arrowdev == 12015)
{
AheadDetect += "I12008;I12014;I12015";
}
if (arrowdev == 12017)
{
AheadDetect += "I12008;I12009;I12016;I12017";
}
}
if (nextConveyor[0] == 12026 || nextConveyor[0] == 12207)
{
}
// if(nextConveyor[0]==12008 || nextConveyor[0] == )
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
AheadTrigger = PriorDevice[0].ToString(); //+ "-" + (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> 20120916
if (CurDevice[0] == 12116 && ((arrowdev == 12001) || (arrowdev == 12003)))
{
AheadDetect = "I12116;D-12116.0;I12117;D12117.0";
int tempdevice = 12026;
string tempaheaddetect = "I12026;D-12026.0";
if (arrowdev == 12001)
{
tempaheaddetect += ";I12009;D12009.0";
}
else
{
tempaheaddetect += ";I12027;D12027.0";
}
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + tempdevice
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + (ManFID ) + "," + Mankind + "," + (mindex )+ "," + drv["FTASKLEVEL"]
+ "," + tempdevice + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + tempdevice + "," + arrowdev
+ ",'" + tempaheaddetect + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
else
{
dbo.ExceSQL(sql);
}
#endregion
}
//20101220<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
AheadDetect = GetBeDetectedDevices(arrowdev);
tw = GetBindingDeviceIndexOut(arrowdev);
if (tw != "")
{//<2F>ж<EFBFBD><D0B6><EFBFBD>2<EFBFBD><32>λ<EFBFBD><CEBB><EFBFBD>л<EFBFBD>
AheadDetect += ";D-" + tw.ToString();
}
CurDevice[3] = 8;
if ((DeviceAndOrderExitInMonitor(Mankind, ManFID, arrowdev, CurDevice[3], 0) == false)&& (arrowdev != 12032)) // 12032<33><32><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> 2011/11/17
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
//20120913 JXDLû<4C>иߵͻ<DFB5>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>
//sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
// " F_AheadDetect,F_TxtParam,F_UseAwayFork)" +
//"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
// + "," + arrowdev + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + arrowdev + ","
// + "0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
//dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺؼ<EFBFBD><EFBFBD>
if ((PriorDevice[1] == 7) || (PriorDevice[1] == 12))
{
int arrowdev;
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
PriorDevice = PriorDevice0;
//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{//20101118
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
#endregion
AheadTrigger = PriorDevice[0].ToString(); //+ "-" + (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
//<2F><><EFBFBD><EFBFBD>PriorDevice<63>ǹ̶<C7B9>վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EAA3AC><EFBFBD>ֶѶ<D6B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int[] Coor0_2 = new int[6] { 0, 0, 0, 0, 0, 0 };
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3AC><EFBFBD>ֶѶ<D6B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 10)
{
Coor0_2 = GetStackCoordinateFromManage(Mankind, ManFID, drv);
}
else
{
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>NextDevice<63>ǹ̶<C7B9>վ̨<D5BE><CCA8>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Coor0_2 = GetStackCoordinateFromLaneGate(NextKeyDevice[0], PriorDevice[0], true);
}
Coor[0] = Coor0_2[0];
Coor[1] = Coor0_2[1];
Coor[2] = Coor0_2[2];
#endregion
}
//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
if (NextDevice.Count > 0)
{
int[] Coor3_5 = new int[6] { 0, 0, 0, 0, 0, 0 };
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3AC><EFBFBD>ֶѶ<D6B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD>
if (NextDevice[1] == 10)
{
Coor3_5 = GetStackCoordinateFromManage(Mankind, ManFID, drv);
}
else
{
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>NextDevice<63>ǹ̶<C7B9>վ̨<D5BE><CCA8>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Coor3_5 = GetStackCoordinateFromLaneGate(NextKeyDevice[0],NextDevice[0], false);
}
Coor[3] = Coor3_5[3];
Coor[4] = Coor3_5[4];
Coor[5] = Coor3_5[5];
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD>ɶѶ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ȡ+ȡ<EFBFBD><EFBFBD>+<EFBFBD>ͻ<EFBFBD>
#region <EFBFBD><EFBFBD>ȡ
//AheadDetect = "";
//if (NextDevice[1] == 2)
//{//<2F><>ȡʱ<C8A1><CAB1><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
// //20091107
// if (CStaticClass.OutDetectArrowIdleGoods == "1")
// {
// #region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// tw = GetBindingDeviceIndex(NextDevice[0]);
// if (tw != "")
// {
// AheadDetect = tw.ToString() + ";" + GetBeDetectedDevices(NextDevice[0]);
// }
// else
// {
// AheadDetect = null;
// }
// tw = GetBindingDeviceIndexOut(NextDevice[0]);
// if (tw != "")
// {
// AheadDetect = AheadDetect + ";" + tw.ToString();
// }
// ////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
// AheadDetect += ";" + "I" + NextDevice[0].ToString();
// //20090918<31><38><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
// AheadDetect += ";" + "N" + NextDevice[0].ToString();
// #endregion
// }
//}
//AheadDetect += ";" + GetBeDetectedDevices(NextKeyDevice[0]);
//#region ˫<><CBAB><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F_UseAwayFork<72><6B>F_CorrelDoubleFork
//int UseAwayFork = 1;//Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//devinfo = Model.CGetInfo.GetDeviceInfo(NextKeyDevice[0]);
//if (devinfo.IfCorrelDoubleFork == "1")
//{
// UseAwayFork = ccf.GetUseAwayFork(Coor[0], Coor[1], Coor[2], ccf.GetWAREHOUSEFromSTCELL(NextKeyDevice[0]), Mankind, ManFID, NextKeyDevice[0],2);
// }
//#endregion
//if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 2, 0) == false)
//{
// int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
// sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_TxtParam,F_AheadDetect,F_UseAwayFork)" +
// "VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",2," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + drv["FPALLETBARCODE"] + "','" + AheadDetect + "','"+UseAwayFork+"')";
// dbo.ExceSQL(sql);
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĶѶ<C4B6><D1B6><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
// //<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if (AheadTrigger != null)
// {
// AheadTrigger = PriorDevice[0] + "-" + mindex;
// //<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
// dbo.ExceSQL("update T_Monitor_Task set F_AheadTrigger='" + AheadTrigger + "' where F_MonitorIndex=" + TriggerTaskNo);
// }
//}
#endregion
#region ȡ<EFBFBD><EFBFBD>
if (PriorDevice[1] == 10)
{
AheadDetect = null;
}
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>޻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD> <EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
RunningLock = "";
AheadDetect = "";
if (PriorDevice[1] == 2)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RunningLock = PriorDevice[0].ToString();
List<int> PriorDevice2 = GetPriorDevice(routeIDSub, PriorDevice[2]);
if (PriorDevice2.Count > 0)
{
if (PriorDevice2[1] == 2)//<2F><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Խӵĵ<D3B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
RunningLock = RunningLock + ";" + PriorDevice2[0].ToString();
}
}
#endregion
// AheadDetect = "";
tw = GetBindingDeviceIndex(PriorDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString();
}
else
{
AheadDetect = null;
}
string[] cdi = ccf.GetCorrel_DeviceInfo(PriorDevice[0], true);
if (cdi != null)
{
AheadDetect += ";D-" + cdi[1];//20101118
}
AheadDetect += ";" + GetBeDetectedDevices(PriorDevice[0]);
}
if (NextDevice[1] == 2)
{
tw = GetBindingDeviceIndex(NextDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
string[] cdi = ccf.GetCorrel_DeviceInfo(NextDevice[0], true);
if (cdi != null)
{
AheadDetect += ";D-" + cdi[1];//20101118
}
AheadDetect += ";" + GetBeDetectedDevices(NextDevice[0])+";N"+NextDevice[0];
}
tw = GetBindingDeviceIndex(NextKeyDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();
}
AheadDetect += ";" + GetBeDetectedDevices(NextKeyDevice[0]);
#endregion
//ȡ<><C8A1>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 4, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + ",4," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//if (NextDevice[1] == 10)
//{
// AheadDetect = null;
//}
//RunningLock = "";
//AheadDetect = GetBeDetectedDevices(NextKeyDevice[0]);
////<2F><><EFBFBD><EFBFBD>
//if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 3, 0) == false)
//{
// int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
// sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_TxtParam,F_AheadDetect)" +
// "VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",3," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + drv["FPALLETBARCODE"] + "','" + AheadDetect + "')";
// dbo.ExceSQL(sql);
//}
#endregion
#region <EFBFBD>ͻ<EFBFBD>
RunningLock = "";
AheadDetect = "";
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>޻<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>޻<EFBFBD>)<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
if (NextDevice[1] == 2 || NextDevice[1] == 9)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RunningLock = "";
DataView dvlane = dbo.ExceSQL("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate WHERE (F_LaneGateDeviceIndex =" + NextDevice[0] + ") AND (F_RunLock = '1')").Tables[0].DefaultView;
if (dvlane.Count > 0)
{
RunningLock = NextDevice[0].ToString();
}
else
{
RunningLock = "";
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
tw = GetBindingDeviceIndex(NextDevice[0]);
if (tw != "")
{
AheadDetect = "D" + tw.ToString();//20101118
}
else
{
AheadDetect = null;
}
string[] cdi = ccf.GetCorrel_DeviceInfo(NextDevice[0], true);
if (cdi != null)
{
AheadDetect += "D-" + cdi[1];//20101118
}
//20090918<31><38><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
AheadDetect += ";" + GetBeDetectedDevices(NextDevice[0]) + ";N" + NextDevice[0];
#endregion
}
AheadDetect += ";" + GetBeDetectedDevices(NextKeyDevice[0]);
// <20>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ż<EFBFBD>ʱ<EFBFBD><CAB1>֤<EFBFBD>л<EFBFBD>
tw = GetBindingDeviceIndex(NextKeyDevice[0]);
if (tw != "")
{
AheadDetect += ";D-" + tw.ToString();
}
#endregion
//<2F>ͻ<EFBFBD>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 5, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + ",5," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
}
#endregion
#region ȡ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊȡ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ָ<EFBFBD>
//if (PriorDevice[1] == 10)
//{
// AheadDetect = null;
//}
//RunningLock = "";
//if (PriorDevice[1] == 2)
//{//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
// #region <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>
// RunningLock = PriorDevice[0].ToString();
// List<int> PriorDevice2 = GetPriorDevice(routeIDSub, PriorDevice[2]);
// if(PriorDevice2.Count>0)
// {
// if (PriorDevice2[1] == 2)//<2F><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Խӵĵ<D3B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// RunningLock = RunningLock + ";" + PriorDevice2[0].ToString();
// }
// }
// #endregion
// #region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// AheadDetect = "";
// //20101011
// string[] cdi = ccf.GetCorrel_DeviceInfo(PriorDevice[0],true);
// if (cdi!=null)
// {//20100406<30><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>-11211<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// AheadDetect = "D-" + cdi[1];//20101118
// // AheadDetect += ";D-" + cdi[5];//20110108 <20><><EFBFBD><EFBFBD>2<EFBFBD><32>Ϊ<EFBFBD>л<EFBFBD>״̬ // <20><>վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>
// }
// //20101011
// else
// {
// tw = GetBindingDeviceIndexOut(PriorDevice[0]);
// if (tw != "")
// {//20101118
// // AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(PriorDevice[0]);
// AheadDetect = "D-" + tw.ToString();
// }
// else
// {
// AheadDetect = null;
// }
// }
// //20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
// AheadDetect += ";" + "I" + PriorDevice[0].ToString();
// #endregion
//}
//if (NextDevice[1] == 2)
//{
// //20101011
// string[] cdi = ccf.GetCorrel_DeviceInfo(NextDevice[0], true);
// if (cdi!=null)
// {//20100406<30><36><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>-11211<31><31><EFBFBD><EFBFBD>-11221<32><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// //20101218
// if(cdi[1]!="") //<2F><>λ
// {
// AheadDetect += ";D-" + cdi[1];//20101118
// }
// if (cdi[3] != "")
// {
// AheadDetect += ";D" + cdi[3];//20101118
// }
// if (cdi[5] != "")
// {
// AheadDetect += ";D" + cdi[5];//20101118
// }
// if (cdi[6] != "")
// {
// AheadDetect += ";D" + cdi[6];//20101118
// }
// //20101011
// }
// else
// {
// tw = GetBindingDeviceIndex(NextDevice[0]);
// if (tw != "")
// {
// AheadDetect += ";D" + tw.ToString();//20101118
// }
// //tw = GetBindingDeviceIndexOut(NextDevice[0]);
// //if (tw != "")
// //{
// // AheadDetect += ";D" + tw.ToString();//20101118
// //}
// }
// //20100406<30><36><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
// // 20120918
// // AheadDetect += ";" + "I" + NextDevice[0].ToString() + ";" + "N" + NextDevice[0].ToString();
// AheadDetect += ";" + "I" + NextDevice[0].ToString();
//}
// //<2F><>֤<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>޻<EFBFBD> 2011/11/16
// tw = GetBindingDeviceIndex(NextKeyDevice[0]);
// if (tw != "")
// {
// AheadDetect += ";D" + tw.ToString();
// }
//AheadDetect += ";" + GetBeDetectedDevices(NextKeyDevice[0]);
////ȡ<>ͻ<EFBFBD>
//if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 6, 0) == false)
//{
// int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
// sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
// "VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",6," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
// dbo.ExceSQL(sql);
//}
#endregion
#endregion
//<2F>޸<EFBFBD>T_Manage_Task<73><6B>FLANEWAY<41><59>FSTACK
dvs = dbo.ExceSQL("SELECT F_LaneDeviceIndex,F_StackIndex FROM T_Base_LaneInfo where F_StackIndex=" + NextKeyDevice[0] + "").Tables[0].DefaultView;
int laneway = 0;
if (dvs.Count > 0)
{
laneway = Convert.ToInt32(dvs[0]["F_LaneDeviceIndex"]);
}//20101028
dbo.ExceSQL("update T_Manage_Task set FLANEWAY=" + laneway + ",FSTACK=" + NextKeyDevice[0] + " where (FLANEWAY=-1) and (FSTACK=-1) and (F_ManageTaskKindIndex=" + Mankind + ") and FID=" + ManFID);
break;
#endregion
case 2://<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><E3A3BA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE>·<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ǰһ<C7B0><D2BB><EFBFBD>ͺ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>յ㣨û<E3A3A8>к<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
case 3://<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (NextDevice.Count == 0)//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == NextKeyDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((CurDevice[3] == 1) || ((CurDevice[3] == 2)))
{
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
}
//else if (CurDevice[3] == 2)
//{
// tw = GetBindingDeviceIndexOut(CurDevice[0]);
// if (tw != "")
// {
// AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
// }
// else
// {
// AheadDetect = null;
// }
//}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
#endregion
}
else
{
arrowdev = NextKeyDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString();//20101118
}
else
{
AheadDetect = null;
}
//20101118
AheadDetect += ";" + GetBeDetectedDevices(CurDevice[0]);
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();// + ";" + GetBeDetectedDevices(nextConveyor[0]);//20101118
}
//20110318
tw = GetBeDetectedDevices(nextConveyor[0]);
if (tw != "")
{//20101118
AheadDetect += ";" + tw.ToString();
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
//20110318
int floor = 0;
//if (18007==arrowdev)
//{
floor =Convert.ToInt32( drv["BOX_QUANTITY"]);
//}
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam,F_NumParam5)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "',"+floor+")";
dbo.ExceSQL(sql);
#endregion
}
}
}
else//ʮ<><CAAE>·<EFBFBD><C2B7>
{
}
#endregion
break;
case 4:
#region RGV
//RGVȡ<56><C8A1><EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>CurDevice-->PriorDeviceĿ<65><C4BF><EFBFBD>豸,<2C><><EFBFBD>⣺2<E2A3BA><32><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>PriorDevice<63><65>PLC<4C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EEA3A8><37><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 2)
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString() + ";" + GetBeDetectedDevices(nextConveyor[0]);//20101118
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
AheadTrigger = PriorDevice[0].ToString(); //+ "-" + (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGV<EFBFBD><EFBFBD><EFBFBD>еĽӻ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Coor[0] = PriorDevice[0];
Coor[1] = 0;
Coor[2] = 0;
Coor[3] = 0;
Coor[4] = 0;
Coor[5] = 0;
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGVָ<EFBFBD><EFBFBD>:7-<EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>2-<EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>3-<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>4-<EFBFBD>ҽӻ<EFBFBD>5-<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD>
//20090625
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
tw = GetBindingDeviceIndex(NextDevice[0]);//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = "D" + tw.ToString() + ";" + GetBeDetectedDevices(NextDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(NextDevice[0]);//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + tw.ToString();//20101118
}
//20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
AheadDetect += ";" + "I" + NextDevice[0].ToString();
//20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
AheadDetect += ";" + GetBeDetectedDevices(NextKeyDevice[0]);
tw = GetBindingDeviceIndex(NextKeyDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
#endregion
//<2F>˶<EFBFBD>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 2, Coor[0]) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_TxtParam,F_AheadDetect)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + ",7," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + drv["FPALLETBARCODE"] + "','" + AheadDetect + "')";
dbo.ExceSQL(sql);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>RGV<47><56><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
//<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (AheadTrigger != null)
{
AheadTrigger = PriorDevice[0] + "-" + mindex;
//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
dbo.ExceSQL("update T_Monitor_Task set F_AheadTrigger='" + AheadTrigger + "' where F_MonitorIndex=" + TriggerTaskNo);
}
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
tw = GetBindingDeviceIndexOut(PriorDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(PriorDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + PriorDevice[0].ToString();
tw = GetBindingDeviceIndex(NextKeyDevice[0]);
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + tw.ToString();// +";" + GetBeDetectedDevices(NextKeyDevice[0]);//20101118
}
#endregion
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, PriorDevice[0], 3, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + PriorDevice[0] + "," + 3 + "," + routeIDSub + "," + status + "," + PriorDevice[0] + ",0,"
+ "0,0,0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
mainTask = mindex;
}
#endregion
#region RGV<EFBFBD>Ľӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
tw = GetBindingDeviceIndexOut(PriorDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(PriorDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + PriorDevice[0].ToString();
tw = GetBindingDeviceIndex(NextKeyDevice[0]);
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + tw.ToString() + ";" + GetBeDetectedDevices(NextKeyDevice[0]);//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + NextKeyDevice[0].ToString();
#endregion
Rgvorder = GetRGVOrder(PriorDevice[0], true);
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], Rgvorder, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + Rgvorder + "," + routeIDSub + "," + status + "," + PriorDevice[0] + ",0" +
",0,0,0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
dbo.ExceSQL("update T_Monitor_Task set F_Associate=" + mindex + " where F_MonitorIndex=" + mainTask);
}
#endregion
}
//<2F><><EFBFBD><EFBFBD>RGV<47><56><EFBFBD>е<EFBFBD><D0B5>ͻ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (NextDevice.Count > 0)
{
Coor[0] = NextDevice[0];
Coor[1] = 0;
Coor[2] = 0;
Coor[3] = 0;
Coor[4] = 0;
Coor[5] = 0;
}
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>RGVָ<EFBFBD><EFBFBD>:7-<EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>2-<EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>3-<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>4-<EFBFBD>ҽӻ<EFBFBD>5-<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD>
//20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
AheadDetect = GetBeDetectedDevices(NextKeyDevice[0]);
//<2F>˶<EFBFBD>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], 7, Coor[0]) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_TxtParam,F_AheadDetect)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + ",7," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + drv["FPALLETBARCODE"] + "','" + AheadDetect + "')";
dbo.ExceSQL(sql);
}
#endregion
#region RGV<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
if (NextDevice[0] == 2246)//2246<34><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFA3AC><D6B1><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
{
}
else
{
tw = GetBindingDeviceIndex(NextDevice[0]);//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = "D" + tw.ToString();// +";" + GetBeDetectedDevices(NextDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(NextDevice[0]);//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + tw.ToString();//20101118
}
}
tw = GetBindingDeviceIndex(NextKeyDevice[0]);//RGV<47><56>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = AheadDetect + ";" + "D-" + tw.ToString() + ";" + GetBeDetectedDevices(NextKeyDevice[0]);//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + NextKeyDevice[0].ToString();
#endregion
Rgvorder = GetRGVOrder(NextDevice[0], false);
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], Rgvorder, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + Rgvorder + "," + routeIDSub + "," + status + "," + NextDevice[0] + ",0" +
",0,0,0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
mainTask = mindex;
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD>Ľӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AheadDetect = "";
tw = GetBindingDeviceIndexOut(NextDevice[0]);//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + tw.ToString();//20101118
}
if (NextDevice[0] != 2246)//2246<34><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>Աһ<D4B1><D2BB>)<29><><EFBFBD><EFBFBD>
{
tw = GetBindingDeviceIndex(NextDevice[0]);//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = "D" + tw.ToString() + ";" + GetBeDetectedDevices(NextDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + NextDevice[0].ToString();
}
tw = GetBindingDeviceIndex(NextKeyDevice[0]);//RGV<47><56>̽<EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (tw != "")
{
AheadDetect = AheadDetect + ";D" + "-" + tw.ToString() + ";" + GetBeDetectedDevices(NextKeyDevice[0]);//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + NextKeyDevice[0].ToString();
#endregion
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextDevice[0], 4, 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextDevice[0] + "," + 4 + "," + routeIDSub + "," + status + "," + NextDevice[0] + ",0,"
+ "0,0,0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
dbo.ExceSQL("update T_Monitor_Task set F_Associate=" + mindex + " where F_MonitorIndex=" + mainTask);
}
#endregion
break;
#endregion
case 5:
#region <EFBFBD><EFBFBD><EFBFBD>ɺ͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], NextKeyDevice[3], 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + NextKeyDevice[3] + "," + routeIDSub + "," + status + ",0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
}
#endregion
break;
case 6:
#region AGV
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//AGVȡ<56><C8A1><EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 2)
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
if (CStaticClass.AGVAllowSingleFork == "0")//20100710
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
if ((CurDevice[0] % 2) == 0)
{
AheadDetect += ";D" + GetBindingDeviceIndexOut(CurDevice[0] - 1).ToString();//20101118
}
else
{
AheadDetect += ";D" + GetBindingDeviceIndexOut(CurDevice[0] + 1).ToString();//20101118
}
#endregion
}
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString() + ";" + GetBeDetectedDevices(nextConveyor[0]);//20101118
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
AheadDetect += ";" + "N" + nextConveyor[0].ToString();
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
int[] Coor0_2 = new int[6] { 0, 0, 0, 0, 0, 0 };
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65>AGVͨ<56><CDA8><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 11)
{
Coor0_2 =GetAGVAddressFromManage (Mankind, ManFID, drv);
}
else
{
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>NextDevice<63>ǹ̶<C7B9>վ̨<D5BE><CCA8>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Coor0_2[1] =PriorDevice[0];
}
Coor[0] = Coor0_2[0];
Coor[1] = Coor0_2[1];//վ̨<D5BE><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
Coor[2] = Coor0_2[2];
}
if (NextDevice.Count > 0)
{
int[] Coor3_5 = new int[6] { 0, 0, 0, 0, 0, 0 };
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65>AGVͨ<56><CDA8><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ͻ<EFBFBD>
if (NextDevice[1] == 11)
{
Coor3_5 = GetAGVAddressFromManage(Mankind, ManFID, drv);
}
else
{
//<2F><><EFBFBD><EFBFBD>NextDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>NextDevice<63>ǹ̶<C7B9>վ̨<D5BE><CCA8>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Coor3_5[4] =NextDevice[0];
}
Coor[3] = Coor3_5[3];
Coor[4] = Coor3_5[4];//վ̨<D5BE><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
Coor[5] = Coor3_5[5];
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGVָ<EFBFBD><EFBFBD>:ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int agvorder = 0;
#region AGVȡ<EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
agvorder = 1;
RunningLock = "";
if (PriorDevice[1] == 2)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RunningLock = PriorDevice[0].ToString();
//ȡ<><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (CStaticClass.AGVAllowSingleFork == "0")
{
if ((PriorDevice[0] % 2) == 0)
{
RunningLock += ";" + (PriorDevice[0] - 1).ToString();
}
else
{
RunningLock += ";" + (PriorDevice[0] + 1).ToString();
}
}
#endregion
AheadDetect = "-" + GetBindingDeviceIndexOut(PriorDevice[0]).ToString() + ";I" + PriorDevice[0].ToString();
#region <EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ڵ<EFBFBD>λ20100710
AheadDetect += ";-" + PriorDevice[0].ToString() + "3";
#endregion
}
//else if (PriorDevice[1] == 9)//<2F>̶<EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>
//{
// AheadDetect = "H" + PriorDevice[0].ToString();
//}
//else if (PriorDevice[1] == 11)//AGVͨ<56><CDA8>
//{
// AheadDetect = "H" + Coor[1].ToString();
//}
if (NextDevice.Count > 0)
{
if (NextDevice[1] == 2)
{//20100714
AheadDetect += ";" + GetBindingDeviceIndex(NextDevice[0]).ToString() + ";I" + NextDevice[0].ToString() + ";N" + NextDevice[0].ToString();
if (CStaticClass.AGVAllowSingleFork == "0")//20100710
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
if ((NextDevice[0] % 2) == 0)
{
AheadDetect += ";D" + GetBindingDeviceIndex(NextDevice[0] - 1).ToString() + ";I" + (NextDevice[0] - 1).ToString();//20101118
}
else
{
AheadDetect += ";D" + GetBindingDeviceIndex(NextDevice[0] + 1).ToString() + ";I" + (NextDevice[0] + 1).ToString();//20101118
}
#endregion
}
}
//else if (NextDevice[1] == 9)//<2F>̶<EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>
//{
// AheadDetect += ";N" + NextDevice[0].ToString();
// #region <20><><EFBFBD>ڻ<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
// if ((NextDevice[0] % 2) == 0)
// {
// AheadDetect += ";N" + (NextDevice[0] - 1).ToString();
// }
// else
// {
// AheadDetect += ";N" + (NextDevice[0] + 1).ToString();
// }
// #endregion
//}
//else if (NextDevice[1] == 11)//AGVͨ<56><CDA8>
//{
// AheadDetect += ";N" + Coor[4].ToString();
// #region <20><><EFBFBD>ڻ<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
// if ((Coor[4] % 2) == 0)
// {
// AheadDetect += ";N" + (Coor[4] - 1).ToString();
// }
// else
// {
// AheadDetect += ";N" + (Coor[4] + 1).ToString();
// }
// #endregion
//}
}
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], agvorder, 0) == false)
{//20091107
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + ","+agvorder+"," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
////<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>3
//int mindex1 = ccf.GetMonitorIndex(ManFID, Mankind);
//sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_AgvTask,F_UseAwayFork)" +
//"VALUES (" + ManFID + "," + Mankind + "," + (mindex1) + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",3," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'','','" + drv["FPALLETBARCODE"] + "'," + mindex + ",'" + drv["FUseAwayFork"] + "')";
//dbo.ExceSQL(sql);
}
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD>
agvorder = 4;
AheadDetect = "";
RunningLock = "";
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], agvorder, 0) == false)
{//20091107
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + agvorder + "," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
////<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>3
//int mindex1 = ccf.GetMonitorIndex(ManFID, Mankind);
//sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_AgvTask,F_UseAwayFork)" +
//"VALUES (" + ManFID + "," + Mankind + "," + (mindex1) + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",3," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'','','" + drv["FPALLETBARCODE"] + "'," + mindex + ",'" + drv["FUseAwayFork"] + "')";
//dbo.ExceSQL(sql);
}
#endregion
#region AGV<EFBFBD>ͻ<EFBFBD>
if (NextDevice.Count > 0)
{
agvorder = 2;
RunningLock = "";
if (NextDevice[1] == 2)
{//20100714
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RunningLock = NextDevice[0].ToString();
//<2F>ͻ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (CStaticClass.AGVAllowSingleFork == "0")
{
if ((NextDevice[0] % 2) == 0)
{
RunningLock += ";" + (NextDevice[0] - 1).ToString();
}
else
{
RunningLock += ";" + (NextDevice[0] + 1).ToString();
}
}
#endregion
AheadDetect = GetBindingDeviceIndex(NextDevice[0]).ToString() + ";I" + NextDevice[0].ToString() + ";N" + NextDevice[0].ToString();
if (CStaticClass.AGVAllowSingleFork == "0")
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
if ((NextDevice[0] % 2) == 0)
{
AheadDetect = "D" + GetBindingDeviceIndex(NextDevice[0] - 1).ToString() + ";I" + (NextDevice[0] - 1).ToString();//20101118
}
else
{
AheadDetect = "D" + GetBindingDeviceIndex(NextDevice[0] + 1).ToString() + ";I" + (NextDevice[0] + 1).ToString();//20101118
}
#endregion
}
}
//else if (NextDevice[1] == 9)//<2F>̶<EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>
//{
// AheadDetect = "N" + NextDevice[0].ToString();
// #region <20><><EFBFBD>ڻ<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
// if ((NextDevice[0] % 2) == 0)
// {
// AheadDetect += ";N" + (NextDevice[0] - 1).ToString();
// }
// else
// {
// AheadDetect += ";N" + (NextDevice[0] + 1).ToString() ;
// }
// #endregion
//}
//else if (NextDevice[1] == 11)//AGVͨ<56><CDA8>
//{
// AheadDetect = "N" + Coor[4].ToString();
// #region <20><><EFBFBD>ڻ<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>һ
// if ((Coor[4] % 2) == 0)
// {
// AheadDetect += ";N" + (Coor[4] - 1).ToString();
// }
// else
// {
// AheadDetect += ";N" + (Coor[4] + 1).ToString();
// }
// #endregion
//}
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], agvorder, 0) == false)
{//20091107
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
" F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_UseAwayFork)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + agvorder + "," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
+ "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'" + AheadDetect + "','" + RunningLock + "','" + drv["FPALLETBARCODE"] + "','" + drv["FUseAwayFork"] + "')";
dbo.ExceSQL(sql);
// //<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>3
// int mindex1 = ccf.GetMonitorIndex(ManFID, Mankind);
// sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam2," +
// " F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6,F_AheadDetect,F_RunningLock,F_TxtParam,F_AgvTask,F_UseAwayFork)" +
// "VALUES (" + ManFID + "," + Mankind + "," + (mindex1) + "," + drv["FTASKLEVEL"]
// + "," + NextKeyDevice[0] + ",3," + routeIDSub + "," + status + "," + Coor[0] + "," + Coor[1]
// + "," + Coor[2] + "," + Coor[3] + "," + Coor[4] + "," + Coor[5] + ",'','','" + drv["FPALLETBARCODE"] + "'," + mindex + ",'" + drv["FUseAwayFork"] + "')";
// dbo.ExceSQL(sql);
}
}
#endregion
#endregion
#endregion
break;
case 7:
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>1<EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>CurDevice-->PriorDeviceĿ<65><C4BF><EFBFBD>豸,<2C><><EFBFBD>⣺2<E2A3BA><32><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>PriorDevice<63><65>PLC<4C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EEA3A8><37><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 2)
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((CurDevice[3] == 1)||(CurDevice[3] == 2))
{
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
}
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{
//AheadDetect = "D-" + tw.ToString();//20101118
AheadDetect = "D-" + tw.ToString();// +";" + GetBeDetectedDevices(CurDevice[0]);//20101220
}
else
{
AheadDetect = null;
}
//20100221
AheadDetect += ";" + GetBeDetectedDevices(CurDevice[0]);
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();// +";" + GetBeDetectedDevices(nextConveyor[0]);//20101118
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
//20110318
tw = GetBeDetectedDevices(nextConveyor[0]);
if (tw != "")
{//20101118
AheadDetect += ";" + tw.ToString();
}
//if (CurDevice[0] == 1223)//<2F><><EFBFBD>Ͽ<EFBFBD>AGVȡ<56><C8A1>վ̨<D5BE><CCA8>ǰһ<C7B0><D2BB>վ̨
//{
// AheadDetect += ";" + "N" + nextConveyor[0].ToString();
//}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
AheadTrigger = PriorDevice[0].ToString(); //+ "-" + (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
}
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//20110318
tw = GetBindingDeviceIndex(PriorDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() +";"+ GetBeDetectedDevices(PriorDevice[0]);
}
else
{
AheadDetect = null;
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//20110318
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], NextKeyDevice[3], 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + NextKeyDevice[3] + "," + routeIDSub + "," + status + ",0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
}
#endregion
#endregion
break;
case 12:
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>Ϊ·<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>CurDevice-->PriorDeviceĿ<65><C4BF><EFBFBD>豸,<2C><><EFBFBD>⣺2<E2A3BA><32><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>PriorDevice<63><65>PLC<4C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EEA3A8><37><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 2||PriorDevice[1] == 3)
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
CurDevice[3] = 2;
arrowdev = CurDevice[0];
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((CurDevice[3] == 1) || (CurDevice[3] == 2))
{
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString();//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
}
AheadDetect += ";"+GetBeDetectedDevices(CurDevice[0]);//20110401
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{//20091107
AheadDetect = "D-" + tw.ToString(); //20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
////20110108
AheadDetect += ";" + GetBeDetectedDevices(CurDevice[0]);
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
tw = GetBeDetectedDevices(nextConveyor[0]);
if (tw != "")
{//20101118
AheadDetect += ";" + tw.ToString();
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
// 12041<34><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>뱣֤<EBB1A3><D6A4><EFBFBD>߲<EFBFBD><DFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//zx20131122
if (arrowdev == 12041)
{
tw = GetBindingDeviceIndex(12041);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();
}
tw = GetBeDetectedDevices(12041);
if (tw != "")
{//20101118
AheadDetect += ";" + tw.ToString();
}
tw = GetBindingDeviceIndexOut(12041);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();
}
}
#endregion
}
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam,F_NumParam5,F_NumParam6)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "'," + drv["UNPACK_QUANTITY"] + "," + drv["BOX_QUANTITY"] + ")";
dbo.ExceSQL(sql);
#endregion
}
//2011/11/16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>ڲ<EFBFBD><DAB2>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>ָ<EEA3AC><D6B8><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (arrowdev == 12028)
{
// AheadDetect = string.Empty;
//CurDevice[3] = unpacktype(ManFID);
//AheadDetect = "I" + arrowdev.ToString();
//if (DeviceAndOrderExitInMonitor(Mankind, ManFID, arrowdev, CurDevice[3], 0) == false)
//{
// #region <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>
// #endregion
// #region <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
// int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
// TriggerTaskNo = mindex;
// // int handfid = GetManageHandIdx();
// //tw = string.Empty;
// //tw = GetBindingDeviceIndex(arrowdev);
// sql = "INSERT INTO T_Monitor_Task " +
// "(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
// " F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
// " F_AheadDetect,F_TxtParam,F_NumParam5)" +
// "VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
// + "," + arrowdev + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + arrowdev + ","
// + "0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "'," + drv["BOX_QUANTITY"] + ")";
// if (CurDevice[3] != -1)
// {
// dbo.ExceSQL(sql);
// }
// #endregion
//}
}
}
}
#endregion
}
#endregion
break;
case 30:
#region 20100617<EFBFBD>͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>
if (PriorDevice.Count > 0)
{
//<2F><><EFBFBD><EFBFBD>PriorDevice<63><65><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>CurDevice-->PriorDeviceĿ<65><C4BF><EFBFBD>豸,<2C><><EFBFBD>⣺2<E2A3BA><32><EFBFBD><EFBFBD>
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ͻ<EFBFBD>PriorDevice<63><65>PLC<4C>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>RGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EEA3A8><37><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EEA3AC>ȡ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#region ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>
if (PriorDevice[1] == 2)
{
if (uncontrol != "1")
{//20091107
List<int> newcur = NewCurDevice(PriorDevice0, PriorKeyDevice0);
if (newcur != null)
{
CurDevice = newcur;
}
int arrowdev;
if (CurDevice[0] == PriorDevice[0])
{//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><E8B1B8>ͬʱ<CDAC><CAB1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
arrowdev = 0;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((CurDevice[3] == 1) || (CurDevice[3] == 2))
{
//CurDevice<63><65>F_BindingDevice<63><65><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetBindingDeviceIndex(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
}
else
{
AheadDetect = null;
}
tw = GetBindingDeviceIndexOut(CurDevice[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
}
//else if (CurDevice[3] == 2)
//{
// tw = GetBindingDeviceIndexOut(CurDevice[0]);
// if (tw != "")
// {
// AheadDetect = "D-" + tw.ToString() + ";" + GetBeDetectedDevices(CurDevice[0]);//20101118
// }
// else
// {
// AheadDetect = null;
// }
//}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
#endregion
}
else
{
arrowdev = PriorDevice[0];
CurDevice[3] = 6;
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//CurDevice<63><65>F_SendOutDetect<63><74><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CurDevice<63><65>̽<EFBFBD><CCBD>
tw = GetSendOutDetect(CurDevice[0]);
if (tw != "")
{
AheadDetect = "D-" + tw.ToString();//20101118
}
else
{
AheadDetect = null;
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + CurDevice[0].ToString();
List<int> nextConveyor = GetCurConveyorNextDevice(routeIDSub, CurDevice[2]);
tw = GetBindingDeviceIndex(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString() + ";" + GetBeDetectedDevices(nextConveyor[0]);//20101118
}
tw = GetBindingDeviceIndexOut(nextConveyor[0]);
if (tw != "")
{
AheadDetect += ";D" + tw.ToString();//20101118
}
if (CurDevice[0] == 1223)//<2F><><EFBFBD>Ͽ<EFBFBD>AGVȡ<56><C8A1>վ̨<D5BE><CCA8>ǰһ<C7B0><D2BB>վ̨
{
AheadDetect += ";" + "N" + nextConveyor[0].ToString();
}
////20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
//AheadDetect += ";" + "I" + nextConveyor[0].ToString();
#endregion
}
AheadTrigger = PriorDevice[0].ToString(); //+ "-" + (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);//<2F><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ﵱǰλ<C7B0><CEBB>=PriorDevice[0]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>Ľ<EFBFBD>ȡ
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, CurDevice[0], CurDevice[3], 0) == false)
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
TriggerTaskNo = mindex;
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + CurDevice[0] + "," + CurDevice[3] + "," + routeIDSub + "," + status + "," + CurDevice[0] + "," + arrowdev
+ ",'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
#endregion
}
}
}
#endregion
}
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//tw = GetBindingDeviceIndexOut(PriorDevice[0]);
//if (tw != "")
//{
// AheadDetect = "D-" + tw.ToString();//20101118
//}
//else
//{
// AheadDetect = null;
//}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD>ɺ͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (DeviceAndOrderExitInMonitor(Mankind, ManFID, NextKeyDevice[0], NextKeyDevice[3], 0) == false)
{
int mindex = ccf.GetMonitorIndex(ManFID, Mankind);
sql = "INSERT INTO T_Monitor_Task " +
"(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel," +
" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4," +
" F_AheadDetect,F_TxtParam)" +
"VALUES (" + ManFID + "," + Mankind + "," + mindex + "," + drv["FTASKLEVEL"]
+ "," + NextKeyDevice[0] + "," + NextKeyDevice[3] + "," + routeIDSub + "," + status + ",0,0,'" + AheadDetect + "','" + drv["FPALLETBARCODE"] + "')";
dbo.ExceSQL(sql);
}
#endregion
#endregion
break;
default:
break;
}
}
else
{
}
PriorDevice0 = PriorDevice;
PriorKeyDevice0 = NextKeyDevice;
//20091107
PriorDevice = null;
NextKeyDevice = null;
CurDevice = null;
NextKeyDevice = null;
}
dbo.TransCommit();
//20091107
PriorDevice0 = null;
PriorKeyDevice0 = null;
return 1;
}
catch (Exception ex)
{
dbo.TransRollback();
DisassembleTaskError = "ControlSystem.CDisassembleTask.CreateMonitorʱ<72><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" + ex.Message;
return 0;
}
finally
{
dvRoute = null;
dvs = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>;2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="CurRouteID">·<><C2B7>ID</param>
/// <param name="CurSerialNumber">·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static List<int> GetPriorDevice(int CurRouteIDSub, int CurSerialNumber)
{
List<int> keyDevice = new List<int>();
string sql;DataView dvRoute;
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device_Command.F_DeviceCommandIndex,T_Base_Device.F_DeviceKindIndex FROM T_Base_Device_Command " +
",T_Base_Device,T_Base_Route_Device where T_Base_Device_Command.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex" +
" and T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
CurRouteIDSub + " and F_SerialNumber < " + CurSerialNumber + " order by F_SerialNumber desc ";
dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count > 0)
{
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceKindIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_SerialNumber"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceOrder"]));
}
return keyDevice;
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetPriorDevice:" + ex.Message;
return null;
}
finally
{
keyDevice=null;
dvRoute = null ;
sql = null;
}
}
/// <summary>
/// <20><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><E9A3AC>Ҫ<EFBFBD>жϵ<D0B6>ǰ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>״̬
/// </summary>
/// <param name="CurRouteIDSub"><3E><>ǰ<EFBFBD><C7B0><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>·<EFBFBD><C2B7></param>
/// <param name="CurSerialNumber"><3E><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>Ӧ<EFBFBD><D3A6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
static List<int> GetCurConveyorNextDevice(int CurRouteIDSub, int CurSerialNumber)
{
List<int> CurDeviceNextDev = new List<int>();
DataView dvRoute; string sql;
try
{
//<2F>ҵ<EFBFBD>ǰһ<C7B0><D2BB><EFBFBD>豸CurDevice<63><65><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device_Command.F_DeviceCommandIndex,T_Base_Device.F_DeviceKindIndex FROM T_Base_Device_Command " +
",T_Base_Device,T_Base_Route_Device where T_Base_Device_Command.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex" +
" and T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
CurRouteIDSub + " and F_SerialNumber > " + CurSerialNumber + " and T_Base_Device.F_DeviceKindIndex=2 order by F_SerialNumber asc ";
dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count > 0)
{
CurDeviceNextDev.Add(Convert.ToInt32(dvRoute[0]["F_DeviceIndex"]));
CurDeviceNextDev.Add(Convert.ToInt32(dvRoute[0]["F_DeviceKindIndex"]));
CurDeviceNextDev.Add(Convert.ToInt32(dvRoute[0]["F_SerialNumber"]));
CurDeviceNextDev.Add(Convert.ToInt32(dvRoute[0]["F_DeviceOrder"]));
}
return CurDeviceNextDev;
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetCurConveyorNextDevice:" + ex.Message;
return null;
}
finally
{
CurDeviceNextDev=null;
dvRoute = null;
sql =null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺؼ<C4B9><D8BC><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͣ<EFBFBD>2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="CurRouteID">·<><C2B7>ID</param>
/// <param name="CurSerialNumber">·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
static List<int> GetNextKeyDevice(int CurRouteIDSub, int CurSerialNumber)
{
List<int> keyDevice = new List<int>(); DataView dvRoute; DataView dv; string sql;
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6><CFB1><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>ؼ<EFBFBD><D8BC>
dv = dbo.ExceSQL("SELECT F_SerialNumber, T_Base_Device.F_DeviceIndex,F_DeviceOrder,F_DeviceKindIndex FROM T_Base_Device," +
"T_Base_Route_Device where T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex " +
" and F_RouteIDSub=" + CurRouteIDSub + " and F_SerialNumber=" + CurSerialNumber
+ " and F_KeyDevice = '1'").Tables[0].DefaultView;
if (dv.Count > 0)
{
keyDevice.Add(Convert.ToInt32(dv[0]["F_DeviceIndex"]));
keyDevice.Add(Convert.ToInt32(dv[0]["F_DeviceKindIndex"]));
keyDevice.Add(Convert.ToInt32(dv[0]["F_SerialNumber"]));
keyDevice.Add(Convert.ToInt32(dv[0]["F_DeviceOrder"]));
return keyDevice;
}
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ĺؼ<C4B9><D8BC>
sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device_Command.F_DeviceCommandIndex,T_Base_Device.F_DeviceKindIndex FROM T_Base_Device_Command " +
",T_Base_Device,T_Base_Route_Device where T_Base_Device_Command.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex" +
" and T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
CurRouteIDSub + " and F_SerialNumber > " + CurSerialNumber + " and T_Base_Device.F_KeyDevice = '1' order by F_SerialNumber asc ";
dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count > 0)
{
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceKindIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_SerialNumber"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceOrder"]));
}
return keyDevice;
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetNextKeyDevice:" + ex.Message;
return null;
}
finally
{
keyDevice=null;
dvRoute = null;
dv = null;
sql = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ͣ<EFBFBD>2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="CurRouteID">·<><C2B7>ID</param>
/// <param name="CurSerialNumber">·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
public static List<int> GetNextDevice(int CurRouteIDSub, int CurSerialNumber)
{
List<int> keyDevice = new List<int>(); DataView dvRoute; string sql;
try
{
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device_Command.F_DeviceCommandIndex,T_Base_Device.F_DeviceKindIndex FROM T_Base_Device_Command " +
",T_Base_Device,T_Base_Route_Device where T_Base_Device_Command.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex" +
" and T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
CurRouteIDSub + " and F_SerialNumber > " + CurSerialNumber + " order by F_SerialNumber asc ";
dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count > 0)
{
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceKindIndex"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_SerialNumber"]));
keyDevice.Add(Convert.ToInt32(dvRoute[0]["F_DeviceOrder"]));
}
return keyDevice;
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetNextDevice:" + ex.Message;
return null;
}
finally
{
keyDevice=null;
dvRoute = null;
sql = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD>
/// </summary>
/// <param name="Mankind"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="ManFID"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="IOType"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3A9>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>⣨ȡ<E2A3A8><C8A1><EFBFBD><EFBFBD><EAA3A9>3<EFBFBD><33><EFBFBD>ƿ⣨ȡ<E2A3A8><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩</param>
/// <returns></returns>
static int[] GetAGVAddressFromManage(int Mankind, int ManFID, DataRowView drv)
{
int[] stackCoo = new int[6] { 0, 0, 0, 0, 0, 0 };//ȡ<><C8A1>-<2D><>-<2D>㣨Z-X-Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D>㣨Z-X-Y<><59>
string sql = string.Empty ;
char[] cc = new char[1] { '-' };
string[] split = new string[3];
DataView dv;
try
{
switch (Convert.ToInt32(drv["FCONTROLTASKTYPE"]))
{
case 1://<2F><><EFBFBD>⣬ȡ<E2A3AC><C8A1><EFBFBD><EFBFBD><EAA3BA>̨վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣺·<EAA3BA><C2B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
sql = "SELECT FSTARTCELL,FSTARTDEVICE,FENDDEVICE FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
stackCoo[0] = 0;
stackCoo[1] =Convert.ToInt32(dv[0]["FSTARTCELL"]);
stackCoo[2] = 0;
stackCoo[3] = 0;
stackCoo[4] = 0;
stackCoo[5] = 0;
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV<47><56><EFBFBD>꣡";
return null;
}
break;
case 2://<2F><><EFBFBD>⣺ȡ<E2A3BA><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>豸ȡ<E8B1B8><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3BA>̨վ̨
sql = "SELECT FENDCELL,FENDDEVICE FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
stackCoo[0] = 0;
stackCoo[1] = 0;
stackCoo[2] = 0;
stackCoo[3] = 0;
stackCoo[4] = Convert.ToInt32(dv[0]["FENDCELL"]);
stackCoo[5] = 0;
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV<47><56><EFBFBD>꣡";
return null;
}
break;
default:
break;
case 3://<2F>ƿ⣬ȡ<E2A3AC><C8A1><EFBFBD><EFBFBD><EAA3BA>̨վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣺·<EAA3BA><C2B7><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
sql = "SELECT FSTARTCELL,FSTARTDEVICE,FENDCELL,FENDDEVICE FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
stackCoo[0] = 0;
if (Information.IsNumeric(dv[0]["FSTARTCELL"])==true)
{
stackCoo[1] = Convert.ToInt32(dv[0]["FSTARTCELL"]);
}
else
{
stackCoo[1] = 0;
}
stackCoo[2] = 0;
stackCoo[3] = 0;
if(Information.IsNumeric(dv[0]["FENDCELL"])==true)
{
stackCoo[4] = Convert.ToInt32(dv[0]["FENDCELL"]);
}
else
{
stackCoo[4] = 0;
}
stackCoo[5] = 0;
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV<47><56><EFBFBD>꣡";
return null;
}
break;
}
return stackCoo;
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetAGVAddressFromManage:" + ex.Message;
return null;
}
finally
{
stackCoo = null;
sql = null ;
cc = null ;
split =null ;
dv=null ;
}
}
/// <summary>
/// <20>ڱ<EFBFBD>T_Base_AGV_Gate<74><65><EFBFBD><EFBFBD>AGV<47><56>ַ
/// </summary>
/// <param name="devindex">AGV<47><56>ַ<EFBFBD><D6B7>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
static int GetAGVAddressFromAgvGate(int devindex)
{
DataView dv;
try
{
dv = dbo.ExceSQL("select * from T_Base_AGV_Gate where F_AGVGateDeviceIndex=" + devindex).Tables[0].DefaultView;
if (dv.Count > 0)
{
return Convert.ToInt32(dv[0]["F_Address"]);
}
else
{
return -1;
}
}
catch (Exception ex)
{
_DisassembleTaskError = "ControlSystem.CDisassembleTask.GetAGVAddressFromAgvGate:" + ex.Message;
return -1;
}
finally
{
dv = null;
}
}
/// <summary>
/// <20><><EFBFBD>öѶ<C3B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>-<2D><>-<2D>㣨Z-X-Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D>㣨Z-X-Y<><59>
/// </summary>
/// <param name="Mankind"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="ManFID"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="IOType"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA3A9>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>⣨ȡ<E2A3A8><C8A1><EFBFBD><EFBFBD><EAA3A9>3<EFBFBD><33><EFBFBD>ƿ⣨ȡ<E2A3A8><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩</param>
/// <returns></returns>
static int[] GetStackCoordinateFromManage(int Mankind, int ManFID,DataRowView drv)
{
int[] stackCoo = new int[6] { 0, 0, 0, 0, 0, 0 };//ȡ<><C8A1>-<2D><>-<2D>㣨Z-X-Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D>㣨Z-X-Y<><59>
string sql =string.Empty ;
char[] cc = new char[1] {'-' };
string[] split = new string[3];
DataView dv;
try
{
switch (Convert.ToInt32(drv["FCONTROLTASKTYPE"]))
{
case 1://<2F><><EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sql = "SELECT FENDCELL FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
split = dv[0]["FENDCELL"].ToString().Split(cc);
stackCoo[3] = Convert.ToInt32(split[0]);
stackCoo[4] = Convert.ToInt32(split[1]);
stackCoo[5] = Convert.ToInt32(split[2]);
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>öѶ<C3B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣡";
return null;
}
break;
case 2://<2F><><EFBFBD>⣬ȡ<E2A3AC><C8A1><EFBFBD><EFBFBD>
sql = "SELECT FSTARTCELL FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
split = dv[0]["FSTARTCELL"].ToString().Split(cc);
stackCoo[0] = Convert.ToInt32(split[0]);
stackCoo[1] = Convert.ToInt32(split[1]);
stackCoo[2] = Convert.ToInt32(split[2]);
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>öѶ<C3B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣡";
return null;
}
break;
case 3:
sql = "SELECT FSTARTCELL,FENDCELL FROM T_Manage_Task WHERE (FID = " + ManFID + ") AND (F_ManageTaskKindIndex = " + Mankind + ")";
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["FSTARTCELL"].ToString() != "-")
{
split = dv[0]["FSTARTCELL"].ToString().Split(cc);
stackCoo[0] = Convert.ToInt32(split[0]);
stackCoo[1] = Convert.ToInt32(split[1]);
stackCoo[2] = Convert.ToInt32(split[2]);
}
if (dv[0]["FENDCELL"].ToString() != "-")
{
split = dv[0]["FENDCELL"].ToString().Split(cc);
stackCoo[3] = Convert.ToInt32(split[0]);
stackCoo[4] = Convert.ToInt32(split[1]);
stackCoo[5] = Convert.ToInt32(split[2]);
}
}
else
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManageʱû<CAB1>ܴӵ<DCB4><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>öѶ<C3B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣡";
return null;
}
break;
default:
break;
}
return stackCoo;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromManage<67><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"+ex.Message ;
return null;
}
finally{
stackCoo = null;
sql = null;
cc = null ;
split=null ;
dv=null ;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><E8B1B8>Ӧ<EFBFBD>ĶѶ<C4B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>-<2D><>-<2D>㣨Z-X-Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D>㣨Z-X-Y<><59>
/// </summary>
/// <param name="devIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="ifGet"><3E>Ƿ<EFBFBD>ȡ<EFBFBD><C8A1></param>
/// <returns></returns>
static int[] GetStackCoordinateFromLaneGate(int stackIndex,int devIndex,bool ifGet)
{
char[] cc = new char[1] { '-' };//20100305
string[] split;
int[] rt = new int[6] { 0,0,0,0,0,0};
DataView dv;
int LaneWay = ccf.GetLaneWayFromLaneInfo(stackIndex);
try
{
dv = dbo.ExceSQL("select * from T_Base_Lane_Gate where F_LaneGateDeviceIndex=" + devIndex + " and F_LaneIndex="+LaneWay+"").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (ifGet == true)//ȡ<><C8A1><EFBFBD><EFBFBD>
{
//20100305
split = dv[0]["F_ZXY"].ToString().Split(cc);
rt[0] = Convert.ToInt32(split[0]);//<2F><>Z
rt[1] = Convert.ToInt32(split[1]);//<2F><>X
rt[2] = Convert.ToInt32(split[2]);//<2F><>Y
//20100305
}
else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//20100305
split = dv[0]["F_ZXY"].ToString().Split(cc);
rt[3] = Convert.ToInt32(split[0]);//<2F><>Z
rt[4] = Convert.ToInt32(split[1]);//<2F><>X
rt[5] = Convert.ToInt32(split[2]);//<2F><>Y
//20100305
}
}
return rt;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetStackCoordinateFromLaneGate:" + ex.Message;
return null;
}
finally
{
cc =null ;
split=null ;
rt =null ;
dv=null ;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ֵ
/// </summary>
/// <param name="devinx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
/// 20101118
static string GetBindingDeviceIndex(int devinx)
{
try
{
devinfo = Model.CGetInfo.GetDeviceInfo(devinx);
if (devinfo.BindingDevice == null) return "";
return devinfo.BindingDevice;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetBindingDeviceIndex:" + ex.Message;
return "";
}
finally
{
devinfo = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ֵ
/// </summary>
/// <param name="devinx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
/// 20101118
static string GetBindingDeviceIndexOut(int devinx)
{
try
{
devinfo = Model.CGetInfo.GetDeviceInfo(devinx);
if (devinfo.BindingDeviceOut == null)return "";
return devinfo.BindingDeviceOut;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetBindingDeviceIndexOut:" + ex.Message;
return "";
}
finally
{
devinfo = null;
}
}
/// <summary>
///<2F><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>źŶ<C5BA>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A8><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD>ȣ<EFBFBD><C8A3><EFBFBD>
/// <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>ʹ<EFBFBD>÷ֺš<D6BA>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ӹ<EFBFBD><D3B8>š<EFBFBD>-<2D><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ֵΪ<D6B5><CEAA>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
/// </summary>
/// <param name="devinx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
static string GetBeDetectedDevices(int devinx)
{
try
{
devinfo = Model.CGetInfo.GetDeviceInfo(devinx);
return devinfo.BeDetected;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetBeDetectedDevices:" + ex.Message;
return null ;
}
finally
{
devinfo = null;
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ͻ<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><E7BFAA><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/// </summary>
/// <param name="devinx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
/// 20101118
static string GetSendOutDetect(int devinx)
{
try
{
devinfo = Model.CGetInfo.GetDeviceInfo(devinx);
if (devinfo.SendOutDetect == null || devinfo.SendOutDetect =="0") return "";//20101018
return devinfo.SendOutDetect;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetSendOutDetect:" + ex.Message;
return "";
}
finally
{
devinfo = null;
}
}
/// <summary>
/// ˫<><CBAB><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ƿ<EFBFBD><C7B7><EFBFBD>̽<EFBFBD>
/// </summary>
/// <param name="devinx"></param>
/// <returns></returns>
static int GetDoubleForkDetect(int devinx)
{
try
{
devinfo = Model.CGetInfo.GetDeviceInfo(devinx);
return Convert.ToInt32(devinfo.DoubleForkDetect);
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetSendOutDetect:" + ex.Message;
return 0;
}
finally
{
devinfo = null;
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>߼<EFBFBD><DFBC>л<EFBFBD>
/// </summary>
/// <param name="devinx"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
static string GetIfHaveGoods(int devinx)
{
string sql =string.Empty;
DataView db;
try
{
sql = "SELECT F_HaveGoods FROM T_Base_Device WHERE (F_DeviceIndex = " + devinx + ") and F_HaveGoods is not null";
db = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (db.Count > 0)
{
return db[0]["F_HaveGoods"].ToString();
}
else
return "";
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetIfHaveGoods:" + ex.Message;
return "";
}
finally
{
db = null;
sql = null;
}
}
/// <summary>
///
/// </summary>
/// <param name="devidx">RGV<47><56>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="IfGet"><3E>Ƿ<EFBFBD><C7B7>ǽӻ<C7BD></param>
/// <returns></returns>
static int GetRGVOrder(int devidx,bool IfGet)
{//<2F><>2-<2D><><EFBFBD>ӻ<EFBFBD>3-<2D><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>4-<2D>ҽӻ<D2BD>5-<2D><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
int order = 0;
DataView dv;
try
{
dv = dbo.ExceSQL("SELECT F_IFChannelLeft, F_RGVGateDeviceIndex" +
" FROM T_Base_RGV_Gate WHERE (F_RGVGateDeviceIndex = " + devidx + ")").Tables[0].DefaultView;
if (dv.Count > 0)
{
if (dv[0]["F_IFChannelLeft"].ToString() == "1")
{
if (IfGet == true)
{
order = 2;
}
else
{
order = 3;
}
}
else
{
if (IfGet == true)
{
order = 4;
}
else
{
order = 5;
}
}
}
return order;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetRGVOrder:" + ex.Message;
return 0;
}
finally
{
dv = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>AGV<47><56>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD><E8B1B8>Ϣ
/// 20090625
/// </summary>
/// <param name="CurRouteIDSub">·<><C2B7><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD></param>
/// <param name="CurSerialNumber">AGV<47><EFBFBD><E8B1B8>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
static List<int> GetAGVPriorDevice(int CurRouteIDSub, int CurSerialNumber)
{
List<int> Device = new List<int>();
try
{
string sql = "SELECT T_Base_Route_Device.F_DeviceIndex,F_DeviceOrder, T_Base_Route_Device.F_SerialNumber, " +
"T_Base_Device_Command.F_DeviceCommandIndex,T_Base_Device.F_DeviceKindIndex FROM T_Base_Device_Kind,T_Base_Device_Command " +
",T_Base_Device,T_Base_Route_Device where T_Base_Device_Command.F_DeviceKindIndex = T_Base_Device.F_DeviceKindIndex" +
" and T_Base_Device_Kind.F_DeviceKindIndex = T_Base_Device_Command.F_DeviceKindIndex and T_Base_Device.F_DeviceIndex = T_Base_Route_Device.F_DeviceIndex and F_RouteIDSub=" +
CurRouteIDSub + " and F_SerialNumber < " + CurSerialNumber + " and F_GoodsMoveKindIndex=1 order by F_SerialNumber desc ";
DataView dvRoute = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvRoute.Count > 0)
{
Device.Add(Convert.ToInt32(dvRoute[0]["F_DeviceIndex"]));
Device.Add(Convert.ToInt32(dvRoute[0]["F_DeviceKindIndex"]));
Device.Add(Convert.ToInt32(dvRoute[0]["F_SerialNumber"]));
Device.Add(Convert.ToInt32(dvRoute[0]["F_DeviceOrder"]));
}
return Device;
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.GetAGVPriorDevice:" + ex.Message;
return null;
}
finally
{
Device=null ;
}
}
/// <summary>
/// <20>жϵ<D0B6><CFB5>ȱ<EFBFBD>T_Monitor_Task<73>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="Mankind"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="ManFID"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <param name="Order"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns></returns>
static bool DeviceAndOrderExitInMonitor(int Mankind, int ManFID, int DeviceIndex,int Order,int ArrowAddress)
{
DataView dv;string sql=string.Empty ;
try
{
if (Order == -1) return true;
switch (ccf.GetDeviceKindIdx(DeviceIndex))
{
case 1://<2F>Ѷ<EFBFBD><D1B6><EFBFBD>
sql = "SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManFID + ")" +
" AND (F_ManageTASKKINDINDEX = " + Mankind + ") AND (F_DeviceIndex = " + DeviceIndex + ")" +
" AND (F_DeviceCommandIndex = " + Order + ")";
break;
case 2://<2F><><EFBFBD>ͻ<EFBFBD>
sql = "SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManFID + ")" +
" AND (F_ManageTASKKINDINDEX = " + Mankind + ") AND (F_DeviceIndex = " + DeviceIndex + ")" +
" AND (F_DeviceCommandIndex = " + Order + ")";
break;
case 4://RGV
sql = "SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManFID + ")" +
" AND (F_ManageTASKKINDINDEX = " + Mankind + ") AND (F_DeviceIndex = " + DeviceIndex + ")" +
" AND (F_DeviceCommandIndex = " + Order + ") and F_NumParam1=" + ArrowAddress + "";
break;
case 6://AGV
sql = "SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManFID + ")" +
" AND (F_ManageTASKKINDINDEX = " + Mankind + ") AND (F_DeviceIndex = " + DeviceIndex + ")" +
" AND (F_DeviceCommandIndex = " + Order + ")";
break;
default:
sql = "SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = " + ManFID + ")" +
" AND (F_ManageTASKKINDINDEX = " + Mankind + ") AND (F_DeviceIndex = " + DeviceIndex + ")" +
" AND (F_DeviceCommandIndex = " + Order + ")";
break;
}
dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.DeviceAndOrderExitInMonitor:" + ex.Message;
return false;
}
finally
{
dv = null;
sql = null;
}
}
/// <summary>
/// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>̵Ĺؼ<C4B9><D8BC><EFBFBD><E8B1B8>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A3AC><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>ǰһ<C7B0><D2BB>λ<EFBFBD>ã<EFBFBD><C3A3>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򣩵<EFBFBD><F2A3A9B5><EFBFBD><EFBFBD>ͻ<EFBFBD> ( <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>)
/// </summary>
/// <param name="prirorDevice"><3E>ؼ<EFBFBD><D8BC><EFBFBD><E8B1B8>ǰһ<C7B0><D2BB><EFBFBD>豸</param>
/// <param name="prirorKeydevice"><3E>ؼ<EFBFBD><D8BC>豸</param>
/// <returns></returns>
static List<int> NewCurDevice(List<int> prirorDevice, List<int> prirorKeydevice)
{//0<><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>;2:·<><C2B7><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
try
{
if ((prirorKeydevice.Count > 0) && (prirorDevice.Count > 0))
{
DataView dv = dbo.ExceSQL("SELECT F_GoodsMoveKindIndex, F_DeviceKindIndex FROM T_Base_Device_Kind WHERE " +
"(F_DeviceKindIndex = " + prirorKeydevice[1] + ") and (F_GoodsMoveKindIndex=2)").Tables[0].DefaultView;
if (dv.Count > 0)
{
return prirorDevice;
}
else
{
return null;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
DisassembleTaskError = "ControlSystem.CDisassembleTask.NewCurDevice:" + ex.Message;
return null;
}
finally
{
prirorDevice=null;
prirorKeydevice=null;
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>վ̨<D5BE><CCA8>ͬʱ<CDAC>޸ĵ<DEB8><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>״̬
/// </summary>
/// <param name="dr">T_Manage_Task<73><6B><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼</param>
/// <returns></returns>
public static void GetUsableDestination(DataRowView dr)
{
//ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<DEB8><C4B5><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
if (dr["F_ManageTaskKindIndex"].ToString() != "1") return ;
//20100108<30><38><EFBFBD><EFBFBD><E2B5B9>ָ<EFBFBD><EFBFBD><EEB2BB><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
//if ((dr["FENDDEVICE"].ToString() == "1219") || (dr["FENDDEVICE"].ToString() == "1203")
// || (dr["FENDDEVICE"].ToString() == "1205") || (dr["FENDDEVICE"].ToString() == "2203")
// || (dr["FENDDEVICE"].ToString() == "2212")) return;
string sql = string.Empty ;
string adviceDev = string.Empty;
//20100610<31><30><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><D9B5>յ<EFBFBD><D5B5>
Dictionary<int, int> advDev = new Dictionary<int, int>();
object ob;
//20091107
DataView dvIO = dboM.ExceSQL("select CONTROL_ID, CONTROL_STATUS from IO_Control where (CONTROL_ID = " + Convert.ToInt32(dr["FID"]) + ") AND ((CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEAPPLY + ") or (CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEREPLY + "))").Tables[0].DefaultView;
if (dvIO.Count <= 0)
{
DataTable dtd = dbo.ExceSQL("SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_TASKKIND = " + dr["FCONTROLTASKTYPE"] + ") and (F_AbendStation=1) and (F_DESTINATION=" + dr["FENDDEVICE"] + ")").Tables[0];
if (dtd.Rows.Count > 0)//ԭ<><D4AD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>Ӧ<EFBFBD><D3A6>վ̨<D5BE><CCA8>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ̨<D5BE><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ı<EFBFBD>
{
adviceDev = dtd.Rows[0]["F_DESTINATION"].ToString();
//20091005
return;
}
else
{
//<2F><><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD><CEBB>
DataTable dt = dbo.ExceSQL("SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_TASKKIND = " + dr["FCONTROLTASKTYPE"] + ") and (F_DESTINATION <>" + dr["FENDDEVICE"] + ") and (F_AbendStation=0)").Tables[0];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (CDisassembleTask.MinRouteID(Convert.ToInt32(dr["FSTARTDEVICE"]), Convert.ToInt32(dt.Rows[i]["F_DESTINATION"]), dr["FUseAwayFork"]) != -1)
{
//20100610ͳ<30>Ƶ<EFBFBD><C6B5>յ<EFBFBD><D5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ob = dbo.GetSingle("SELECT count(FENDDEVICE) as counts FROM T_Manage_Task where FENDDEVICE='" + dt.Rows[i]["F_DESTINATION"] + "' and fstatus>0");
advDev.Add(Convert.ToInt32(dt.Rows[i]["F_DESTINATION"]), Convert.ToInt32(ob));
//20100610 adviceDev = dt.Rows[i]["F_DESTINATION"].ToString();
//break;
}
}
if (advDev.Count == 0)//20100610
{
return;
}
else
{//20100610
int mincount = 9999;
foreach (int aaa in advDev.Keys)
{
if (advDev[aaa] < mincount)
{
mincount = advDev[aaa];
adviceDev = aaa.ToString();
}
}
if (adviceDev == "")
{
return;
}
}
}
else
{
return;
}
}
//DataView DV = dboM.ExceSQL("select IO_CONTROL_APPLY_SEQ.NEXTVAL FROM DUAL").Tables[0].DefaultView;
//20101108int fid = dboM.GetManageTableIndex("IO_CONTROL_APPLY");
string dtime = DateTime.Now.ToString("u");
dtime = dtime.Substring(0, dtime.Length - 1);
//20091128
dboM.TransBegin();
try
{
dboM.ExceSQL(" update IO_CONTROL set CONTROL_STATUS=" + Model.CGeneralFunction.TASKALTERROUTEAPPLY + " where CONTROL_ID=" + dr["FID"] + "");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>//20101108CONTROL_APPLY_ID," + fid + ",
sql = "INSERT INTO IO_CONTROL_APPLY ( CONTROL_ID,CONTROL_APPLY_TYPE,WAREHOUSE_CODE, STOCK_BARCODE, DEVICE_CODE, APPLY_TASK_STATUS, CREATE_TIME, " +
" CONTROL_APPLY_REMARK)" +
"VALUES (" + dr["FID"] + ",2,'" + dr["FSTARTWAREHOUSE"] + "','" + dr["FPALLETBARCODE"] + "','" + adviceDev + "',0,'" + dtime + "',null)";
dboM.ExceSQL(sql);
dboM.TransCommit();
//<2F>޸ĵ<DEB8><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>״̬
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dr["FID"]) + ") AND (F_ManageTASKKINDINDEX =1)");
}
catch (Exception ex)
{
_DisassembleTaskError = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
dboM.TransRollback();
}
}
}
public static void CreateRelativeMonitor(int manKind, int FID)
{
int relativeFID = -1;
DataView dv; DataView dvs;
try
{
dv = dbo.ExceSQL("SELECT F_RELATIVECONTORLID FROM T_Manage_Task WHERE (FID = " + FID + ") AND (F_ManageTaskKindIndex = " + manKind + ") and (F_RELATIVECONTORLID<>-1)").Tables[0].DefaultView;
if (dv.Count > 0)
{
relativeFID = Convert.ToInt32(dv[0]["F_RELATIVECONTORLID"]);
}
else
{
dv = dbo.ExceSQL("SELECT FID FROM T_Manage_Task WHERE (F_RELATIVECONTORLID = " + FID + ") AND (F_ManageTaskKindIndex = " + manKind + ") ").Tables[0].DefaultView;
if (dv.Count > 0)
{
relativeFID = Convert.ToInt32(dv[0]["FID"]);
}
else
{
return ;
}
}
//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ˲<DAB4><CBB2><EFBFBD>20100323
//<2F><>ȡ˫<C8A1><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD>CreateMonitor
if (relativeFID != -1)
{
dvs = dbo.ExceSQL("SELECT T_Manage_Task.* FROM T_Manage_Task WHERE (FID = " + relativeFID + ") AND (F_ManageTaskKindIndex = " + manKind + ") and (FIntoStepOK=0)").Tables[0].DefaultView;
if (dvs.Count > 0)
{
int minrid = MinRouteID(Convert.ToInt32(dvs[0]["FSTARTDEVICE"]), Convert.ToInt32(dvs[0]["FENDDEVICE"]), dvs[0]["FUseAwayFork"]);
if (minrid != -1)
{
if (CreateMonitor(manKind, relativeFID, minrid, dvs[0], 0) > 0)
{
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>޸<EFBFBD>T_Manage_Task<73><6B>FIntoStepOK=1
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='1' where FID=" + dvs[0]["FID"]
+ " and F_ManageTaskKindIndex=" + dvs[0]["F_ManageTaskKindIndex"]);
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
dv = null;
}
}
/// <summary>
/// <20>ҵ<EFBFBD>һ<EFBFBD><D2BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>޸Ĺ<DEB8><C4B9><EFBFBD><EFBFBD><EFBFBD>ϵ
/// </summary>
/// <param name="dr"></param>
public static void GetOutDoubleForkTask(DataRowView dr)
{//sqlser<65><72> SUBSTRING(express1,1<><31>ʼ,2);C#<23><>.Substring(0<><30>ʼ, 2)
if (dr["F_RELATIVECONTORLID"].ToString() != "-1") return;
int forwlimitX = 0, backlimitX = 0;
DataView dv = dbo.ExceSQL("SELECT F_ForwardLimitX, F_BackLimitX FROM T_Base_LaneInfo WHERE (F_LaneDeviceIndex = " + dr["FLANEWAY"] + ")").Tables[0].DefaultView;
if (dv.Count > 0)
{
forwlimitX=Convert.ToInt32(dv[0]["F_ForwardLimitX"]);
backlimitX = Convert.ToInt32(dv[0]["F_BackLimitX"]);
}
else
return;
string sqladd = string.Empty ;
if (forwlimitX.ToString() == dr["FStartCol"].ToString())
{
sqladd = " and FStartCol <>" + forwlimitX + " ";
}
else if (backlimitX.ToString() == dr["FStartCol"].ToString())
{
sqladd = " and FStartCol <>" + backlimitX + " ";
}
else
{
sqladd = " ";
}
//<2F>е<EFBFBD><D0B5>ٶ<EFBFBD><D9B6>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ٶȵ<D9B6>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>IJ<EFBFBD>ֵҪ<D6B5><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><E0B5B1><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>е<EFBFBD>ʱ<EFBFBD>
string sql = "SELECT TOP 1 F_ManageTaskKindIndex, FID, MIN(POWER(FStartCol - " + dr["FStartCol"] + ", 2) + POWER((FStartLayer - " +
dr["FStartLayer"] + ") * 3, 2)) AS Expr1 FROM T_Manage_Task WHERE (FIntoStepOK = '0') AND " +
"(FSTATUS = 0) AND (FCONTROLTASKTYPE = " + dr["FCONTROLTASKTYPE"] + ") AND (FLOGIC_AREA = '" + dr["FLOGIC_AREA"] +
"') AND (FCONTORL_BATCH = '" + dr["FCONTORL_BATCH"] + "') AND (FLANEWAY = " + dr["FLANEWAY"] +
") AND (F_RELATIVECONTORLID = - 1) and F_ManageTaskKindIndex=" + dr["F_ManageTaskKindIndex"] + " and FID<>"+dr["fid"]+
sqladd + " GROUP BY F_ManageTaskKindIndex, FID order by Expr1 asc";
dv=dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dv.Count > 0)
{
dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID="+dv[0]["FID"]+" where FID="+dr["fid"]+" and F_ManageTaskKindIndex=" + dr["F_ManageTaskKindIndex"] );
dbo.ExecuteSql("update T_Manage_Task set F_RELATIVECONTORLID=" + dr["fid"] + " where FID=" + dv[0]["FID"] + " and F_ManageTaskKindIndex=" + dv[0]["F_ManageTaskKindIndex"]);
}
else
{
return;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="ManFID"></param>
/// <returns></returns>
static int unpacktype(int ManFID )
{
DataView dv= dbo.ExceSQL("select * from t_manage_task where fid =" + ManFID).Tables[0].DefaultView;
if (dv.Count <= 0)
{
return -1;
}
else
{
string unpacknum = string.Empty;
if (dv[0]["FPALLETBARCODE"] == DBNull.Value )
{
return 7;
}
else
{
unpacknum = dv[0]["FPALLETBARCODE"].ToString();
if (unpacknum == "-" || unpacknum ==string.Empty)
{
return 7;
}
if ((unpacknum.Substring(7, 2) == "03") )
{
return 8;
}
else
{
return 7;
}
}
}
}
static int GetManageHandIdx()
{
DataSet ds = dbo.ExceSQL("SELECT F_ManageTaskKindIndex, max(FID) as mFID FROM T_Manage_Task Where F_ManageTaskKindIndex=4 group by F_ManageTaskKindIndex");
if (ds.Tables[0].DefaultView.Count > 0)
{
return (Convert.ToInt32(ds.Tables[0].DefaultView[0]["mFID"]) + 1);
}
else
{
DataSet dss = dbo.ExceSQL("SELECT F_ManageTaskIndex FROM T_Base_Manage_Task_Index_Hand_Task");
if (dss.Tables[0].DefaultView.Count > 0)
{
if ((Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1) >= 29998)
{
return 20001;
}
else
{
return (Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1);
}
}
else
{
return 20001;
}
}
}
}
}