You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2067 lines
125 KiB
2067 lines
125 KiB
3 months ago
|
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 CommLayerFactory;
|
||
|
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();
|
||
|
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(2000);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
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 ��������ɨ�費��������������ʽ��������
|
||
|
sbs.Remove(0, sbs.Length);
|
||
|
sbs.Append("select * from IO_CONTROL where CONTROL_STATUS=250");
|
||
|
dsIOC = dboM.ExceSQL(sbs.ToString());
|
||
|
dvIOC = dsIOC.Tables[0].DefaultView;
|
||
|
if (dvIOC.Count > 0)
|
||
|
{
|
||
|
for (int i = 0; i < dvIOC.Count; i++)
|
||
|
{
|
||
|
RefreshMonitorEventArgs rmea = new RefreshMonitorEventArgs("notifyIcon1", string.Format("����:վ̨{0},ɨ�뷢�����ϣ�{1}", dvIOC[i]["START_DEVICE_CODE"].ToString(), dvIOC[i]["REMARK2"].ToString()));
|
||
|
OnRefreshMonitor(rmea);
|
||
|
dboM.ExceSQL("update IO_CONTROL set CONTROL_STATUS=999 where CONTROL_ID=" + dvIOC[i]["CONTROL_ID"]);
|
||
|
}
|
||
|
}
|
||
|
#endregion
|
||
|
#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 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)
|
||
|
{
|
||
|
//newcode.Append(string.Format("{0:D2}", wmsZ + 1) + Convert.ToString(dvIOC[i]["START_DEVICE_CODE"]).Substring(2, 6));//gjn
|
||
|
newcode.Append(string.Format("{0:D2}", wmsZ + 1) + Convert.ToString(dvIOC[inew]["START_DEVICE_CODE"]).Substring(2, 6));//gjn
|
||
|
}
|
||
|
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 ��ȡ����������֮��������
|
||
|
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;
|
||
|
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() == "250")
|
||
|
{
|
||
|
|
||
|
}
|
||
|
if ((dvIOC[i]["CONTROL_STATUS"].ToString() == Model.CGeneralFunction.TASKWAIT.ToString()) || (dvIOC[i]["CONTROL_STATUS"].ToString() == Model.CGeneralFunction.TASKSINGLEFORKRUN.ToString()))
|
||
|
{
|
||
|
|
||
|
|
||
|
bool Ifobtain = true;
|
||
|
|
||
|
|
||
|
|
||
|
#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");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ObtainDoubleForkTask(dvIOC[i]["CONTROL_ID"], "0");
|
||
|
|
||
|
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 ��·���Ĵ���
|
||
|
|
||
|
//else if (dvIOC[i]["CONTROL_STATUS"].ToString() == Model.CGeneralFunction.TASKALTERROUTEREPLY.ToString())
|
||
|
//{
|
||
|
// int a = 0;
|
||
|
// if (int.TryParse(dvIOC[i]["END_DEVICE_CODE"].ToString(), out a) == false)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT FLaneWay FROM ST_CELL where FCELLCODE='").Append(dvIOC[i]["END_DEVICE_CODE"]).Append("' and FWAREHOUSE='").Append(dvIOC[i]["END_WAREHOUSE_CODE"]).Append("'");
|
||
|
// obj = dbo.GetSingle(sbs.ToString());
|
||
|
// //20101124
|
||
|
// if (obj != null)
|
||
|
// {
|
||
|
// FENDDEVICE = Convert.ToInt32(obj);
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// CObtainTaskError = string.Format("��ȡ��������·���Ĵ�û�ҵ���������������{0},�ĺ����յ�λ�ã�", dvIOC[i]["CONTROL_ID"].ToString());
|
||
|
// continue;
|
||
|
// }
|
||
|
// FENDCELL = dvIOC[i]["END_DEVICE_CODE"].ToString();
|
||
|
// //20100304
|
||
|
// if (ccf.GetExceptionNOFromManageTask(Convert.ToInt32(dvIOC[i]["CONTROL_ID"]), 1) == Model.CGeneralFunction.TASKREPEATINPUT)
|
||
|
// {
|
||
|
// UseOldRoute = true;
|
||
|
|
||
|
// }
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// FENDDEVICE = Convert.ToInt32(dvIOC[i]["END_DEVICE_CODE"]);
|
||
|
// //20090910
|
||
|
// if (ccf.GetExceptionNOFromManageTask(Convert.ToInt32(dvIOC[i]["CONTROL_ID"]), 1) == Model.CGeneralFunction.TASKREPEATINPUT)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_TASKKIND, F_DESTINATION FROM T_Base_Destination WHERE (F_TASKKIND = ").Append(dvIOC[i]["CONTROL_TASK_TYPE"]).Append(") and (F_AbendStation=1) and (F_DESTINATION=").Append(FENDDEVICE).Append(")");
|
||
|
// dv = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// //20101124
|
||
|
// if (dv.Count > 0)//��Ӧ��վ̨����ԭ�����յ���Ϊ�����ĵ���Ӧ��վ̨
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Manage_Task set FSTARTDEVICE=FENDDEVICE,FSTARTCELL=FENDCELL where (FID = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// UseOldRoute = true;
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
// FENDCELL = "-";
|
||
|
|
||
|
// #region 20101028ת��AGV������Ϊͨ��
|
||
|
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_ChannelsIndex FROM T_Base_AGV_Gate WHERE (F_AGVGateDeviceIndex = ").Append(Convert.ToInt32(dvIOC[i]["END_DEVICE_CODE"])).Append(") ");
|
||
|
// obj = dbo.GetSingle(sbs.ToString());
|
||
|
|
||
|
// if (obj != null)
|
||
|
// {
|
||
|
// FENDDEVICE = Convert.ToInt32(obj);
|
||
|
// FENDCELL = dvIOC[i]["END_DEVICE_CODE"].ToString();
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// FENDDEVICE = Convert.ToInt32(dvIOC[i]["END_DEVICE_CODE"]);
|
||
|
// FENDCELL = "-";
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Manage_Task set FENDDEVICE='").Append(FENDDEVICE).Append("',FENDCELL='").Append(FENDCELL).Append("' where (FID = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //�Ѿ���ʼִ�е���Ҫ���ĵ�������)
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT * FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1) AND (F_Status =3) order by F_MonitorIndex asc");
|
||
|
// dvmi = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvmi.Count > 0)
|
||
|
// {//�Ѿ���ʼִ�е���Ҫ���ĵ�������
|
||
|
// //�ж�������·���ĵ�һ������������
|
||
|
// int monitorIndex = (int)dvmi[0]["F_MonitorIndex"];
|
||
|
// int associateMonitor = -1;
|
||
|
// if (dvmi[0]["F_Associate"] != DBNull.Value)
|
||
|
// {
|
||
|
// associateMonitor = Convert.ToInt32(dvmi[0]["F_Associate"]);
|
||
|
// }
|
||
|
// int devindex = Convert.ToInt32(dvmi[0]["F_DeviceIndex"]);
|
||
|
// int devKind = ccf.GetDeviceKindIdx(Convert.ToInt32(dvmi[0]["F_DeviceIndex"]));
|
||
|
// int devCommand = Convert.ToInt32(dvmi[0]["F_DeviceCommandIndex"]);
|
||
|
// int routeID = Convert.ToInt32(dvmi[0]["F_RouteID"]);
|
||
|
// int NumParam1 = Convert.ToInt32(dvmi[0]["F_NumParam1"]);
|
||
|
// int NumParam4 = Convert.ToInt32(dvmi[0]["F_NumParam4"]);
|
||
|
// string AheadDetect = dvmi[0]["F_AheadDetect"].ToString();
|
||
|
|
||
|
|
||
|
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("select * from T_Manage_Task where (FID = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1)");
|
||
|
// DMAN = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (DMAN.Count > 0)
|
||
|
// {
|
||
|
|
||
|
|
||
|
// //20091107
|
||
|
// int routeidNew = 0;
|
||
|
// if (UseOldRoute == false)
|
||
|
// {
|
||
|
// routeidNew = CDisassembleTask.MinRouteID(Convert.ToInt32(DMAN[0]["FSTARTDEVICE"]), Convert.ToInt32(DMAN[0]["FENDDEVICE"]), DMAN[0]["FUseAwayFork"]);
|
||
|
// }
|
||
|
// else
|
||
|
// {//970�ͻ�ʱ�����л���������ԭ��·��
|
||
|
// routeidNew = routeID;
|
||
|
// }
|
||
|
|
||
|
// //20091005
|
||
|
// if (routeidNew == -1)
|
||
|
// {
|
||
|
|
||
|
// //�������������������ĵ�
|
||
|
// if (CStaticClass.DeviceErrorAutoModifyRoutePath == "1")
|
||
|
// {//20091107
|
||
|
// GetUsableDestination(DMAN[0]);
|
||
|
// }
|
||
|
|
||
|
// continue;
|
||
|
// }
|
||
|
// //20091005
|
||
|
// //ɾ��ԭ����������·���������µ���������ֻ���������豸��ʼ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("DELETE FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1) AND (F_Status =3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20090910
|
||
|
// if (CDisassembleTask.CreateMonitor(1, Convert.ToInt32(dvIOC[i]["CONTROL_ID"]), routeidNew, DMAN[0], 3) <= 0)
|
||
|
// {
|
||
|
// //��������������·������������
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("INSERT INTO T_Monitor_Task ");
|
||
|
// sbs.Append("(F_ManageTaskIndex, F_ManageTASKKINDINDEX, F_MonitorIndex,F_MonitorTaskLevel,");
|
||
|
// sbs.Append(" F_DeviceIndex, F_DeviceCommandIndex, F_RouteID, F_Status,F_NumParam1, F_NumParam4,");
|
||
|
// sbs.Append(" F_AheadDetect,F_TxtParam)");
|
||
|
// sbs.Append("VALUES (").Append(dvIOC[i]["CONTROL_ID"]).Append(",1,").Append(monitorIndex)
|
||
|
// .Append(",1,").Append(devindex).Append(",").Append(devCommand).Append(",").Append(routeID)
|
||
|
// .Append(",3,").Append(NumParam1).Append(",").Append(NumParam4).Append(",'").Append(AheadDetect)
|
||
|
// .Append("','").Append(dvIOC[i]["STOCK_BARCODE"]).Append("')");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// continue;
|
||
|
// }
|
||
|
|
||
|
// if (devKind == 4)
|
||
|
// {
|
||
|
// if (devCommand == 7)
|
||
|
// {
|
||
|
// int RGVsn = ccf.GetSerialNumberFromRouteDevice(routeID, devindex);
|
||
|
// int Consn = ccf.GetSerialNumberFromRouteDevice(routeID, NumParam1);
|
||
|
|
||
|
// #region RGV�˶����ӻ���
|
||
|
// if (RGVsn > Consn)
|
||
|
// {
|
||
|
// //ɾ��RGV�˶����ӻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(NumParam1).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// #region RGV�˶����ͻ���
|
||
|
// if (RGVsn < Consn)
|
||
|
// {
|
||
|
// int RGVsn1 = ccf.GetSerialNumberFromRouteDevice(routeidNew, devindex);
|
||
|
// //�ҵ��ӻ����ͻ��豸����
|
||
|
// List<int> nextcon = CDisassembleTask.GetNextDevice(routeidNew, RGVsn1);
|
||
|
// int condev = nextcon[0];
|
||
|
// //ɾ��RGV�˶����ͻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(condev).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]);
|
||
|
// sbs.Append(" and (F_ManageTaskIndex = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
|
||
|
// #region RGV�ͻ�
|
||
|
|
||
|
// if ((devCommand == 3) || (devCommand == 5))
|
||
|
// {
|
||
|
// int RGVsn = ccf.GetSerialNumberFromRouteDevice(routeidNew, devindex);
|
||
|
// //�ҵ��ӻ����ͻ��豸����
|
||
|
// List<int> nextcon = CDisassembleTask.GetNextDevice(routeidNew, RGVsn);
|
||
|
// int condev = nextcon[0];
|
||
|
// //ɾ��RGV�˶����ͻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(condev).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// #region RGV�ӻ�
|
||
|
// if ((devCommand == 2) || (devCommand == 4))
|
||
|
// {
|
||
|
// int RGVsn = ccf.GetSerialNumberFromRouteDevice(routeidNew, devindex);
|
||
|
// //�ҵ��ͻ����ͻ��豸����
|
||
|
// List<int> priorcon = CDisassembleTask.GetPriorDevice(routeidNew, RGVsn);
|
||
|
// int condev = priorcon[0];
|
||
|
// //ɾ��RGV�˶����ӻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(condev).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
// }
|
||
|
// if (devKind == 2)
|
||
|
// {
|
||
|
// #region ���ͻ��ͻ�
|
||
|
// if (devCommand == 3)
|
||
|
// {
|
||
|
// int consn = ccf.GetSerialNumberFromRouteDevice(routeidNew, devindex);
|
||
|
// //�ҵ��ӻ�RGV�豸����
|
||
|
// List<int> nextrgv = CDisassembleTask.GetNextDevice(routeidNew, consn);
|
||
|
// int rgvdev = nextrgv[0];
|
||
|
|
||
|
// //ɾ��RGV�˶����ӻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(rgvdev).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(devindex).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// #region ���ͻ��Ľӻ�
|
||
|
|
||
|
// if (devCommand == 4)
|
||
|
// {
|
||
|
// int consn = ccf.GetSerialNumberFromRouteDevice(routeID, devindex);
|
||
|
// //�ҵ��ͻ�RGV�豸����
|
||
|
// List<int> priorrgv = CDisassembleTask.GetPriorDevice(routeID, consn);
|
||
|
// int rgvdev = priorrgv[0];
|
||
|
// int rgvsn = ccf.GetSerialNumberFromRouteDevice(routeidNew, rgvdev);
|
||
|
// List<int> nextdev = CDisassembleTask.GetNextDevice(routeidNew, rgvdev);
|
||
|
// int condev = nextdev[0];
|
||
|
// //ɾ��RGV�˶����ͻ���֮ǰ������
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(rgvdev).Append(") AND (F_DeviceCommandIndex = 7) AND (F_RouteID = ").Append(routeidNew);
|
||
|
// sbs.Append(") AND (F_Status = 3) AND (F_NumParam1 = ").Append(condev).Append(")");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
|
||
|
// #endregion
|
||
|
|
||
|
|
||
|
// #region ���ͻ����ͳ�
|
||
|
// if (devCommand == 6)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = 6) AND (F_RouteID = ").Append(routeidNew).Append(") AND (F_Status = 3) ");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// int CurrentLocation = 0;
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT FCurrentLocation FROM T_Manage_Task where FID=").Append(dvIOC[i]["CONTROL_ID"]).Append(" and F_ManageTaskKindIndex=1");
|
||
|
// dvc = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvc.Count > 0)
|
||
|
// {
|
||
|
// CurrentLocation = Convert.ToInt32(dvc[0]["FCurrentLocation"]);
|
||
|
// }
|
||
|
// if (CurrentLocation == 0) continue;
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_DeviceIndex=").Append(CurrentLocation).Append(" where F_MonitorIndex=").Append(dvnew[0]["F_MonitorIndex"]);
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20090910�Ѿ����˵�CurrentLocation��F_NumParam4=CurrentLocation�� ɾ���ͳ�����
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_DeviceIndex=").Append(CurrentLocation).Append(" and F_NumParam4=").Append(CurrentLocation);
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20091102
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Base_Device set F_LockedState=0 where F_LockedState=").Append(monitorIndex);
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
|
||
|
|
||
|
// }
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// }
|
||
|
// #region �Ѷ������ͻ��غ���������
|
||
|
// if (devKind == 1)
|
||
|
// {
|
||
|
// //�Ѷ������ͻ��أ�ֻ�����Ѷ������ͻ�����
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_DeviceIndex = ");
|
||
|
// sbs.Append(devindex).Append(") AND (F_DeviceCommandIndex = ").Append(devCommand).Append(") AND (F_RouteID = ").Append(routeidNew).Append(") AND (F_Status = 3)");
|
||
|
// dvnew = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dvnew.Count > 0)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("delete from T_Monitor_Task where F_MonitorIndex<").Append(dvnew[0]["F_MonitorIndex"]).Append(" and (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Base_Device set F_LockedState=0 where F_DeviceIndex=").Append(devindex);
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Monitor_Task set F_Status =0 where (F_ManageTaskIndex = ");
|
||
|
// sbs.Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX = 1) AND (F_Status = 3)");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
|
||
|
|
||
|
// }
|
||
|
// #endregion
|
||
|
|
||
|
// }//20090910
|
||
|
|
||
|
|
||
|
// }
|
||
|
// else//δ���ֵģ���Ŀ��λ�ú�״̬(FSTATUS='40'���ò��ֵ�FIntoStepOK='-'��ΪFIntoStepOK='0'��
|
||
|
// {
|
||
|
// //20091128����ʹ��FENDCELL
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Manage_Task set FENDDEVICE='").Append(FENDDEVICE).Append("',FENDCELL='").Append(FENDCELL).Append("', FIntoStepOK=0 where (FID = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(") AND (F_ManageTASKKINDINDEX =1) and (FIntoStepOK='-')");
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// }
|
||
|
// //��T_Manage_Task��FLANEWAY��FSTACK
|
||
|
// int flaneway = -1, stackno = -1;
|
||
|
// if (int.TryParse(dvIOC[i]["START_DEVICE_CODE"].ToString(), out a) == false)
|
||
|
// {//�����
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT FLaneWay FROM ST_CELL where FCELLCODE='").Append(dvIOC[i]["START_DEVICE_CODE"]).Append("' and FWAREHOUSE='").Append(dvIOC[i]["START_WAREHOUSE_CODE"]).Append("'");
|
||
|
// obj = dbo.GetSingle(sbs.ToString());
|
||
|
// if (obj != null)
|
||
|
// {
|
||
|
// flaneway = Convert.ToInt32(obj);
|
||
|
// }
|
||
|
// }
|
||
|
// else
|
||
|
// {
|
||
|
// if (int.TryParse(dvIOC[i]["END_DEVICE_CODE"].ToString(), out a) == false)
|
||
|
// {
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT FLaneWay FROM ST_CELL where FCELLCODE='").Append(dvIOC[i]["END_DEVICE_CODE"]).Append("' and FWAREHOUSE='").Append(dvIOC[i]["END_WAREHOUSE_CODE"]).Append("'");
|
||
|
// obj = dbo.GetSingle(sbs.ToString());
|
||
|
// if (obj != null)
|
||
|
// {
|
||
|
// flaneway = Convert.ToInt32(obj);
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("SELECT F_StackIndex, F_LaneNo FROM T_Base_StackInfo ");
|
||
|
// sbs.Append(" where (F_LaneNo='").Append(flaneway).Append("') OR (F_LaneNo like '%").Append(";").Append(flaneway).Append("') OR (F_LaneNo='").Append(flaneway).Append(";").Append("%') ");
|
||
|
|
||
|
// dv = dbo.ExceSQL(sbs.ToString()).Tables[0].DefaultView;
|
||
|
// if (dv.Count > 0)
|
||
|
// {
|
||
|
// stackno = Convert.ToInt32(dv[0]["F_StackIndex"]);
|
||
|
// }
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update T_Manage_Task set FLANEWAY=").Append(flaneway).Append(",FSTACK=").Append(stackno).Append(" where F_ManageTaskKindIndex=1 and FID=").Append(dvIOC[i]["CONTROL_ID"]);
|
||
|
// dbo.ExceSQL(sbs.ToString());
|
||
|
// //20091107
|
||
|
// //20101124
|
||
|
// sbs.Remove(0, sbs.Length);
|
||
|
// sbs.Append("update IO_control set CONTROL_status=").Append(Model.CGeneralFunction.TASKRUN).Append(" where (CONTROL_ID = ").Append(Convert.ToInt32(dvIOC[i]["CONTROL_ID"])).Append(")");
|
||
|
// dboM.ExceSQL(sbs.ToString());
|
||
|
// CDataChangeEventArgs cea = new CDataChangeEventArgs(null, null);
|
||
|
// OnDataChange("��ȡ������GetManagerTask", cea);
|
||
|
//}
|
||
|
|
||
|
#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();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
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();
|
||
|
}
|
||
|
}
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
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 = 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
|
||
|
{
|
||
|
//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"]);
|
||
|
//������������һ�����ȼ�
|
||
|
if (dvIOC[i]["CONTROL_TASK_TYPE"].ToString() == "2"|| dvIOC[i]["CONTROL_TASK_TYPE"].ToString() == "3")
|
||
|
{
|
||
|
FTASKLEVEL = FTASKLEVEL + 1;
|
||
|
|
||
|
if (FTASKLEVEL > 8)
|
||
|
{
|
||
|
FTASKLEVEL = 8;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
#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 = "-";//��Ʒ����װ�������������κ���С����˳����ȡ
|
||
|
int IFLIFT = 0;
|
||
|
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"]);
|
||
|
}
|
||
|
if (dvIOC[i]["REMARK1"] != DBNull.Value)
|
||
|
{
|
||
|
IFLIFT = Convert.ToInt32(dvIOC[i]["REMARK1"]);
|
||
|
}
|
||
|
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[35] { dvIOC[i]["CONTROL_ID"], 1, dvIOC[i]["MANAGE_ID"], dvIOC[i]["RELATIVE_CONTROL_ID"], 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,IFLIFT};
|
||
|
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,IFLIFT)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}',{34})", 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()+ "IFLIFT:" + Convert.ToString(IFLIFT));
|
||
|
ob = null;
|
||
|
if (FENDDEVICE == 32146||FENDDEVICE==32401)//��ȡ��32146��������֪ͨ������������
|
||
|
{
|
||
|
devinfo = Model.CGetInfo.GetDeviceInfo(FENDDEVICE);
|
||
|
sdo = CommModeCreate.CreateSendDeviceOrder(FENDDEVICE);
|
||
|
wv[0].Clear();
|
||
|
witemnames[0].Clear();
|
||
|
witemnames[0].Append("DB1").Append(".").Append(Convert.ToString(devinfo.Dbw2Address + 9)).Append(",b");
|
||
|
wv[0].Append("1");
|
||
|
sdo.WriteDBData(witemnames, wv, devinfo.S7Connection);
|
||
|
}
|
||
|
|
||
|
//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[33] { 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();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|