using System ;
using System.Collections.Generic ;
using System.Text ;
using System.Data ;
using DBFactory ;
using System.Threading ;
using Microsoft.VisualBasic ;
using CommonLib ;
using ICommLayer ;
using System.ServiceModel ;
using System.Security.Cryptography ;
namespace WcfControlMonitorLib
{
/// <summary>
/// Creator:Richard.liu
/// ��ȡ��������
/// </summary>
public static class CObtainTask
{
public static event CUpdateDBEventHandler UpdateDB ;
public static void OnUpdateDB ( CUpdateDBChangeEventArgs e )
{
if ( UpdateDB ! = null )
{
UpdateDB ( null , e ) ;
}
}
public static event CDataSourceChangeEventHandler DataChange ;
public static void OnDataChange ( object sender , CDataChangeEventArgs e )
{
if ( DataChange ! = null )
{
DataChange ( sender , e ) ;
}
}
public static event RefreshMonitorEventHandler RefreshMonitor ;
public static void OnRefreshMonitor ( RefreshMonitorEventArgs e )
{
if ( RefreshMonitor ! = null )
{
RefreshMonitor ( e ) ;
}
}
static ISendDeviceOrder sdo ;
static StringBuilder [ ] wv = { new StringBuilder ( "2" ) } ;
static StringBuilder [ ] witemnames = { new StringBuilder ( "" ) } ;
static CGetState cgs = new CGetState ( ) ;
static CCommonFunction ccf = new CCommonFunction ( ) ;
static Thread mythread ;
static bool exitThread = false ; //20091107
static object lockThis = new object ( ) ;
static Model . MDevice devinfo ;
static StringBuilder sbs = new StringBuilder ( ) ;
static StringBuilder temp = new StringBuilder ( ) ;
static string stacklane = "12001,12007,12014,12020,12027,12033,12040,12046,12053,12060,12069,12076,12085,12092,12101,12202,12204,12206,12208,12210,12212,12240,12247,12256,12263,12272,12279,12288,12295,12304,12311,12550,12720,24101,24108,24109,24110,24102,24111,24103,24104,24112,24105,24113,24106,24114,24107" ;
public static HashSet < string > hashSet = new HashSet < string > ( ) ; //����ί�л�ѹ����20240726����
private static void BeginListenObtainTask ( )
{ //20091107
while ( ! exitThread )
{
try
{
lock ( lockThis )
{
GetManagerTask ( ) ;
}
}
catch ( Exception ex )
{
throw ex ;
}
finally
{
Thread . Sleep ( 1 0 0 0 ) ;
}
}
}
public static void EndListenObtainTask ( )
{ //20091107
exitThread = true ;
if ( mythread ! = null )
{
dbo . Close ( ) ;
dboM . Close ( ) ;
mythread . Abort ( ) ;
mythread = null ;
}
}
public static void StartListenObtainTask ( )
{
exitThread = false ;
mythread = new Thread ( new ThreadStart ( BeginListenObtainTask ) ) ;
mythread . IsBackground = true ;
mythread . Start ( ) ;
}
static string _ CObtainTaskError = "" ;
public static string CObtainTaskError
{
get { return _ CObtainTaskError ; }
set { _ CObtainTaskError = value ;
RefreshMonitorEventArgs rme = new RefreshMonitorEventArgs ( "tsStatus" , _ CObtainTaskError ) ;
OnRefreshMonitor ( rme ) ;
}
}
static DBOperator dbo = new DBOperator ( ) ; // CStaticClass.dbo;
static DBOperator dboM = CStaticClass . dboM ; //20130510
/// <summary>
/// ���õ�������
/// </summary>
public static int GetManagerTask ( )
{
lock ( lockThis )
{
//�Ƿ�����ͬʱ��ȡIO_CONTROLDETAIL�������ݵ��������ݿ�
DataSet dsIOC = new DataSet ( ) ;
DataView dvIOC = new DataView ( ) ;
DataView dv = new DataView ( ) ;
DataView dvnew = new DataView ( ) ;
DataView dvmi = new DataView ( ) ;
DataView DMAN = new DataView ( ) ;
DataView dvc = new DataView ( ) ;
DataView dvCopy = new DataView ( ) ;
object obj = null ;
#region //���������Ƶij�����������ʼ��20151120
StringBuilder startWarehouse = new StringBuilder ( "" ) ;
StringBuilder startcell = new StringBuilder ( "" ) ;
StringBuilder endcell = new StringBuilder ( "" ) ;
StringBuilder notin = new StringBuilder ( "" ) ;
#endregion
try
{
int RecCount = 0 ;
//string tmpdt0 = DateTime.Now.ToString("u") + DateTime.Now.Millisecond.ToString();
#region ���������Ƶij����������Ȼ�ȡ
//dvc = dbo.ExceSQL("SELECT F_DeviceIndex,F_MAXCOUNT FROM T_Base_TaskCount where F_MAXCOUNT>0").Tables[0].DefaultView;
//for (int i = 0; i < dvc.Count; i++)
//{
// if (i == 0)
// {
// notin.Append(" and END_DEVICE_CODE not in ('").Append(dvc[i]["F_DeviceIndex"]).Append("'");
// }
// else
// {
// notin.Append(",'").Append(dvc[i]["F_DeviceIndex"]).Append("'");
// }
// int leftTask = 0;
// dvnew = dbo.ExceSQL(string.Format("SELECT count(fid) as fids FROM T_Manage_Task where FENDDEVICE='{0}'", dvc[i]["F_DeviceIndex"])).Tables[0].DefaultView;
// if (dvnew.Count > 0)
// {
// leftTask = Convert.ToInt32(dvc[i]["F_MAXCOUNT"]) - Convert.ToInt32(dvnew[0]["fids"]);
// }
// else
// {
// leftTask = Convert.ToInt32(dvc[i]["F_MAXCOUNT"]);
// }
// #region �����յ��豸�л����߲����еļ���
// int[] states = CStaticClass.GetDeviceState(Convert.ToInt32(dvc[i]["F_DeviceIndex"]));
// int state = 0;
// if (states != null)
// {
// state = states[1];
// }
// if (CStaticClass.GetDevicePhotoelectric(dvc[i]["F_DeviceIndex"].ToString() + ".0") == 1 || state != 0)
// {
// leftTask--;
// }
// #endregion
// #region ������վ̨�Ŀ�������������ȡ����
// if (leftTask > 0)
// {
// sbs.Clear();
// sbs.Append("select CONTROL_ID from IO_CONTROL where 1=1 ");
// sbs.Append(" and END_DEVICE_CODE='").Append(dvc[i]["F_DeviceIndex"]).Append("'");
// sbs.Append(" and CONTROL_STATUS=").Append(Model.CGeneralFunction.TASKWAIT.ToString());
// //sbs.Append(" and (START_DEVICE_CODE>='12001' and START_DEVICE_CODE<='42202') ");
// sbs.Append(" and (START_DEVICE_CODE not like '%-%') ");
// sbs.Append(" order by CONTROL_TASK_LEVEL desc,CONTROL_BATCH asc,CONTROL_BEGIN_TIME asc,CONTROL_ID asc ");
// dvIOC = dboM.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
// if (dvIOC.Count > 0)
// {
// ObtainDoubleForkTask(dvIOC[0]["CONTROL_ID"], "0");
// leftTask = leftTask - 1;
// }
// }
// #endregion
// if (leftTask > 0)
// {
// #region �����յ����������������ȴ�ִ�к�ִ������������С�������γ�������������
// dvnew = dbo.ExceSQL(string.Format("SELECT F_StartDevice,(SELECT COUNT(FID) FROM T_Manage_Task where FSTARTDEVICE=F_StartDevice) as aaa FROM T_Base_Route where F_EndDevice={0} and F_StartDevice = (select f_deviceindex from T_BASE_DEVICE where f_devicekindindex=10 and f_deviceindex=F_StartDevice) order by aaa asc,F_StartDevice", Convert.ToInt32(dvc[i]["F_DeviceIndex"]))).Tables[0].DefaultView;
// for (int xd = 0; xd < dvnew.Count; xd++)
// {
// //string tmpdt1 = DateTime.Now.ToString("u") + DateTime.Now.Millisecond.ToString();
// startcell.Clear(); endcell.Clear(); startWarehouse.Clear();
// dv = dbo.ExceSQL(string.Format("SELECT F_STARTCELL,F_ENDCELL,F_WAREHOUSE from T_BASE_LANEINFO where F_LANEDEVICEINDEX={0} ", dvnew[xd]["F_StartDevice"])).Tables[0].DefaultView;
// if (dv.Count > 0)
// {
// startcell.Append(dv[0]["F_STARTCELL"].ToString());
// startWarehouse.Append(dv[0]["F_WAREHOUSE"].ToString());
// endcell.Append(dv[0]["F_ENDCELL"].ToString());
// }
// else
// {
// startcell.Append("-");
// startWarehouse.Append("1");
// endcell.Append("-");
// }
// obj = dbo.GetSingle(string.Format("SELECT F_ForkAmount from T_Base_StackInfo where F_LaneNo like '%{0}%'", dvnew[xd]["F_StartDevice"]));
// int forkcount = 1;
// if (obj != null)
// {
// forkcount = Convert.ToInt32(obj);
// }
// sbs.Remove(0, sbs.Length);
// if (CStaticClass.ManDBFactory == "OracleDBFactory")
// {//20151120����ϵͳoracle����������
// sbs.Append("select CONTROL_ID,CONTROL_TASK_TYPE,START_DEVICE_CODE,START_WAREHOUSE_CODE from IO_CONTROL where ");
// sbs.Append(" CONTROL_STATUS=").Append(Model.CGeneralFunction.TASKWAIT.ToString());
// sbs.Append(" and START_WAREHOUSE_CODE='").Append(startWarehouse).Append("' ");
// sbs.Append(" and START_DEVICE_CODE>='").Append(startcell).Append("' ");
// sbs.Append(" and START_DEVICE_CODE<='").Append(endcell).Append("' ");
// sbs.Append(" and END_DEVICE_CODE='").Append(dvc[i]["F_DeviceIndex"]).Append("'");
// sbs.Append(" order by CONTROL_TASK_LEVEL desc,CONTROL_BATCH asc,CONTROL_BEGIN_TIME asc,CONTROL_ID asc OFFSET 0 ROWS FETCH NEXT ").Append(forkcount).Append(" ROWS ONLY");
// }
// else
// {
// sbs.Append("select top ").Append(forkcount).Append(" CONTROL_ID,CONTROL_TASK_TYPE,START_DEVICE_CODE,START_WAREHOUSE_CODE from IO_CONTROL where 1=1 ");
// sbs.Append(" and CONTROL_STATUS=").Append(Model.CGeneralFunction.TASKWAIT.ToString());
// sbs.Append(" and START_WAREHOUSE_CODE='").Append(startWarehouse).Append("' ");
// sbs.Append(" and START_DEVICE_CODE>='").Append(startcell).Append("' ");
// sbs.Append(" and START_DEVICE_CODE<='").Append(endcell).Append("' ");
// sbs.Append(" and END_DEVICE_CODE='").Append(dvc[i]["F_DeviceIndex"]).Append("'");
// sbs.Append(" order by CONTROL_TASK_LEVEL desc,CONTROL_BATCH asc,CONTROL_BEGIN_TIME asc,CONTROL_ID asc ");
// }
// dvIOC = dboM.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
// //string tmpdt2 = DateTime.Now.ToString("u") + DateTime.Now.Millisecond.ToString();
// for (int inew = 0; inew < dvIOC.Count; inew++)
// {
// #region 20230815richard.liu��̨����������������Զ��λ����ʱ�����Ƿ��н���λ������ �������Ȼ�ȡ
// if (Convert.ToInt32(dvIOC[inew]["CONTROL_TASK_TYPE"]) == 2)
// {
// object slaneway = dbo.GetSingle(string.Format("select flaneway from ST_CELL where fcellcode='{0}' and FWAREHOUSE='{1}'", dvIOC[inew]["START_DEVICE_CODE"], dvIOC[inew]["START_WAREHOUSE_CODE"]));
// if (slaneway != null)
// {
// int wmsZ = Convert.ToInt32(Convert.ToString(dvIOC[inew]["START_DEVICE_CODE"]).Substring(0, 2));
// StringBuilder sql = new StringBuilder();
// sql.Append("select F_SENDZ from T_BASE_SENDROW WHERE F_WMSZ=").Append(wmsZ).Append(" and F_LANENO= ").Append(slaneway);
// object SENDZ = dbo.GetSingle(sql.ToString());//1,2,3,4
// if (SENDZ != null)
// {
// int tempZ = Convert.ToInt32(SENDZ);
// StringBuilder newcode =new StringBuilder("");
// if (tempZ== 4)
// {
// newcode.Append(string.Format("{0:D2}", wmsZ - 1) + Convert.ToString(dvIOC[inew]["START_DEVICE_CODE"]).Substring(2, 6));
// }
// else if (tempZ== 1)
// {
// if (Convert.ToInt32(dbo.GetSingle("select count(0) from T_BASE_SENDROW where F_LANENO=" + slaneway)) > 2)//�ж�Ϊ˫��
// {
// newcode.Append(string.Format("{0:D2}", wmsZ + 1) + Convert.ToString(dvIOC[inew]["START_DEVICE_CODE"]).Substring(2, 6));
// }
// }
// sbs.Remove(0, sbs.Length);
// sbs.Append("select * from IO_CONTROL where (CONTROL_STATUS= 0) and START_WAREHOUSE_CODE='").Append(dvIOC[inew]["START_WAREHOUSE_CODE"]).Append("' and START_DEVICE_CODE = '").Append(newcode).Append("'");
// dvCopy = dboM.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
// if (dvCopy.Count > 0)
// {
// ObtainDoubleForkTask(dvCopy[0]["CONTROL_ID"], "0");
// }
// }
// }
// }
// #endregion
// ObtainDoubleForkTask(dvIOC[inew]["CONTROL_ID"], "0");
// }
// leftTask = leftTask - dvIOC.Count;
// if (leftTask <= 0) break;
// }
// #endregion
// }
//}
////string tmpdt3 = DateTime.Now.ToString("u") + DateTime.Now.Millisecond.ToString();
//if (dvc.Count > 0)
//{
// notin.Append(")");
//}
#endregion
#region ѯ�������仺�油�����̻�����
//������ѯ�������仺�油�����̻�����
//if (1 == 0)//���������������仺��
{
DataView dvbcT ; DataView dvbcTT ; DataView dvbcTTT ;
dvbcT = dbo . ExceSQL ( String . Format ( "select * from T_BASE_HORT where status = 0" ) ) . Tables [ 0 ] . DefaultView ; //������
for ( int i = 0 ; i < dvbcT . Count ; i + + )
{
if ( Convert . ToInt32 ( dvbcT [ i ] [ "have_flag" ] ) = = 1 ) //�л�
{
StringBuilder barcodeT = new StringBuilder ( ) ;
try
{
dvbcTTT = dbo . ExceSQL ( String . Format ( "select * from T_Manage_Task where FSTARTDEVICE = {0} AND FSTATUS = 0" , Convert . ToInt32 ( dvbcT [ i ] [ "f_device_index" ] ) ) ) . Tables [ 0 ] . DefaultView ;
if ( dvbcTTT . Count < = 0 )
{
dvbcTT = dbo . ExceSQL ( String . Format ( "select * from T_Manage_Task where FENDDEVICE = {1}" , Convert . ToInt32 ( dvbcT [ i ] [ "f_device_index" ] ) , Convert . ToInt32 ( dvbcT [ i ] [ "order_n" ] ) ) ) . Tables [ 0 ] . DefaultView ;
if ( dvbcTT . Count < = 0 )
{
int tempFid1 = ccf . GetTempManageIdx ( ) ;
barcodeT . Clear ( ) ;
barcodeT . Append ( tempFid1 . ToString ( ) ) ;
object [ ] obt = new object [ 1 8 ] { tempFid1 , 2 , barcodeT . ToString ( ) , 1 , 4 , 1 , 1 , ccf . GetWarehouseIndex ( ) , ccf . GetWarehouseIndex ( ) , "-" , Convert . ToInt32 ( dvbcT [ i ] [ "f_device_index" ] ) , Convert . ToInt32 ( dvbcT [ i ] [ "order_n" ] ) , "-" , 0 , DateTime . Now . ToString ( "u" ) , 0 , Model . CGeneralFunction . TASKABEND , 0 } ;
dbo . ExceSQL ( string . Format ( "INSERT INTO T_Manage_Task(FID, F_ManageTaskKindIndex,FPALLETBARCODE,FMANAGETASKTYPE,FCONTROLTASKTYPE, FTASKLEVEL, FISRETURN,FSTARTWAREHOUSE,FENDWAREHOUSE, FSTARTCELL, FSTARTDEVICE, FENDDEVICE, FENDCELL, FSTATUS, FBEGTIME, FIntoStepOK,FExceptionNO,FLOGIC_AREA)VALUES({0},{1},'{2}',{3},{4},{5},{6},'{7}','{8}','{9}',{10},{11},'{12}',{13},'{14}','{15}',{16},{17})" , obt ) ) ;
CommonClassLib . CCarryConvert . WriteDarkCasket ( "OPCClient" , "�������������������̶��л���ֱ������վ̨���ƿ�����" , Convert . ToString ( dvbcT [ i ] [ "f_device_index" ] ) , Convert . ToInt32 ( dvbcT [ i ] [ "order_n" ] ) . ToString ( ) ) ;
}
//����������
dbo . ExecuteSql ( string . Format ( "UPDATE T_BASE_HORT SET status =1 WHERE (order_n = {0}) " , Convert . ToInt32 ( dvbcT [ i ] [ "order_n" ] ) ) ) ;
CommonClassLib . CCarryConvert . WriteDarkCasket ( "OPCClient" , "�������������������̶���������״̬Ϊ1" , Convert . ToString ( dvbcT [ i ] [ "order_n" ] ) , Convert . ToString ( dvbcT [ i ] [ "f_device_index" ] ) ) ;
break ;
}
else
{
}
}
catch ( Exception ex )
{
RefreshMonitorEventArgs rmea = new RefreshMonitorEventArgs ( "tsStatus" , "SControlMonitor.ִ���������䲹�����̶�ʱ" + ex . StackTrace + ex . Message ) ;
OnRefreshMonitor ( rmea ) ;
continue ;
}
CommonClassLib . CCarryConvert . WriteDarkCasket ( "OPCClient" , "���������������̶������ƿ�����" , Convert . ToString ( dvbcT [ i ] [ "f_device_index" ] ) , Convert . ToInt32 ( dvbcT [ i ] [ "order_n" ] ) . ToString ( ) ) ;
}
}
}
#endregion
#region ��ȡ����������֮��������
sbs . Remove ( 0 , sbs . Length ) ; //��ȡ����������֮��������
sbs . Append ( "select * from IO_CONTROL where ((CONTROL_STATUS=" ) ;
sbs . Append ( Model . CGeneralFunction . TASKWAIT . ToString ( ) ) ;
sbs . Append ( ") or (CONTROL_STATUS=" ) . Append ( Model . CGeneralFunction . TASKSINGLEFORKRUN . ToString ( ) ) . Append ( ") or (CONTROL_STATUS=" ) ;
sbs . Append ( Model . CGeneralFunction . TASKALTERROUTEREPLY . ToString ( ) ) ;
sbs . Append ( ")) " ) . Append ( " " ) . Append ( notin ) ;
sbs . Append ( " order by CONTROL_TASK_LEVEL desc,CONTROL_BATCH asc,CONTROL_BEGIN_TIME asc,CONTROL_ID asc" ) ; //20151120
dsIOC = dboM . ExceSQL ( sbs . ToString ( ) ) ;
dvIOC = dsIOC . Tables [ 0 ] . DefaultView ;
if ( dvIOC . Count > 0 )
{
string FENDCELL = "" ; char [ ] cc = new char [ 1 ] { '-' } ;
int FENDDEVICE = 0 ;
int temponecount12202 = 0 ; int temponecount12001 = 0 ; int temponecount12007 = 0 ; int temponecount12014 = 0 ; int temponecount12020 = 0 ; int temponecount12027 = 0 ; int temponecount12033 = 0 ; int temponecount12040 = 0 ; int temponecount12046 = 0 ; int temponecount12053 = 0 ;
int temponecount12060 = 0 ; int temponecount12069 = 0 ; int temponecount12076 = 0 ; int temponecount12085 = 0 ; int temponecount12092 = 0 ; int temponecount12101 = 0 ; int temponecount12204 = 0 ; int temponecount12206 = 0 ; int temponecount12208 = 0 ; int temponecount12210 = 0 ;
int temponecount12212 = 0 ; int temponecount12240 = 0 ; int temponecount12247 = 0 ; int temponecount12256 = 0 ; int temponecount12263 = 0 ; int temponecount12272 = 0 ; int temponecount12279 = 0 ; int temponecount12288 = 0 ; int temponecount12295 = 0 ; int temponecount12304 = 0 ;
int temponecount12311 = 0 ; int temponecount12550 = 0 ; int temponecount12720 = 0 ; int temponecount24101 = 0 ; int temponecount24108 = 0 ; int temponecount24109 = 0 ; int temponecount24110 = 0 ; int temponecount24102 = 0 ; int temponecount24111 = 0 ; int temponecount24103 = 0 ;
int temponecount24104 = 0 ; int temponecount24112 = 0 ; int temponecount24105 = 0 ; int temponecount24113 = 0 ; int temponecount24106 = 0 ; int temponecount24114 = 0 ; int temponecount24115 = 0 ; int temponecount24107 = 0 ;
for ( int i = 0 ; i < dvIOC . Count ; i + + )
{
#region ������ͣ�ͻָ�
////20091128
//if ((dvIOC[i]["CONTROL_STATUS"].ToString() == "0") && (dvIOC[i]["CONTROL_ISRETURN"].ToString() == "3"))
//{//�����ָ�
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK=0 where (FID = " + Convert.ToInt32(dvIOC[i]["FID"]) + ") AND (F_ManageTASKKINDINDEX =1) and (FIntoStepOK='-')");
// dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// continue;
//}
//if ((dvIOC[i]["CONTROL_STATUS"].ToString() == "0") && (dvIOC[i]["CONTROL_ISRETURN"].ToString() == "2"))
//{ //δ���ֵ�������ͣ
// int rs = dbo.ExecuteSql("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) and (FIntoStepOK='0')");
// if (rs == 0)
// {
// //�Ѳ���δִ�е�������ͣ
// dvMT = dbo.ExceSQL("select fid from T_Manage_Task where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) and (FIntoStepOK='1') and (FSTATUS=0)").Tables[0].DefaultView;
// if (dvMT.Count > 0)
// {
// dbo.ExceSQL("delete from T_Monitor_Task where (F_ManageTaskIndex= " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// }
// }
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// continue;
//}
//else
//{
// //�ϱ�����FSTATUS=940
// #region ����ִ�е�������ͣ
// if (dvIOC[i]["CONTROL_ISRETURN"].ToString() == "2")
// {
// //����ִ�е�������ͣ
// dvMT = dbo.ExceSQL("select fid from T_Manage_Task where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) and (FIntoStepOK='1') and (FSTATUS>0)").Tables[0].DefaultView;
// if (dvMT.Count > 0)
// {
// //ֻ����ͣ���������еĶѶ������ͻ�ָ����ߡ��ȴ�ִ�еĶѶ����ͻ�ָ������ͻ�����ͣ
// dvMT = dbo.ExceSQL("select F_MonitorIndex,F_Status,F_DeviceIndex,F_DeviceCommandIndex from T_Monitor_Task where (F_ManageTaskIndex= " +
// Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) order by F_MonitorIndex asc").Tables[0].DefaultView;
// if (dvMT.Count > 0)
// {
// if (ccf.GetDeviceKindIdx(Convert.ToInt32(dvMT[0]["F_DeviceIndex"])) == 1)
// {
// if ((dvMT[0]["F_DeviceCommandIndex"].ToString() == "5") && (Convert.ToInt32(dvMT[0]["F_Status"]) == 0))
// {//�ȴ�ִ�еĶѶ����ͻ�ָ�����Ըĵ�ԭ��λ
// dbo.ExceSQL("update T_Manage_Task set FExceptionNO='940' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// dbo.ExceSQL("update T_Monitor_Task set F_AheadDetect='',F_NumParam4=F_NumParam1,F_NumParam5=F_NumParam2,F_NumParam6=F_NumParam3 where F_MonitorIndex=" + dvMT[0]["F_MonitorIndex"]);
// dbo.ExceSQL("update T_Monitor_Task set F_Status=-1 where F_MonitorIndex>" + dvMT[0]["F_MonitorIndex"]
// + " and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// dvMT = dbo.ExceSQL("select * from T_Monitor_Task where F_Status=-1 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// for (int ii = 0; ii < dvMT.Count; ii++)
// {
// cgs.ActionComplete(Convert.ToInt32(dvMT[ii]["F_DeviceIndex"]), Convert.ToInt32(dvMT[ii]["F_MonitorIndex"]), 900);
// }
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// else if (dvMT[0]["F_DeviceCommandIndex"].ToString() == "2")
// {//����ִ�жѶ�����ȡָ�����������ȡ�����ȴ�ִ�еĶѶ�����ȡָ���ͺ���������ȡ��
// dbo.ExceSQL("update T_Manage_Task set FExceptionNO='940' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// dbo.ExceSQL("update T_Monitor_Task set F_Status=-1 where F_MonitorIndex>=" + dvMT[0]["F_MonitorIndex"]
// + " and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// dvMT = dbo.ExceSQL("select * from T_Monitor_Task where F_MonitorIndex>=" + dvMT[0]["F_MonitorIndex"]
// + " and F_Status=-1 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// for (int ii = 0; ii < dvMT.Count; ii++)
// {
// cgs.ActionComplete(Convert.ToInt32(dvMT[ii]["F_DeviceIndex"]), Convert.ToInt32(dvMT[ii]["F_MonitorIndex"]), 900);
// }
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// else if (dvMT[0]["F_DeviceCommandIndex"].ToString() == "4")
// {//����ִ�жѶ���ȡ��ָ��������ĵ�ԭ��λ���ȴ�ִ�еĶѶ���ȡ��ָ���ͺ���������ȡ��
// dbo.ExceSQL("update T_Manage_Task set FExceptionNO='940' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// if (Convert.ToInt32(dvMT[0]["F_Status"]) >= 1)
// {
// dbo.ExceSQL("update T_Monitor_Task set F_AheadDetect='',F_NumParam4=F_NumParam1,F_NumParam5=F_NumParam2,F_NumParam6=F_NumParam3 where F_MonitorIndex>" +
// dvMT[0]["F_MonitorIndex"] + " and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// //ɾ���ͻ�֮�������ͻ�����
// dvSend = dbo.ExceSQL("select F_MonitorIndex from T_Monitor_Task where F_DeviceIndex=" + dvMT[0]["F_DeviceIndex"]
// + " and F_DeviceCommandIndex=5 and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// if (dvSend.Count > 0)
// {
// dbo.ExceSQL("update T_Monitor_Task set F_Status=-1 where F_MonitorIndex>" + dvSend[0]["F_MonitorIndex"]
// + " and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// dvMT = dbo.ExceSQL("select * from T_Monitor_Task where F_MonitorIndex>" + dvSend[0]["F_MonitorIndex"]
// + " and F_Status=-1 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// for (int ii = 0; ii < dvMT.Count; ii++)
// {
// cgs.ActionComplete(Convert.ToInt32(dvMT[ii]["F_DeviceIndex"]), Convert.ToInt32(dvMT[ii]["F_MonitorIndex"]), 900);
// }
// }
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// else if (dvMT[0]["F_Status"].ToString() == "0")
// {
// dbo.ExceSQL("update T_Monitor_Task set F_Status=-1 where F_MonitorIndex>=" + dvMT[0]["F_MonitorIndex"]
// + " and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// dvMT = dbo.ExceSQL("select * from T_Monitor_Task where F_MonitorIndex>=" + dvMT[0]["F_MonitorIndex"]
// + " and F_Status=-1 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["FID"])).Tables[0].DefaultView;
// for (int ii = 0; ii < dvMT.Count; ii++)
// {
// cgs.ActionComplete(Convert.ToInt32(dvMT[ii]["F_DeviceIndex"]), Convert.ToInt32(dvMT[ii]["F_MonitorIndex"]), 900);
// }
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// }
// else if (dvMT[0]["F_DeviceCommandIndex"].ToString() == "3")
// {//����ִ�жѶ�������ָ��������ĵ�ԭ��λ���ȴ�ִ�еĶѶ�������ָ���ͺ������ĵ�ԭ��λ
// dbo.ExceSQL("update T_Manage_Task set FExceptionNO='940' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// if (dvMT[0]["F_Status"].ToString() == "0")
// {
// dbo.ExceSQL("update T_Monitor_Task set F_AheadDetect='',F_NumParam4=F_NumParam1,F_NumParam5=F_NumParam2,F_NumParam6=F_NumParam3 where F_MonitorIndex>=" +
// dvMT[0]["F_MonitorIndex"] + " and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// else if (Convert.ToInt32(dvMT[0]["F_Status"]) >= 1)
// {
// dbo.ExceSQL("update T_Monitor_Task set F_AheadDetect='',F_NumParam4=F_NumParam1,F_NumParam5=F_NumParam2,F_NumParam6=F_NumParam3 where F_MonitorIndex>" +
// dvMT[0]["F_MonitorIndex"] + " and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// //dboM.ExceSQL("update IO_CONTROL set CONTROL_ISRETURN=0 where CONTROL_ID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// }
// //ɾ���ͻ�֮�������ͻ�����
// dvSend = dbo.ExceSQL("select F_MonitorIndex from T_Monitor_Task where F_DeviceIndex=" + dvMT[0]["F_DeviceIndex"]
// + " and F_DeviceCommandIndex=5 and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// if (dvSend.Count > 0)
// {
// dbo.ExceSQL("update T_Monitor_Task set F_Status=-1 where F_MonitorIndex>" + dvSend[0]["F_MonitorIndex"]
// + " and F_Status=0 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
// dvMT = dbo.ExceSQL("select * from T_Monitor_Task where F_MonitorIndex>" + dvSend[0]["F_MonitorIndex"]
// + " and F_Status=-1 and F_ManageTASKKINDINDEX=1 and F_ManageTaskIndex=" + Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Tables[0].DefaultView;
// for (int ii = 0; ii < dvMT.Count; ii++)
// {
// cgs.ActionComplete(Convert.ToInt32(dvMT[ii]["F_DeviceIndex"]), Convert.ToInt32(dvMT[ii]["F_MonitorIndex"]), 900);
// }
// }
// dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='-' where (FID = " + Convert.ToInt32(dvIOC[i]["CONTROL_ID"]) + ") AND (F_ManageTASKKINDINDEX =1) ");
// }
// }
// continue;
// }
// }
// }
// #endregion
//}
#endregion
bool UseOldRoute = false ;
#region ������
if ( ( dvIOC [ i ] [ "CONTROL_STATUS" ] . ToString ( ) = = Model . CGeneralFunction . TASKWAIT . ToString ( ) ) | | ( dvIOC [ i ] [ "CONTROL_STATUS" ] . ToString ( ) = = Model . CGeneralFunction . TASKSINGLEFORKRUN . ToString ( ) ) )
{
bool Ifobtain = true ;
#region ��������
if ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] ) = = 2 )
{
DataView dvsptaskcount = new DataView ( ) ; DataView dvOutCount1 = new DataView ( ) ;
dvsptaskcount = dbo . ExceSQL ( string . Format ( "select f_deviceindex,f_maxcount from T_BASE_TASKCOUNT where f_deviceindex = {0}" , Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) ) ) . Tables [ 0 ] . DefaultView ;
int tempcount = 1 0 0 0 ;
if ( dvsptaskcount . Count > 0 )
{
if ( Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) = = Convert . ToInt32 ( dvsptaskcount [ 0 ] [ "f_deviceindex" ] ) )
{
Model . MDevice devinfoX = Model . CGetInfo . GetDeviceInfo ( Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FSTATUS FROM T_Manage_Task where FENDDEVICE = '" ) . Append ( Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) ) . Append ( "'" ) ;
dvOutCount1 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
tempcount = 1 0 0 0 ;
if ( Convert . ToInt32 ( dvsptaskcount [ 0 ] [ "f_maxcount" ] ) < tempcount )
{
tempcount = Convert . ToInt32 ( dvsptaskcount [ 0 ] [ "f_maxcount" ] ) ;
}
if ( stacklane . IndexOf ( Convert . ToString ( dvIOC [ i ] [ "end_device_code" ] ) ) > = 0 )
{
switch ( Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) )
{
case 1 2 2 0 2 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12202 > = tempcount )
{
Ifobtain = false ;
}
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FStack FROM ST_CELL where FCELLCODE='" ) ;
sbs . Append ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) . Append ( "' and FWAREHOUSE='" ) . Append ( dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] ) . Append ( "'" ) ;
DataView dvOutCount12202 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvOutCount12202 . Count > 0 )
{
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FSTATUS FROM T_Manage_Task where FSTATUS = 0 and FENDDEVICE = 12202 and fstartdevice = " ) . Append ( Convert . ToString ( dvOutCount12202 [ 0 ] [ "FLaneWay" ] ) ) ;
dvOutCount12202 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvOutCount12202 . Count > 1 )
{
Ifobtain = false ;
}
}
break ;
case 1 2 0 0 1 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12001 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 0 7 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12007 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 1 4 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12014 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 2 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12020 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 2 7 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12027 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 3 3 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12033 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 4 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12040 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 4 6 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12046 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 5 3 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12053 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 6 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12060 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 6 9 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12069 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 7 6 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12076 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 8 5 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12085 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 0 9 2 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12092 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 1 0 1 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12101 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 0 4 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12204 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 0 6 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12206 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 0 8 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12208 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 1 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12210 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 1 2 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12212 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 4 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12240 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 4 7 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12247 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 5 6 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12256 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 6 3 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12263 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 7 2 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12272 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 7 9 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12279 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 8 8 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12288 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 2 9 5 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12295 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 3 0 4 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12304 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 3 1 1 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12311 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 5 5 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12550 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 1 2 7 2 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount12720 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 1 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24101 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 8 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24108 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 9 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24109 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 1 0 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24110 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 2 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24102 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 1 1 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24111 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 3 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24103 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 4 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24104 > = tempcount )
{
Ifobtain = false ;
}
break ;
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24112 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 5 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24105 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 1 3 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24113 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 6 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24106 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 1 4 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24114 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 1 5 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24115 > = tempcount )
{
Ifobtain = false ;
}
break ;
case 2 4 1 0 7 :
if ( devinfoX . SplitByte_0 + dvOutCount1 . Count + temponecount24107 > = tempcount )
{
Ifobtain = false ;
}
break ;
}
}
}
}
}
DataView dvOutCount22128 = new DataView ( ) ;
if ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22128" )
{
Model . MDevice devinfo22128 ;
devinfo22128 = Model . CGetInfo . GetDeviceInfo ( 2 2 1 2 8 ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FSTATUS FROM T_Manage_Task where FENDDEVICE='" ) . Append ( 2 2 1 2 8 ) . Append ( "'" ) ;
dvOutCount22128 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( devinfo22128 . SplitByte_0 + dvOutCount22128 . Count > = 1 & & dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22128" )
{
Ifobtain = false ;
}
}
DataView dvOutCount22130 = new DataView ( ) ;
if ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22130" )
{
Model . MDevice devinfo22130 ;
devinfo22130 = Model . CGetInfo . GetDeviceInfo ( 2 2 1 3 0 ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FSTATUS FROM T_Manage_Task where FENDDEVICE='" ) . Append ( 2 2 1 3 0 ) . Append ( "'" ) ;
dvOutCount22130 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( devinfo22130 . SplitByte_0 + dvOutCount22128 . Count > = 1 & & dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22130" )
{
Ifobtain = false ;
}
}
DataView dvOutCount22155 = new DataView ( ) ;
if ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22155" )
{
Model . MDevice devinfo22155 ;
devinfo22155 = Model . CGetInfo . GetDeviceInfo ( 2 2 1 5 5 ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FSTATUS FROM T_Manage_Task where FENDDEVICE='" ) . Append ( 2 2 1 5 5 ) . Append ( "'" ) ;
dvOutCount22155 = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( devinfo22155 . SplitByte_0 + dvOutCount22155 . Count > = 1 & & dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) = = "22155" )
{
Ifobtain = false ;
}
}
#endregion
#region 20120906�ж��Ƿ��Ǽ���һ¥��������һ����������������������ʱһ����ȡ
//StringBuilder[] relBarcodes = GetRelativeBarCodes(dvIOC[i]["START_DEVICE_CODE"].ToString(), dvIOC[i]["STOCK_BARCODE"].ToString());
int [ ] relFID = null ;
//if (relBarcodes != null)
//{
// relFID = new int[relBarcodes.GetLength(0)];
// int ri = 0; int tep = 0;
// for (int j = 0; j < relBarcodes.GetLength(0); j++)
// {
// tep = GetIOControlFromBarcode(relBarcodes[j]);
// if (tep <= 0)
// {
// Ifobtain = false;
// }
// else
// {
// relFID[ri] = tep;
// ri++;
// }
// }
//}
#endregion
if ( Ifobtain = = true )
{ //20120906ȫ����ȡ����һ��������������
if ( relFID ! = null )
{
for ( int j = 0 ; j < relFID . GetLength ( 0 ) ; j + + )
{
ObtainDoubleForkTask ( relFID [ j ] , "0" ) ;
}
}
#region 20230815richard.liu��̨����������������Զ��λ����ʱ�����Ƿ��н���λ������ �������Ȼ�ȡ
if ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] ) = = 2 )
{
object slaneway = dbo . GetSingle ( string . Format ( "select flaneway from ST_CELL where fcellcode='{0}' and FWAREHOUSE='{1}'" , dvIOC [ i ] [ "START_DEVICE_CODE" ] , dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] ) ) ;
if ( slaneway ! = null )
{
int wmsZ = Convert . ToInt32 ( Convert . ToString ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) . Substring ( 0 , 2 ) ) ;
StringBuilder sql = new StringBuilder ( ) ;
sql . Append ( "select F_SENDZ from T_BASE_SENDROW WHERE F_WMSZ=" ) . Append ( wmsZ ) . Append ( " and F_LANENO= " ) . Append ( slaneway ) ;
object SENDZ = dbo . GetSingle ( sql . ToString ( ) ) ; //1,2,3,4
if ( SENDZ ! = null )
{
int tempZ = Convert . ToInt32 ( SENDZ ) ;
StringBuilder newcode = new StringBuilder ( "" ) ;
if ( tempZ = = 4 )
{
newcode . Append ( string . Format ( "{0:D2}" , wmsZ - 1 ) + Convert . ToString ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) . Substring ( 2 , 6 ) ) ;
}
else if ( tempZ = = 1 )
{
if ( Convert . ToInt32 ( dbo . GetSingle ( "select count(0) from T_BASE_SENDROW where F_LANENO=" + slaneway ) ) > 2 ) //�ж�Ϊ˫��
{
newcode . Append ( string . Format ( "{0:D2}" , wmsZ + 1 ) + Convert . ToString ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) . Substring ( 2 , 6 ) ) ;
}
}
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "select * from IO_CONTROL where (CONTROL_STATUS= 0) and START_WAREHOUSE_CODE='" ) . Append ( dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] ) . Append ( "' and START_DEVICE_CODE = '" ) . Append ( newcode ) . Append ( "'" ) ;
dvCopy = dboM . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvCopy . Count > 0 )
{
ObtainDoubleForkTask ( dvCopy [ 0 ] [ "CONTROL_ID" ] , "0" ) ;
if ( stacklane . IndexOf ( Convert . ToString ( dvCopy [ 0 ] [ "end_device_code" ] ) ) > = 0 )
{
switch ( Convert . ToInt32 ( dvCopy [ 0 ] [ "end_device_code" ] ) )
{
case 1 2 2 0 2 :
temponecount12202 + + ;
break ;
case 1 2 0 0 1 :
temponecount12001 + + ;
break ;
case 1 2 0 0 7 :
temponecount12007 + + ;
break ;
case 1 2 0 1 4 :
temponecount12014 + + ;
break ;
case 1 2 0 2 0 :
temponecount12020 + + ;
break ;
case 1 2 0 2 7 :
temponecount12027 + + ;
break ;
case 1 2 0 3 3 :
temponecount12033 + + ;
break ;
case 1 2 0 4 0 :
temponecount12040 + + ;
break ;
case 1 2 0 4 6 :
temponecount12046 + + ;
break ;
case 1 2 0 5 3 :
temponecount12053 + + ;
break ;
case 1 2 0 6 0 :
temponecount12060 + + ;
break ;
case 1 2 0 6 9 :
temponecount12069 + + ;
break ;
case 1 2 0 7 6 :
temponecount12076 + + ;
break ;
case 1 2 0 8 5 :
temponecount12085 + + ;
break ;
case 1 2 0 9 2 :
temponecount12092 + + ;
break ;
case 1 2 1 0 1 :
temponecount12101 + + ;
break ;
case 1 2 2 0 4 :
temponecount12204 + + ;
break ;
case 1 2 2 0 6 :
temponecount12206 + + ;
break ;
case 1 2 2 0 8 :
temponecount12208 + + ;
break ;
case 1 2 2 1 0 :
temponecount12210 + + ;
break ;
case 1 2 2 1 2 :
temponecount12212 + + ;
break ;
case 1 2 2 4 0 :
temponecount12240 + + ;
break ;
case 1 2 2 4 7 :
temponecount12247 + + ;
break ;
case 1 2 2 5 6 :
temponecount12256 + + ;
break ;
case 1 2 2 6 3 :
temponecount12263 + + ;
break ;
case 1 2 2 7 2 :
temponecount12272 + + ;
break ;
case 1 2 2 7 9 :
temponecount12279 + + ;
break ;
case 1 2 2 8 8 :
temponecount12288 + + ;
break ;
case 1 2 2 9 5 :
temponecount12295 + + ;
break ;
case 1 2 3 0 4 :
temponecount12304 + + ;
break ;
case 1 2 3 1 1 :
temponecount12311 + + ;
break ;
case 1 2 5 5 0 :
temponecount12550 + + ;
break ;
case 1 2 7 2 0 :
temponecount12720 + + ;
break ;
case 2 4 1 0 1 :
temponecount24101 + + ;
break ;
case 2 4 1 0 8 :
temponecount24108 + + ;
break ;
case 2 4 1 0 9 :
temponecount24109 + + ;
break ;
case 2 4 1 1 0 :
temponecount24110 + + ;
break ;
case 2 4 1 0 2 :
temponecount24102 + + ;
break ;
case 2 4 1 1 1 :
temponecount24111 + + ;
break ;
case 2 4 1 0 3 :
temponecount24103 + + ;
break ;
case 2 4 1 0 4 :
temponecount24104 + + ;
break ;
case 2 4 1 1 2 :
temponecount24112 + + ;
break ;
case 2 4 1 0 5 :
temponecount24105 + + ;
break ;
case 2 4 1 1 3 :
temponecount24113 + + ;
break ;
case 2 4 1 0 6 :
temponecount24106 + + ;
break ;
case 2 4 1 1 4 :
temponecount24114 + + ;
break ;
case 2 4 1 1 5 :
temponecount24115 + + ;
break ;
case 2 4 1 0 7 :
temponecount24107 + + ;
break ;
}
}
}
}
}
}
#endregion
ObtainDoubleForkTask ( dvIOC [ i ] [ "CONTROL_ID" ] , "0" ) ;
if ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] ) = = 2 )
{
if ( stacklane . IndexOf ( Convert . ToString ( dvIOC [ i ] [ "end_device_code" ] ) ) > = 0 )
{
switch ( Convert . ToInt32 ( dvIOC [ i ] [ "end_device_code" ] ) )
{
case 1 2 2 0 2 :
temponecount12202 + + ;
break ;
case 1 2 0 0 1 :
temponecount12001 + + ;
break ;
case 1 2 0 0 7 :
temponecount12007 + + ;
break ;
case 1 2 0 1 4 :
temponecount12014 + + ;
break ;
case 1 2 0 2 0 :
temponecount12020 + + ;
break ;
case 1 2 0 2 7 :
temponecount12027 + + ;
break ;
case 1 2 0 3 3 :
temponecount12033 + + ;
break ;
case 1 2 0 4 0 :
temponecount12040 + + ;
break ;
case 1 2 0 4 6 :
temponecount12046 + + ;
break ;
case 1 2 0 5 3 :
temponecount12053 + + ;
break ;
case 1 2 0 6 0 :
temponecount12060 + + ;
break ;
case 1 2 0 6 9 :
temponecount12069 + + ;
break ;
case 1 2 0 7 6 :
temponecount12076 + + ;
break ;
case 1 2 0 8 5 :
temponecount12085 + + ;
break ;
case 1 2 0 9 2 :
temponecount12092 + + ;
break ;
case 1 2 1 0 1 :
temponecount12101 + + ;
break ;
case 1 2 2 0 4 :
temponecount12204 + + ;
break ;
case 1 2 2 0 6 :
temponecount12206 + + ;
break ;
case 1 2 2 0 8 :
temponecount12208 + + ;
break ;
case 1 2 2 1 0 :
temponecount12210 + + ;
break ;
case 1 2 2 1 2 :
temponecount12212 + + ;
break ;
case 1 2 2 4 0 :
temponecount12240 + + ;
break ;
case 1 2 2 4 7 :
temponecount12247 + + ;
break ;
case 1 2 2 5 6 :
temponecount12256 + + ;
break ;
case 1 2 2 6 3 :
temponecount12263 + + ;
break ;
case 1 2 2 7 2 :
temponecount12272 + + ;
break ;
case 1 2 2 7 9 :
temponecount12279 + + ;
break ;
case 1 2 2 8 8 :
temponecount12288 + + ;
break ;
case 1 2 2 9 5 :
temponecount12295 + + ;
break ;
case 1 2 3 0 4 :
temponecount12304 + + ;
break ;
case 1 2 3 1 1 :
temponecount12311 + + ;
break ;
case 1 2 5 5 0 :
temponecount12550 + + ;
break ;
case 1 2 7 2 0 :
temponecount12720 + + ;
break ;
case 2 4 1 0 1 :
temponecount24101 + + ;
break ;
case 2 4 1 0 8 :
temponecount24108 + + ;
break ;
case 2 4 1 0 9 :
temponecount24109 + + ;
break ;
case 2 4 1 1 0 :
temponecount24110 + + ;
break ;
case 2 4 1 0 2 :
temponecount24102 + + ;
break ;
case 2 4 1 1 1 :
temponecount24111 + + ;
break ;
case 2 4 1 0 3 :
temponecount24103 + + ;
break ;
case 2 4 1 0 4 :
temponecount24104 + + ;
break ;
case 2 4 1 1 2 :
temponecount24112 + + ;
break ;
case 2 4 1 0 5 :
temponecount24105 + + ;
break ;
case 2 4 1 1 3 :
temponecount24113 + + ;
break ;
case 2 4 1 0 6 :
temponecount24106 + + ;
break ;
case 2 4 1 1 4 :
temponecount24114 + + ;
break ;
case 2 4 1 1 5 :
temponecount24115 + + ;
break ;
case 2 4 1 0 7 :
temponecount24107 + + ;
break ;
}
}
}
string FUseAwayFork = "0" ;
if ( relFID ! = null )
{
for ( int j = 0 ; j < relFID . GetLength ( 0 ) ; j + + )
{ //20120906����һ¥������������
FUseAwayFork = GetFUseForkFromManage ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_ID" ] ) ) ; ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "update T_Manage_Task set FUseAwayFork=" ) . Append ( FUseAwayFork ) . Append ( ",F_RELATIVECONTORLID=" ) . Append ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_ID" ] ) ) . Append ( " where F_ManageTaskKindIndex=1" ) . Append ( " and FID=" ) . Append ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_ID" ] ) ) ;
//dbo.ExecuteSql(sbs.ToString());
CUpdateDBChangeEventArgs e = new CUpdateDBChangeEventArgs ( dbo , sbs ) ;
OnUpdateDB ( e ) ;
FUseAwayFork = GetFUseForkFromManage ( relFID [ j ] ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "update T_Manage_Task set FUseAwayFork=" ) . Append ( FUseAwayFork ) . Append ( ",F_RELATIVECONTORLID=" ) . Append ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_ID" ] ) ) . Append ( " where F_ManageTaskKindIndex=1" ) . Append ( " and FID=" ) . Append ( relFID [ j ] ) ;
//dbo.ExecuteSql(sbs.ToString());
e = new CUpdateDBChangeEventArgs ( dbo , sbs ) ;
OnUpdateDB ( e ) ;
}
}
RecCount + + ;
}
}
#endregion
#region ��·���Ĵ���
#endregion
}
if ( RecCount > 0 )
{
//��ʾ��������
CDataChangeEventArgs cea = new CDataChangeEventArgs ( null , null ) ;
OnDataChange ( "��ȡ����������" , cea ) ;
return RecCount ;
}
else
{
//_CObtainTaskError = "û�л����κε���������";
return 0 ;
}
}
else
{
//_CObtainTaskError = "��������û���´��µİ���������";
return 0 ;
}
#endregion
}
catch ( Exception ex )
{
CObtainTaskError = string . Format ( "���õ�������ʧ��,{0}��" , ex . StackTrace + ex . Message ) ;
//throw ex;
return 0 ;
}
finally
{
dsIOC . Dispose ( ) ;
dvIOC . Dispose ( ) ;
DMAN . Dispose ( ) ;
dv . Dispose ( ) ;
dvc . Dispose ( ) ;
dvmi . Dispose ( ) ;
dvnew . Dispose ( ) ;
}
}
}
public static int dealwithHash ( string operate , string sql ) //����ί�л�ѹ����20240726����
{
lock ( lockThis )
{
int a = 0 ;
try
{
if ( operate = = "add" )
{
hashSet . Add ( sql ) ;
a = 1 ;
}
if ( operate = = "remove" )
{
hashSet . Remove ( sql ) ;
a = 1 ;
}
if ( operate = = "find" )
{
if ( hashSet . Contains ( sql ) )
{
a = 1 ;
}
}
return a ;
}
catch
{
return 0 ;
}
}
}
private static string GetFUseForkFromManage ( int p )
{
DataView dv = new DataView ( ) ;
try
{
dv = dboM . ExceSQL ( string . Format ( "SELECT START_DEVICE_CODE FROM IO_CONTROL WHERE (CONTROL_ID ={0})" , p ) ) . Tables [ 0 ] . DefaultView ;
if ( dv . Count > 0 )
{
return dv [ 0 ] [ "START_DEVICE_CODE" ] . ToString ( ) . Trim ( ) . Substring ( 5 , 1 ) ;
}
else
{
return "0" ;
}
}
catch ( Exception ex )
{
CObtainTaskError = string . Format ( "��ȡ����ʱ�����������Ļ���GetFUseForkFromManage��{0}" , ex . StackTrace + ex . Message ) ;
return "0" ;
}
finally
{
dv . Dispose ( ) ;
}
}
static void RecordMaxManageTaskFID ( int fid )
{
//20101124
StringBuilder sql = new StringBuilder ( ) ;
DataSet ds = dbo . ExceSQL ( "select F_ManageTaskIndex from T_Base_Task_Index_Auto_Task" ) ;
DataView dv = ds . Tables [ 0 ] . DefaultView ;
if ( dv . Count > 0 )
{
if ( fid > Convert . ToInt32 ( dv [ 0 ] [ "F_ManageTaskIndex" ] ) )
{
//20101124
sql . Append ( "UPDATE T_Base_Task_Index_Auto_Task SET F_ManageTaskIndex =" ) . Append ( fid ) ;
//dbo.ExceSQL(sql.ToString());
CUpdateDBChangeEventArgs e = new CUpdateDBChangeEventArgs ( dbo , sql ) ;
OnUpdateDB ( e ) ;
}
}
else
{
//20101124
sql . Append ( "INSERT INTO T_Base_Task_Index_Auto_Task (F_ManageTaskIndex)VALUES (" ) . Append ( fid ) . Append ( ")" ) ;
//dbo.ExceSQL(sql.ToString());
CUpdateDBChangeEventArgs e = new CUpdateDBChangeEventArgs ( dbo , sql ) ;
OnUpdateDB ( e ) ;
}
}
/// <summary>
/// 20091005
/// ��ȡ���õ�Ŀ��λ�ã��������������߳���վ̨
/// </summary>
/// <param name="dr">T_Manage_Task�����м�¼</param>
/// <returns></returns>
public static void GetUsableDestination ( DataRowView dr )
{
//20100610����һ��·�����ã����������ٵ��յ��豸
Dictionary < int , int > advDev = new Dictionary < int , int > ( ) ;
object ob ;
//ֻ�������ĵ���������·�������ĵ����Զ�����·��
if ( dr [ "F_ManageTaskKindIndex" ] . ToString ( ) ! = "1" ) return ;
StringBuilder sql = new StringBuilder ( ) ; //20101124
string adviceDev = "" ;
sql . Append ( "SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_Warehouse='" ) . Append ( dr [ "FENDWAREHOUSE" ] ) . Append ( "') and (F_TASKKIND = " ) . Append ( dr [ "FCONTROLTASKTYPE" ] ) . Append ( ") and (F_AbendStation=1) and (F_DESTINATION=" ) . Append ( dr [ "FENDDEVICE" ] ) . Append ( ")" ) ; //20101124
DataTable dtd = dbo . ExceSQL ( sql . ToString ( ) ) . Tables [ 0 ] ; //20101124
if ( dtd . Rows . Count > 0 ) //ԭ���յ���Ӧ��վ̨��ô����������վ̨������Ҫ�ı�
{
adviceDev = dtd . Rows [ 0 ] [ "F_DESTINATION" ] . ToString ( ) ;
//20091005
return ;
}
else
{
//���ҿ���Ŀ��λ��
//20101124
sql . Remove ( 0 , sql . Length ) ;
sql . Append ( "SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_Warehouse='" ) . Append ( dr [ "FENDWAREHOUSE" ] ) . Append ( "') and (F_TASKKIND = " ) . Append ( dr [ "FCONTROLTASKTYPE" ] ) . Append ( ") and (F_DESTINATION !=" ) . Append ( dr [ "FENDDEVICE" ] ) . Append ( ") and (F_AbendStation=0)" ) ;
DataTable dt = dbo . ExceSQL ( sql . ToString ( ) ) . Tables [ 0 ] ;
//20101124
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ͳ�Ƶ��յ��豸����ִ�е�������
//20101124
sql . Remove ( 0 , sql . Length ) ;
sql . Append ( "SELECT count(FENDDEVICE) as counts FROM T_Manage_Task where FENDDEVICE='" ) . Append ( dt . Rows [ i ] [ "F_DESTINATION" ] ) . Append ( "' and fstatus>0" ) ;
ob = dbo . GetSingle ( sql . ToString ( ) ) ;
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 = 9 9 9 9 ;
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
{
//20101124
sql . Remove ( 0 , sql . Length ) ;
sql . Append ( " update IO_CONTROL set CONTROL_STATUS=" ) . Append ( Model . CGeneralFunction . TASKALTERROUTEAPPLY ) . Append ( " where CONTROL_ID=" ) . Append ( dr [ "FID" ] ) ;
dboM . ExceSQL ( sql . ToString ( ) ) ;
//����������������//
//20101124
int appid = dboM . GetManageTableIndex ( "IO_CONTROL_APPLY" , true ) ; //CONTROL_APPLY_ID
sql . Remove ( 0 , sql . Length ) ;
sql . Append ( "INSERT INTO IO_CONTROL_APPLY ( CONTROL_APPLY_ID,CONTROL_ID,CONTROL_APPLY_TYPE,WAREHOUSE_CODE, STOCK_BARCODE, DEVICE_CODE, APPLY_TASK_STATUS, CREATE_TIME, " ) ;
sql . Append ( " CONTROL_APPLY_REMARK)" ) . Append ( "VALUES (" ) . Append ( appid ) . Append ( "," ) . Append ( dr [ "FID" ] ) . Append ( ",2,'" ) . Append ( dr [ "FENDWAREHOUSE" ] ) . Append ( "','" ) . Append ( dr [ "FPALLETBARCODE" ] ) . Append ( "','" ) . Append ( adviceDev ) . Append ( "',0,'" ) . Append ( dtime ) . Append ( "',null)" ) ;
dboM . ExceSQL ( sql . ToString ( ) ) ;
dboM . TransCommit ( ) ;
//20091102�ĵ�������Ϊ���ɲ���״̬
//20101124
sql . Remove ( 0 , sql . Length ) ;
sql . Append ( "update T_Manage_Task set FIntoStepOK='-' where (FID = " ) . Append ( Convert . ToInt32 ( dr [ "FID" ] ) ) . Append ( ") AND (F_ManageTASKKINDINDEX =1)" ) ;
dbo . ExceSQL ( sql . ToString ( ) ) ;
CommonClassLib . CCarryConvert . WriteDarkCasket ( "CObtainTask.GetUsableDestination" , "��ȡ����ʱ�������������ĵ�" , "����������" + dr [ "FID" ] . ToString ( ) , "���룺" + dr [ "FPALLETBARCODE" ] . ToString ( ) . ToUpper ( ) ) ;
}
catch ( Exception ex )
{
CObtainTaskError = string . Format ( "��ȡ����ʱ�������������ĵ���{0}" , ex . StackTrace + ex . Message ) ;
dboM . TransRollback ( ) ;
}
}
public static bool IfDeleteOutTask ( int fid , int deleteflag )
{ //20101124
try
{
if ( 1 ! = deleteflag )
{
return false ;
}
StringBuilder strsql = new StringBuilder ( "select FIntoStepOK from T_Manage_Task where F_ManageTaskKindIndex=1 and FID= " ) ;
strsql . Append ( fid ) . Append ( " and FIntoStepOK != '1' " ) ;
DataView dv = dbo . ExceSQL ( strsql . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dv . Count > 0 )
{
strsql . Remove ( 0 , strsql . Length ) ;
strsql . Append ( "DELETE FROM T_Manage_Task WHERE (F_ManageTaskKindIndex = 1) AND (FID = " ) . Append ( fid ) . Append ( ")" ) ;
dbo . ExceSQL ( strsql . ToString ( ) ) ;
strsql . Remove ( 0 , strsql . Length ) ;
strsql . Append ( "update IO_Control set CONTROL_STATUS=" ) . Append ( Model . CGeneralFunction . TASKCANCEL ) . Append ( " where CONTROL_ID=" ) . Append ( fid ) ;
dboM . ExceSQL ( strsql . ToString ( ) ) ;
return true ;
}
else
{
return false ;
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// 20101028��ȡ����������ͬʱ������������Ӧ�÷����Ļ��棺�������ƹ��ɽ���Զ������������1,2,3,4;'-'����δ��������
/// </summary>
/// <param name="RelativeControlID">��������FID</param>
/// <param name="UseAwayFork">�Ƿ�ʹ��Զ���棬Ĭ��ֵ"-"</param>
/// <returns></returns>
static string ObtainDoubleForkTask ( object RelativeControlID , string UseAwayFork )
{
StringBuilder sbs = new StringBuilder ( ) ;
int i = 0 ;
DataView dvl ;
object obj = null ;
string FSTARTCELL = "" ; string FENDCELL = "" ; char [ ] cc = new char [ 1 ] { '-' } ;
int FSTARTDEVICE = 0 ; int FENDDEVICE = 0 ; int FSTARTUCODE = 0 ; int FENDUCODE = 0 ;
string LOGIC_AREA = string . Empty ;
string flaneway = "-1" ;
int stackno = - 1 ;
int FStartCol = 0 , FStartLayer = 0 , FEndCol = 0 , FEndLayer = 0 ;
try
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ; //20101208
sbs . Append ( "select * from IO_CONTROL where CONTROL_ID=" ) . Append ( RelativeControlID ) ;
DataView dvIOC = dboM . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvIOC . Count = = 0 ) return "-" ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT T_Base_Manage_Task_Kind.F_TaskKindIndex, " ) ;
sbs . Append ( "T_Manage_Task.F_ManageTaskKindIndex, T_Manage_Task.FID " ) ;
sbs . Append ( "FROM T_Base_Manage_Task_Kind , T_Manage_Task where " ) ;
sbs . Append ( "T_Base_Manage_Task_Kind.F_TaskKindIndex = T_Manage_Task.F_ManageTaskKindIndex " ) ;
sbs . Append ( " and T_Base_Manage_Task_Kind.F_TaskKindIndex=1 and T_Manage_Task.FID = " ) ;
sbs . Append ( RelativeControlID ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
//20101124
if ( dvl . Count > 0 ) // �Ѿ��������������¼�¼
{
return "-" ;
}
int a = 0 ;
if ( int . TryParse ( dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) , out a ) = = false )
{ //�����
//20101124
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FStack FROM ST_CELL where FCELLCODE='" ) ;
sbs . Append ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) . Append ( "' and FWAREHOUSE='" ) . Append ( dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
//20101124
if ( dvl . Count > 0 )
{
flaneway = dvl [ 0 ] [ "FLaneWay" ] . ToString ( ) ;
stackno = Convert . ToInt32 ( dvl [ 0 ] [ "FStack" ] ) ; //20101028
FStartCol = Convert . ToInt32 ( dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) . Substring ( 3 , 2 ) ) ;
FStartLayer = Convert . ToInt32 ( dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) . Substring ( 6 , 2 ) ) ;
}
}
else
{
if ( int . TryParse ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) , out a ) = = false )
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FStack FROM ST_CELL where FCELLCODE='" ) ;
sbs . Append ( dvIOC [ i ] [ "END_DEVICE_CODE" ] ) ;
sbs . Append ( "' and FWAREHOUSE='" ) . Append ( dvIOC [ i ] [ "END_WAREHOUSE_CODE" ] ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
//20101124
if ( dvl . Count > 0 )
{
flaneway = dvl [ 0 ] [ "FLaneWay" ] . ToString ( ) ;
stackno = Convert . ToInt32 ( dvl [ 0 ] [ "FStack" ] ) ; //20101028
FEndCol = Convert . ToInt32 ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) . Substring ( 3 , 2 ) ) ;
FEndLayer = Convert . ToInt32 ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) . Substring ( 6 , 2 ) ) ;
}
}
}
//20101028
//��¼����������������FID����T_Base_Task_Index_Auto_Task
RecordMaxManageTaskFID ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_ID" ] ) ) ;
if ( int . TryParse ( dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) , out a ) = = true )
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ;
//sbs.Append("SELECT T_Base_AGV_Gate.F_ChannelsIndex FROM T_Base_Device,T_Base_AGV_Gate where T_Base_Device.F_DeviceIndex = T_Base_AGV_Gate.F_AGVGateDeviceIndex and (T_Base_Device.F_DeviceKindIndex = 9) and (F_AGVGateDeviceIndex = ");
sbs . Append ( "SELECT T_Base_AGV_Gate.F_ChannelsIndex FROM T_Base_Device,T_Base_AGV_Gate where T_Base_Device.F_DeviceIndex = T_Base_AGV_Gate.F_AGVGateDeviceIndex and (T_Base_Device.F_DeviceKindIndex = 2) and (F_AGVGateDeviceIndex = " ) ;
sbs . Append ( Convert . ToInt32 ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) ) . Append ( ") " ) ;
obj = dbo . GetSingle ( sbs . ToString ( ) ) ;
if ( ( obj ! = null ) )
{ //AGVվ̨����
FSTARTDEVICE = Convert . ToInt32 ( obj ) ;
FSTARTCELL = dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) ;
}
else
{ //վ̨����
FSTARTDEVICE = Convert . ToInt32 ( dvIOC [ i ] [ "START_DEVICE_CODE" ] ) ;
FSTARTCELL = "-" ;
}
}
else
{ //�����
//20111020
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FUCODE,FUCONVEYOR FROM ST_CELL where FCELLCODE='" ) . Append ( dvIOC [ i ] [ "START_DEVICE_CODE" ] )
. Append ( "' and FWAREHOUSE='" ) . Append ( dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvl . Count > 0 )
{
FSTARTDEVICE = Convert . ToInt32 ( dvl [ 0 ] [ "FLaneWay" ] ) ;
//if (dvl[0]["FUCODE"].ToString() != "0")
//{
// FSTARTCELL = dvl[0]["FUCONVEYOR"].ToString();
// FSTARTUCODE = Convert.ToInt32(dvl[0]["FUCODE"]);
//}
//else
//{
FSTARTCELL = dvIOC [ i ] [ "START_DEVICE_CODE" ] . ToString ( ) ;
//}
}
else
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��û�ҵ���������������{0},������λ�ã�" , dvIOC [ i ] [ "CONTROL_ID" ] . ToString ( ) ) ;
return "-" ;
}
//20111020
}
if ( int . TryParse ( dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) , out a ) = = true )
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ;
//sbs.Append("SELECT T_Base_AGV_Gate.F_ChannelsIndex FROM T_Base_Device,T_Base_AGV_Gate where T_Base_Device.F_DeviceIndex = T_Base_AGV_Gate.F_AGVGateDeviceIndex and (T_Base_Device.F_DeviceKindIndex = 9) and (F_AGVGateDeviceIndex = ")
// .Append(Convert.ToInt32(dvIOC[i]["END_DEVICE_CODE"])).Append(") ");
sbs . Append ( "SELECT T_Base_AGV_Gate.F_ChannelsIndex FROM T_Base_Device,T_Base_AGV_Gate where T_Base_Device.F_DeviceIndex = T_Base_AGV_Gate.F_AGVGateDeviceIndex and (T_Base_Device.F_DeviceKindIndex = 2) and (F_AGVGateDeviceIndex = " )
. Append ( Convert . ToInt32 ( dvIOC [ i ] [ "END_DEVICE_CODE" ] ) ) . Append ( ") " ) ;
obj = dbo . GetSingle ( sbs . ToString ( ) ) ;
if ( ( obj ! = null ) )
{ //AGVվ̨����
FENDDEVICE = Convert . ToInt32 ( obj ) ;
FENDCELL = dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) ;
}
else
{ //վ̨����
FENDDEVICE = Convert . ToInt32 ( dvIOC [ i ] [ "END_DEVICE_CODE" ] ) ;
FENDCELL = "-" ;
}
}
else
{ //�����
//20111020
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FUCODE,FUCONVEYOR FROM ST_CELL where FCELLCODE='" ) . Append ( dvIOC [ i ] [ "END_DEVICE_CODE" ] )
. Append ( "' and FWAREHOUSE='" ) . Append ( dvIOC [ i ] [ "END_WAREHOUSE_CODE" ] ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvl . Count > 0 )
{
FENDDEVICE = Convert . ToInt32 ( dvl [ 0 ] [ "FLaneWay" ] ) ;
//if (dvl[0]["FUCODE"].ToString() != "0")
//{
// FENDCELL = dvl[0]["FUCONVEYOR"].ToString();
// FENDUCODE = Convert.ToInt32(dvl[0]["FUCODE"]);
//}
//else
//{
FENDCELL = dvIOC [ i ] [ "END_DEVICE_CODE" ] . ToString ( ) ;
//}
}
else
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��û�ҵ���������������{0},���յ�λ�ã�" , dvIOC [ i ] [ "CONTROL_ID" ] . ToString ( ) ) ;
return "-" ;
}
//20111020
}
int FTASKLEVEL = 0 ; //�����������������ȼ�Ӧ������
FTASKLEVEL = dvIOC [ i ] [ "CONTROL_TASK_LEVEL" ] = = DBNull . Value ? 0 : Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_TASK_LEVEL" ] ) ;
//DTJA���ӳ��102��������
if ( ( ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] . ToString ( ) = = "2" ) & & ( Convert . ToInt32 ( dvIOC [ i ] [ "END_DEVICE_CODE" ] ) ) > 2 4 0 0 0 ) | | ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] . ToString ( ) = = "3" ) )
{
FTASKLEVEL = 3 ;
}
else
{
FTASKLEVEL = 0 ;
}
#region ���ݾ���Ч���������������κ�
//sbs.Remove(0, sbs.Length);
//sbs.Append("SELECT HAVE_FLAG from T_BASE_HORT where F_DEVICE_INDEX= 22222");
//DataView dvTime = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
//int TImeLong = Convert.ToInt32(dvTime[0]["HAVE_FLAG"]);
//DateTime TimeTask = Convert.ToDateTime(dvIOC[i]["CONTROL_BEGIN_TIME"]);
//if ((DateTime.Now > TimeTask.AddMinutes(TImeLong)) && (Convert.ToInt32(dvIOC[i]["CONTROL_TASK_TYPE"]) == 2) && (FENDDEVICE != 14053))//����ʱ���Ѿ���������ֵ
//{
// sbs.Remove(0, sbs.Length);
// sbs.Append("update IO_CONTROL SET CONTROL_TASK_LEVEL = 5 , CONTROL_REMARK = 1 where LOGIC_AREA = ").Append(dvIOC[i]["LOGIC_AREA"]).Append(" and CONTROL_REMARK != 1");
// int UPS = dboM.ExecuteSql(sbs.ToString());
// if (UPS > 0)
// {
// sbs.Remove(0, sbs.Length);
// sbs.Append("update T_Manage_Task SET FTASKLEVEL = 5 where FLOGIC_AREA = ").Append(dvIOC[i]["LOGIC_AREA"]);
// dbo.ExecuteSql(sbs.ToString());
// sbs.Remove(0, sbs.Length);
// sbs.Append("update T_Monitor_Task SET F_MonitorTaskLevel = 5 where F_ChangeStackCell = ").Append(Convert.ToInt32(dvIOC[i]["LOGIC_AREA"]));
// dbo.ExecuteSql(sbs.ToString());
// FTASKLEVEL = 5;
// }
//}
#endregion
if ( UseAwayFork = = "0" )
{
string [ ] lc = new string [ 2 ] { "0" , "0" } ;
devinfo = Model . CGetInfo . GetDeviceInfo ( FSTARTDEVICE ) ;
if ( devinfo ! = null )
{
if ( int . TryParse ( FSTARTCELL . ToString ( ) , out a ) = = true )
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT F_UseAwayFork FROM T_Base_AGV_Gate WHERE (F_ChannelsIndex=" ) . Append ( FSTARTDEVICE )
. Append ( ") and ( F_AGVGateDeviceIndex= " ) . Append ( FSTARTCELL ) . Append ( ")" ) ;
obj = dbo . GetSingle ( sbs . ToString ( ) ) . ToString ( ) ;
//20101124
if ( obj ! = null )
{ //AGVվ̨��˫������
UseAwayFork = obj . ToString ( ) ;
}
}
else
{
if ( devinfo . DeviceKind = = 2 )
{
UseAwayFork = devinfo . DoubleFork ;
}
}
if ( FEndCol > 0 )
{
UseAwayFork = ccf . GetLimitXForkNo ( FEndCol , FENDDEVICE ) ;
}
}
if ( UseAwayFork = = "0" )
{
devinfo = Model . CGetInfo . GetDeviceInfo ( FENDDEVICE ) ;
if ( devinfo ! = null )
{
if ( int . TryParse ( FENDCELL . ToString ( ) , out a ) = = true )
{
////20101124
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT F_UseAwayFork FROM T_Base_AGV_Gate WHERE (F_ChannelsIndex=" ) . Append ( FENDDEVICE )
. Append ( ") and ( F_AGVGateDeviceIndex= " ) . Append ( FENDCELL ) . Append ( ")" ) ;
obj = dbo . GetSingle ( sbs . ToString ( ) ) . ToString ( ) ;
//20101124
if ( obj ! = null )
{
UseAwayFork = obj . ToString ( ) ;
}
}
else
{
if ( devinfo . DeviceKind = = 2 )
{
UseAwayFork = devinfo . DoubleFork ;
}
}
if ( FStartCol > 0 )
{
UseAwayFork = ccf . GetLimitXForkNo ( FStartCol , FSTARTDEVICE ) ;
}
}
}
}
//20230718richard.liu
string CELL_MODEL = "1" ; //���¿���С��λ��1С��λ��2����λ
int BOXBOS = 0 ; //���ͱ�־
int CONTROL_FLAG = 0 ; //������ʽ
string CONTROL_BATCH = "-" ; //��Ʒ����װ�������������κ���С����˳����ȡ
if ( dvIOC [ i ] [ "CONTROL_TALL_LOW" ] ! = DBNull . Value )
{
CELL_MODEL = dvIOC [ i ] [ "CONTROL_TALL_LOW" ] . ToString ( ) ;
}
if ( dvIOC [ i ] [ "PALLET_LENGTH_TYPE" ] ! = DBNull . Value )
{
BOXBOS = Convert . ToInt32 ( dvIOC [ i ] [ "PALLET_LENGTH_TYPE" ] . ToString ( ) ) ;
}
if ( dvIOC [ i ] [ "PALLET_STRAPPING_NUM" ] ! = DBNull . Value )
{
CONTROL_FLAG = Convert . ToInt32 ( dvIOC [ i ] [ "PALLET_STRAPPING_NUM" ] ) ;
}
if ( dvIOC [ i ] [ "CONTROL_BATCH" ] ! = DBNull . Value )
{
CONTROL_BATCH = Convert . ToString ( dvIOC [ i ] [ "CONTROL_BATCH" ] ) ;
}
int FSTATUS = 0 ;
#region ��ʼ��LOGIC_AREA
//LOGIC_AREA = FENDDEVICE.ToString();
if ( dvIOC [ i ] [ "LOGIC_AREA" ] ! = DBNull . Value )
{
if ( Convert . ToInt32 ( dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] ) = = 2 )
{
LOGIC_AREA = Convert . ToString ( dvIOC [ i ] [ "LOGIC_AREA" ] ) ;
}
else
{
LOGIC_AREA = "0" ;
}
}
else
{
LOGIC_AREA = FENDDEVICE . ToString ( ) ;
}
//���ݾ��Ĵ��ֶ�ֵΪ���������κ�
#endregion
//20111020
//P��װ��,B��,G��λ,D����λ
//object[] ob = new object[34] { dvIOC[i]["CONTROL_ID"], 1, dvIOC[i]["MANAGE_ID"], dvIOC[i]["RELATIVE_CONTROL_ID"], dvIOC[i]["STOCK_BARCODE"].ToString(),
object [ ] ob = new object [ 3 4 ] { dvIOC [ i ] [ "CONTROL_ID" ] , 1 , dvIOC [ i ] [ "MANAGE_ID" ] , - 1 , dvIOC [ i ] [ "STOCK_BARCODE" ] . ToString ( ) ,
dvIOC [ i ] [ "MANAGE_TASK_TYPE" ] , dvIOC [ i ] [ "CONTROL_TASK_TYPE" ] , FTASKLEVEL , 0 , dvIOC [ i ] [ "START_WAREHOUSE_CODE" ] , FSTARTCELL , FSTARTDEVICE ,
dvIOC [ i ] [ "END_WAREHOUSE_CODE" ] , FENDCELL , FENDDEVICE , FSTATUS , Convert . ToDateTime ( dvIOC [ i ] [ "CONTROL_BEGIN_TIME" ] ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) ,
dvIOC [ i ] [ "CONTROL_END_TIME" ] . ToString ( ) , 0 , dvIOC [ i ] [ "CONTROL_REMARK" ] . ToString ( ) . Replace ( "'" , "" ) , flaneway , stackno , UseAwayFork , CONTROL_BATCH ,
LOGIC_AREA , FStartCol , FStartLayer , FEndCol , FEndLayer , FSTARTUCODE , FENDUCODE , BOXBOS , CONTROL_FLAG , CELL_MODEL } ;
sbs . Clear ( ) ;
sbs . AppendFormat ( string . Format ( "INSERT INTO T_Manage_Task(FID, F_ManageTaskKindIndex,FMANAGEID,F_RELATIVECONTORLID,FPALLETBARCODE,FMANAGETASKTYPE," +
"FCONTROLTASKTYPE, FTASKLEVEL, FISRETURN,FSTARTWAREHOUSE, FSTARTCELL, FSTARTDEVICE,FENDWAREHOUSE,FENDCELL,FENDDEVICE, FSTATUS, FBEGTIME, FENDTIME," +
"FIntoStepOK,FREMARK,FLANEWAY,FSTACK,FUseAwayFork,FCONTORL_BATCH,FLOGIC_AREA,FStartCol,FStartLayer,FEndCol,FEndLayer,FSTARTUCODE,FENDUCODE,BOXBOS,CONTROL_FLAG,CELL_MODEL)VALUES ({0},{1},{2},{3},'{4}'," +
"'{5}',{6},{7},{8},'{9}','{10}',{11},'{12}','{13}',{14},{15},'{16}','{17}','{18}','{19}',{20},{21},'{22}','{23}','{24}',{25},{26},{27},{28},{29},{30},'{31}','{32}','{33}')" , ob ) ) ;
//int rc = dbo.ExecuteSql(sbs.ToString());
StringBuilder [ ] sbArray = new StringBuilder [ 2 ] ; //���Ի���Υ��Լ��������
StringBuilder [ ] dbFactoryArray = new StringBuilder [ 2 ] ;
if ( dealwithHash ( "find" , sbs . ToString ( ) ) = = 0 ) //����ί�л�ѹ����20240726����
{
sbArray [ 0 ] = new StringBuilder ( sbs . ToString ( ) ) ;
dbFactoryArray [ 0 ] = new StringBuilder ( "DBFactory" ) ;
dealwithHash ( "add" , sbs . ToString ( ) ) ;
}
else
{
return "0" ;
}
//sbArray[0] = new StringBuilder(sbs.ToString());
//dbFactoryArray[0]= new StringBuilder("DBFactory");
CommonClassLib . CCarryConvert . WriteDarkCasket ( "CObtainTask" , "��ȡ����:" , ",����[" + dvIOC [ i ] [ "STOCK_BARCODE" ] . ToString ( ) + "]" , ",CONTROL_ID:" + dvIOC [ i ] [ "CONTROL_ID" ] . ToString ( ) ) ;
ob = null ;
//20111020
//if (rc == 0) return "-";
//else
//{
if ( dvIOC [ i ] [ "CONTROL_STATUS" ] . ToString ( ) ! = Model . CGeneralFunction . TASKSINGLEFORKRUN . ToString ( ) )
{
sbs . Clear ( ) ;
sbs . Append ( "update IO_CONTROL set CONTROL_STATUS=" ) . Append ( Model . CGeneralFunction . TASKCONTROLREADED )
. Append ( " where CONTROL_ID=" ) . Append ( dvIOC [ i ] [ "CONTROL_ID" ] ) ;
// dboM.ExecuteSql(sbs.ToString());//���Ի���Υ��Լ��������
if ( dealwithHash ( "find" , sbs . ToString ( ) ) = = 0 ) //����ί�л�ѹ����20240726����
{
sbArray [ 1 ] = new StringBuilder ( sbs . ToString ( ) ) ;
dbFactoryArray [ 1 ] = new StringBuilder ( "ManDBFactory" ) ;
dealwithHash ( "add" , sbs . ToString ( ) ) ;
}
else
{
return "0" ;
}
//sbArray[1] = sbs;
//dbFactoryArray[1] = new StringBuilder("ManDBFactory");
}
CUpdateDBChangeEventArgs e = new CUpdateDBChangeEventArgs ( dbFactoryArray , sbArray ) ;
OnUpdateDB ( e ) ;
return UseAwayFork ;
//}
}
catch ( Exception ex )
{
CObtainTaskError = "ObtainDoubleForkTask," + ex . StackTrace + ex . Message ;
return "0" ;
}
}
//add for qdty
static string ObtainNewTask ( object RelativeControlID )
{
int i = 0 ;
int AutoManageIdx = 0 ;
DataView dvl ;
string FSTARTCELL = "" ; string FENDCELL = "" ; char [ ] cc = new char [ 1 ] { '-' } ;
int FSTARTDEVICE = 0 ; int FENDDEVICE = 0 ; int FSTARTUCODE = 0 ; int FENDUCODE = 0 ;
int FControlTaskType = 0 ;
string LOGIC_AREA = string . Empty ;
string flaneway = "-1" ;
int stackno = - 1 ;
int FStartCol = 0 , FStartLayer = 0 , FEndCol = 0 , FEndLayer = 0 ;
string slocation = "" ;
string dlocation = "" ;
try
{
//20101124
sbs . Remove ( 0 , sbs . Length ) ; //20101208
sbs . Append ( "select * from IDX_ASRS_RECEIVE where GROUPTASKID='" ) . Append ( RelativeControlID ) . Append ( "'" ) ;
DataView dvIOC = dboM . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvIOC . Count = = 0 ) return "-" ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT T_Base_Manage_Task_Kind.F_TaskKindIndex, " ) ;
sbs . Append ( "T_Manage_Task.F_ManageTaskKindIndex, T_Manage_Task.FID " ) ;
sbs . Append ( "FROM T_Base_Manage_Task_Kind , T_Manage_Task where " ) ;
sbs . Append ( "T_Base_Manage_Task_Kind.F_TaskKindIndex = T_Manage_Task.F_ManageTaskKindIndex " ) ;
sbs . Append ( " and T_Base_Manage_Task_Kind.F_TaskKindIndex=1 and T_Manage_Task.FREMARK = '" ) ;
sbs . Append ( RelativeControlID ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
//20101124
if ( dvl . Count > 0 ) // �������������¼�¼
{
return "-" ;
}
int a = 0 ;
if ( int . TryParse ( dvIOC [ i ] [ "SLOCATION" ] . ToString ( ) , out a ) = = true )
{
FSTARTDEVICE = Convert . ToInt32 ( dvIOC [ i ] [ "SLOCATION" ] ) ;
FSTARTCELL = "-" ;
}
else
{ //�����
//wms���ظ��Ļ�λ��������ΪR1B-01-02-01,������Ҫȥ�����õ�ǰ�ĸ��ַ�
if ( dvIOC [ i ] [ "SLOCATION" ] . ToString ( ) . Length > 4 )
{
slocation = dvIOC [ i ] [ "SLOCATION" ] . ToString ( ) . Substring ( 4 ) ;
}
//slocation = "01-02-01";
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FUCODE,FUCONVEYOR,FStack FROM ST_CELL where FCELLCODE='" ) . Append ( slocation ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvl . Count > 0 )
{
flaneway = dvl [ 0 ] [ "FLaneWay" ] . ToString ( ) ;
stackno = Convert . ToInt32 ( dvl [ 0 ] [ "FStack" ] ) ; //20101028
FSTARTDEVICE = Convert . ToInt32 ( dvl [ 0 ] [ "FLaneWay" ] ) ;
FSTARTCELL = slocation ;
FStartCol = Convert . ToInt32 ( slocation . Substring ( 3 , 2 ) ) ;
FStartLayer = Convert . ToInt32 ( slocation . Substring ( 6 , 2 ) ) ;
}
else
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��û�ҵ���������������{0},������λ�ã�" , slocation ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "update IDX_ASRS_RECEIVE set TASKSTATUS=" ) . Append ( 8 ) . Append ( ",READTIME=sysdate" )
. Append ( " where TASKTYPE = 'PK' and (TASKSTATUS=0 or TASKSTATUS=3) and GROUPTASKID='" ) . Append ( dvIOC [ i ] [ "GROUPTASKID" ] ) . Append ( "'" ) ;
dboM . ExecuteSql ( sbs . ToString ( ) ) ;
return "-" ;
}
}
if ( int . TryParse ( dvIOC [ i ] [ "DLOCATION" ] . ToString ( ) , out a ) = = true )
{
FENDDEVICE = Convert . ToInt32 ( dvIOC [ i ] [ "DLOCATION" ] ) ;
FENDCELL = "-" ;
}
else
{ //�����
//wms���ظ��Ļ�λ��������ΪR1B-01-02-01,������Ҫȥ�����õ�ǰ�ĸ��ַ�
if ( dvIOC [ i ] [ "DLOCATION" ] . ToString ( ) . Length > 4 )
{
dlocation = dvIOC [ i ] [ "DLOCATION" ] . ToString ( ) . Substring ( 4 ) ;
}
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "SELECT FLaneWay,FUCODE,FUCONVEYOR,FStack FROM ST_CELL where FCELLCODE='" ) . Append ( dlocation ) . Append ( "'" ) ;
dvl = dbo . ExceSQL ( sbs . ToString ( ) ) . Tables [ 0 ] . DefaultView ;
if ( dvl . Count > 0 )
{
flaneway = dvl [ 0 ] [ "FLaneWay" ] . ToString ( ) ;
stackno = Convert . ToInt32 ( dvl [ 0 ] [ "FStack" ] ) ;
FENDDEVICE = Convert . ToInt32 ( dvl [ 0 ] [ "FLaneWay" ] ) ;
FENDCELL = dlocation ;
FEndCol = Convert . ToInt32 ( dlocation . Substring ( 3 , 2 ) ) ;
FEndLayer = Convert . ToInt32 ( dlocation . Substring ( 6 , 2 ) ) ;
}
else
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��û�ҵ���������������{0},���յ�λ�ã�" , dlocation ) ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "update IDX_ASRS_RECEIVE set TASKSTATUS=" ) . Append ( 8 ) . Append ( ",READTIME=sysdate" )
. Append ( " where TASKTYPE = 'PK' and (TASKSTATUS=0 or TASKSTATUS=3) and GROUPTASKID='" ) . Append ( dvIOC [ i ] [ "GROUPTASKID" ] ) . Append ( "'" ) ;
dboM . ExecuteSql ( sbs . ToString ( ) ) ;
return "-" ;
}
//20111020
}
if ( ( FENDCELL = = "-" ) & & ( FSTARTCELL = = "-" ) )
{
FControlTaskType = 4 ; //վ̨�ƿ�
}
else if ( ( FENDCELL = = "-" ) & & ( FSTARTCELL ! = "-" ) )
{
FControlTaskType = 2 ; //����
}
else if ( ( FENDCELL ! = "-" ) & & ( FSTARTCELL = = "-" ) )
{
FControlTaskType = 1 ; //����
}
else
{
FControlTaskType = 3 ; //�ƿ�
}
//��¼��������������FID����T_Base_Task_Index_Auto_Task
AutoManageIdx = ccf . GetAndUpdateAutoManageIdx ( ) ;
//RecordMaxManageTaskFID(Convert.ToInt32(dvIOC[i]["CONTROL_ID"]));
int FTASKLEVEL = 0 ; //�����������������ȼ�Ӧ������
FTASKLEVEL = dvIOC [ i ] [ "PRIORITY" ] = = DBNull . Value ? 0 : Convert . ToInt32 ( dvIOC [ i ] [ "PRIORITY" ] ) ;
int FSTATUS = 0 ;
#region ��ʼ��LOGIC_AREA
LOGIC_AREA = FENDDEVICE . ToString ( ) ;
#endregion
string createtime = " " ;
if ( dvIOC [ i ] [ "CREATIONTIME" ] . ToString ( ) ! = "" )
{
createtime = Convert . ToDateTime ( dvIOC [ i ] [ "CREATIONTIME" ] ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
}
//���ݾ����������ֶμ�¼�Ƿ����кʹ������� 0Ϊ����
int BOXBOS = 0 ; //���̱�־
int CONTROL_FLAG = 0 ; //������ʽ
if ( dvIOC [ i ] [ "CELL_MODEL" ] . ToString ( ) ! = "" )
{
BOXBOS = Convert . ToInt32 ( dvIOC [ i ] [ "CELL_MODEL" ] ) ;
}
if ( dvIOC [ i ] [ "CELL_MODEL" ] . ToString ( ) ! = "" )
{
CONTROL_FLAG = Convert . ToInt32 ( dvIOC [ i ] [ "TASK_FLAG" ] ) ;
}
//20111020
//P��װ��,B��,G��λ,D����λ
object [ ] ob = new object [ 3 3 ] { AutoManageIdx , 1 , dvIOC [ i ] [ "GROUPTASKSEQUENCE" ] , - 1 , dvIOC [ i ] [ "PALLETID" ] . ToString ( ) ,
dvIOC [ i ] [ "FULLFLAG" ] , FControlTaskType , FTASKLEVEL , 0 , 1 , FSTARTCELL , FSTARTDEVICE ,
1 , FENDCELL , FENDDEVICE , FSTATUS , createtime ,
dvIOC [ i ] [ "COMPLETIONTIME" ] . ToString ( ) , 0 , dvIOC [ i ] [ "GROUPTASKID" ] . ToString ( ) . Replace ( "'" , "" ) , flaneway , stackno , 0 , dvIOC [ i ] [ "PICKINGCARTONS" ] . ToString ( ) ,
LOGIC_AREA , FStartCol , FStartLayer , FEndCol , FEndLayer , FSTARTUCODE , FENDUCODE , BOXBOS , CONTROL_FLAG } ;
sbs . Remove ( 0 , sbs . Length ) ;
sbs . AppendFormat ( string . Format ( "INSERT INTO T_Manage_Task(FID, F_ManageTaskKindIndex,FMANAGEID,F_RELATIVECONTORLID,FPALLETBARCODE,FMANAGETASKTYPE," +
"FCONTROLTASKTYPE, FTASKLEVEL, FISRETURN,FSTARTWAREHOUSE, FSTARTCELL, FSTARTDEVICE,FENDWAREHOUSE,FENDCELL,FENDDEVICE, FSTATUS, FBEGTIME, FENDTIME," +
"FIntoStepOK,FREMARK,FLANEWAY,FSTACK,FUseAwayFork,FCONTORL_BATCH,FLOGIC_AREA,FStartCol,FStartLayer,FEndCol,FEndLayer,FSTARTUCODE,FENDUCODE,BOXBOS,CONTROL_FLAG)VALUES ({0},{1},{2},{3},'{4}'," +
"'{5}',{6},{7},{8},'{9}','{10}',{11},'{12}','{13}',{14},{15},'{16}','{17}','{18}','{19}',{20},{21},'{22}','{23}','{24}',{25},{26},{27},{28},{29},{30},'{31}','{32}')" , ob ) ) ;
int rc = dbo . ExecuteSql ( sbs . ToString ( ) ) ;
CommonClassLib . CCarryConvert . WriteDarkCasket ( "CObtainTask" , "��ȡ����:" , ",����[" + dvIOC [ i ] [ "PALLETID" ] . ToString ( ) + "]" , ",GROUPTASKID:" + dvIOC [ i ] [ "GROUPTASKID" ] . ToString ( ) ) ;
ob = null ;
//20111020
if ( rc = = 0 ) return "-" ;
else
{
if ( dvIOC [ i ] [ "TASKSTATUS" ] . ToString ( ) ! = Model . CGeneralFunction . TASKSINGLEFORKRUN . ToString ( ) )
{
sbs . Remove ( 0 , sbs . Length ) ;
sbs . Append ( "update IDX_ASRS_RECEIVE set TASKSTATUS=" ) . Append ( 3 ) . Append ( ",READTIME=sysdate" )
. Append ( " where TASKTYPE = 'PK' and (TASKSTATUS=0) and GROUPTASKID='" ) . Append ( dvIOC [ i ] [ "GROUPTASKID" ] ) . Append ( "'" ) ;
dboM . ExecuteSql ( sbs . ToString ( ) ) ;
}
return "0" ;
}
}
catch ( Exception ex )
{
CObtainTaskError = "ObtainDoubleForkTask," + ex . StackTrace + ex . Message ;
return "0" ;
}
}
private static int GetIOControlFromBarcode ( StringBuilder stringBuilder )
{
DataView dv = new DataView ( ) ;
try
{
dv = dboM . ExceSQL ( string . Format ( "SELECT CONTROL_ID FROM IO_CONTROL WHERE (STOCK_BARCODE = '{0}')" , stringBuilder ) ) . Tables [ 0 ] . DefaultView ;
if ( dv . Count > 0 )
{
return Convert . ToInt32 ( dv [ 0 ] [ "CONTROL_ID" ] ) ;
}
else
{
return 0 ;
}
}
catch ( Exception ex )
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��ͨ��������������GetIOControlFromBarcode��{0}" , ex . StackTrace + ex . Message ) ;
return 0 ;
}
finally
{
dv . Dispose ( ) ;
}
}
private static StringBuilder [ ] GetRelativeBarCodes ( string startdevice , string BarCode )
{ //20140218
int binddev = 0 ;
int . TryParse ( startdevice , out binddev ) ;
if ( binddev = = 0 ) return null ;
StringBuilder [ ] RelativeBarCodes ;
DataView dv = new DataView ( ) ;
try
{
dv = dbo . ExceSQL ( string . Format ( "SELECT F_FirstProject,F_BarcodeLength FROM T_Base_PLC_Ask WHERE F_BindingDevice ={1} and (F_FirstProject LIKE '%{0}%')" , BarCode , binddev ) ) . Tables [ 0 ] . DefaultView ;
if ( dv . Count > 0 )
{
int bclength = Convert . ToInt32 ( dv [ 0 ] [ "F_BarcodeLength" ] ) ;
int amount = Convert . ToInt32 ( dv [ 0 ] [ "F_FirstProject" ] . ToString ( ) . Length ) / bclength ;
if ( amount < = 1 ) return null ;
RelativeBarCodes = new StringBuilder [ amount - 1 ] ;
for ( int i = 0 ; i < ( amount - 1 ) ; i + + )
{
RelativeBarCodes [ i ] = new StringBuilder ( "" ) ;
}
int getAmount = 0 ;
StringBuilder sb = new StringBuilder ( ) ;
for ( int i = 0 ; i < amount ; i + + )
{
sb . Clear ( ) ;
sb . Append ( dv [ 0 ] [ "F_FirstProject" ] . ToString ( ) . Substring ( i * bclength + i , bclength ) ) ;
if ( sb . ToString ( ) ! = BarCode )
{
RelativeBarCodes [ getAmount ] . Append ( sb ) ;
getAmount + + ;
}
}
return RelativeBarCodes ;
}
else
{
return null ;
}
}
catch ( Exception ex )
{
CObtainTaskError = string . Format ( "��ȡ����ʱ��GetRelativeBarCodes�ж��Ƿ����ڶ��������������������룺{0}" , ex . StackTrace + ex . Message ) ;
return null ;
}
finally
{
dv . Dispose ( ) ;
}
}
}
}