南京云海wcs代码
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.

356 lines
15 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DBFactory;
using ICommLayer;
using CommLayerFactory;
using Microsoft.VisualBasic;
namespace ControlSystem
{
/// <summary>
/// Creator:Richard.liu
/// 下达手工任务两个设备交接命令
/// </summary>
public partial class FrmHandAssociateCommand : Form
{
private static FrmHandAssociateCommand _formInstance;
public static FrmHandAssociateCommand FormInstance
{
get
{
if (_formInstance == null)
{
_formInstance = new FrmHandAssociateCommand();
}
return _formInstance;
}
set { _formInstance = value; }
}
CCommonFunction ccf = new CCommonFunction();
DBOperator dbo = CStaticClass.dbo;
#region ====变量定义
#endregion
public FrmHandAssociateCommand()
{
InitializeComponent();
_formInstance = this;
dbo.Open();
}
private void FrmHandCommand_Load(object sender, EventArgs e)
{
DataView dv3 = dbo.ExceSQL("SELECT F_RGVGateDeviceIndex ,F_Address,F_DeviceName FROM T_Base_RGV_Gate,T_Base_Device where F_RGVGateDeviceIndex=F_DeviceIndex").Tables[0].DefaultView;
if (dv3.Count > 0)
{
this.cbConveyorName.DisplayMember = "F_DeviceName";
this.cbConveyorName.ValueMember = "F_RGVGateDeviceIndex";
this.cbConveyorName.DataSource = dv3;
}
DataView dv5 = dbo.ExceSQL("select F_DeviceCommandName,F_DeviceCommandIndex from T_Base_Device_Command where (F_DeviceCommandKind=1 or F_DeviceCommandKind=2) and (F_DeviceKindIndex=2)").Tables[0].DefaultView;
if (dv5.Count > 0)
{
this.cbConveyorCommand.DisplayMember = "F_DeviceCommandName";
this.cbConveyorCommand.ValueMember = "F_DeviceCommandIndex";
this.cbConveyorCommand.DataSource = dv5;
}
}
int GetManageHandIdx()
{
DataSet ds = dbo.ExceSQL("SELECT F_ManageTaskKindIndex, max(FID) as mFID FROM T_Manage_Task Where F_ManageTaskKindIndex=4 group by F_ManageTaskKindIndex");
if (ds.Tables[0].DefaultView.Count > 0)
{
return (Convert.ToInt32(ds.Tables[0].DefaultView[0]["mFID"]) + 1);
}
else
{
DataSet dss = dbo.ExceSQL("SELECT F_ManageTaskIndex FROM T_Base_Manage_Task_Index_Hand_Task");
if (dss.Tables[0].DefaultView.Count > 0)
{
if ((Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1) >= 29998)
{
return 20001;
}
else
{
return (Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1);
}
}
else
{
return 20001;
}
}
}
void RecordMaxHandTaskFID(int fid)
{
DataSet ds = dbo.ExceSQL("select F_ManageTaskIndex from T_Base_Manage_Task_Index_Hand_Task");
DataView dv = ds.Tables[0].DefaultView;
if (dv.Count > 0)
{
if (fid == 29998)
{
dbo.ExceSQL("UPDATE T_Base_Manage_Task_Index_Hand_Task SET F_ManageTaskIndex =20001" );
return;
}
if (fid > Convert.ToInt32(dv[0]["F_ManageTaskIndex"]))
{
dbo.ExceSQL("UPDATE T_Base_Manage_Task_Index_Hand_Task SET F_ManageTaskIndex =" + fid);
return;
}
}
else
{
dbo.ExceSQL("INSERT INTO T_Base_Manage_Task_Index_Hand_Task (F_ManageTaskIndex)VALUES (" + fid + ")");
return;
}
}
int GetRouteIDsub(int device)
{
DataView dv = dbo.ExceSQL("SELECT F_RouteIDSub, F_DeviceIndex, F_RouteID FROM T_Base_Route_Device where F_DeviceIndex="+device+"").Tables[0].DefaultView;
if (dv.Count > 0)
{
return Convert.ToInt32(dv[0]["F_RouteIDSub"]);
}
else
{
return -1;
}
}
private void cbConveyorName_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbConveyorName.SelectedValue == null) return;
DataView dv = dbo.ExceSQL("SELECT F_IFChannelLeft,F_ChannelsIndex,F_RGVGateDeviceIndex ,F_Address,F_DeviceName FROM T_Base_RGV_Gate,T_Base_Device where F_RGVGateDeviceIndex=F_DeviceIndex and F_DeviceIndex=" + cbConveyorName.SelectedValue + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
DataView dv4 = dbo.ExceSQL("select F_DeviceIndex ,F_DeviceName from T_Base_Device where F_DeviceKindIndex=4 and F_DeviceIndex ="+ dv[0]["F_ChannelsIndex"]+"").Tables[0].DefaultView;
if (dv4.Count > 0)
{
this.cbRGVName.DisplayMember = "F_DeviceName";
this.cbRGVName.ValueMember = "F_DeviceIndex";
this.cbRGVName.DataSource = dv4;
}
string left = "";
if (dv[0]["F_IFChannelLeft"].ToString() == "1")
{
left = "左";
}
else
{
left = "右";
}
DataView dv6 = dbo.ExceSQL("select F_DeviceCommandName,F_DeviceCommandIndex from T_Base_Device_Command where (F_DeviceCommandKind=1 or F_DeviceCommandKind=2) and (F_DeviceKindIndex=4) and (F_DeviceCommandName like '"+left +"%')").Tables[0].DefaultView;
if (dv6.Count > 0)
{
this.cbRGVCommand.DisplayMember = "F_DeviceCommandName";
this.cbRGVCommand.ValueMember = "F_DeviceCommandIndex";
this.cbRGVCommand.DataSource = dv6;
}
}
}
private void cbConveyorCommand_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbConveyorName.SelectedValue == null) return;
DataView dv = dbo.ExceSQL("SELECT F_IFChannelLeft,F_ChannelsIndex,F_RGVGateDeviceIndex ,F_Address,F_DeviceName"+
" FROM T_Base_RGV_Gate,T_Base_Device where F_RGVGateDeviceIndex=F_DeviceIndex and F_DeviceIndex=" + cbConveyorName.SelectedValue + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
string send = "";
if (cbConveyorCommand.Text.Contains("接") == true)
{
send = "送";
}
else
{
send = "接";
}
string left = "";
if (dv[0]["F_IFChannelLeft"].ToString() == "1")
{
left = "左";
}
else
{
left = "右";
}
DataView dv6 = dbo.ExceSQL("select F_DeviceCommandName,F_DeviceCommandIndex from T_Base_Device_Command where "+
"(F_DeviceCommandKind=1 or F_DeviceCommandKind=2) and (F_DeviceKindIndex=4) and (F_DeviceCommandName like '" + left + "%') and (F_DeviceCommandName like '%" + send + "%')").Tables[0].DefaultView;
if (dv6.Count > 0)
{
this.cbRGVCommand.DisplayMember = "F_DeviceCommandName";
this.cbRGVCommand.ValueMember = "F_DeviceCommandIndex";
this.cbRGVCommand.DataSource = dv6;
}
}
}
private void button7_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您确认要下达对接任务吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
//向调度任务表插入手工任务,管理类型4,
//管理索引(如果调度任务表没有手工任务,
//在T_Base_Manage_Task_Index_Hand_Task表去找个基数然后加一)
try
{
if (this.cbRGVName.Text.Trim() == "")
{
MessageBox.Show("请选择RGV设备!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.cbRGVName.Focus();
return;
}
if (this.cbConveyorName.Text.Trim() == "")
{
MessageBox.Show("请选择输送机设备!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.cbConveyorName.Focus();
return;
}
//20090918
if (this.cbConveyorName.SelectedValue==null)
{
MessageBox.Show("请选择输送机设备!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.cbConveyorName.Focus();
return;
}
if (this.cbRGVCommand.Text.Trim() == "")
{
MessageBox.Show("请选择RGV设备命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.cbRGVCommand.Focus();
return;
}
if (this.cbConveyorCommand.Text.Trim() == "")
{
MessageBox.Show("请选择输送机设备命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.cbConveyorCommand.Focus();
return;
}
int routeRGVIDsub = GetRouteIDsub(Convert.ToInt32(cbRGVName.SelectedValue));
if (routeRGVIDsub == -1)
{
MessageBox.Show("您选择的设备错误!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int routeIDsub = GetRouteIDsub(Convert.ToInt32(cbConveyorName.SelectedValue));
if (routeIDsub == -1)
{
MessageBox.Show("您选择的设备错误!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
DataSet ds;
string Sql;
DataView dv = dbo.ExceSQL("SELECT F_ManageTASKKINDINDEX, F_DeviceIndex FROM T_Monitor_Task where F_ManageTASKKINDINDEX=4 and (F_DeviceIndex=" + this.cbRGVName.SelectedValue + " or F_DeviceIndex=" + this.cbConveyorName.SelectedValue + ")").Tables[0].DefaultView;
if (dv.Count > 0)
{
MessageBox.Show("在调度队列中已经存在这个设备的手工命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
DataSet dss = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceKindIndex, F_DeviceCommandName,F_DeviceCommandIndex FROM " +
"T_Base_Device , T_Base_Device_Command WHERE T_Base_Device.F_DeviceKindIndex" +
"= T_Base_Device_Command.F_DeviceKindIndex and F_DeviceIndex=" +
Convert.ToInt32(cbRGVName.SelectedValue) + " and F_DeviceCommandIndex=" + Convert.ToInt32(this.cbRGVCommand.SelectedValue) + " and F_DeviceCommandIndex <> -1");
if (dss.Tables[0].DefaultView.Count <= 0)
{
MessageBox.Show("请选择设备和对应的有效命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
dss = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceKindIndex, F_DeviceCommandName,F_DeviceCommandIndex FROM " +
"T_Base_Device , T_Base_Device_Command WHERE T_Base_Device.F_DeviceKindIndex" +
"= T_Base_Device_Command.F_DeviceKindIndex and F_DeviceIndex=" +
Convert.ToInt32(cbConveyorName.SelectedValue) + " and F_DeviceCommandIndex=" + Convert.ToInt32(this.cbConveyorCommand.SelectedValue) + " and F_DeviceCommandIndex <> -1");
if (dss.Tables[0].DefaultView.Count <= 0)
{
MessageBox.Show("请选择设备和对应的有效命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int hidx = GetManageHandIdx();
int hmindx = ccf.GetMonitorIndex(hidx, 4);
int hmindx1 = 0;
if (cbRGVCommand.Text.Contains("接") == true)
{
Sql = "insert into T_Monitor_Task(F_RouteID,F_ManageTaskIndex,F_ManageTaskKindIndex,F_MonitorIndex," +
"F_DeviceIndex,F_DeviceCommandIndex,F_NumParam1) " +
"values(" + routeRGVIDsub + "," + hidx + ",4," + hmindx + "," + Convert.ToInt32(cbRGVName.SelectedValue)
+ "," + Convert.ToInt32(cbRGVCommand.SelectedValue) + "," + cbConveyorName.SelectedValue + ")";
ds = dbo.ExceSQL(Sql);
RecordMaxHandTaskFID(hidx);
hidx = GetManageHandIdx();
hmindx1 = ccf.GetMonitorIndex(hidx, 4);
Sql = "insert into T_Monitor_Task(F_RouteID,F_ManageTaskIndex,F_ManageTaskKindIndex,F_MonitorIndex," +
"F_DeviceIndex,F_DeviceCommandIndex,F_NumParam1,F_Associate) " +
"values(" + routeIDsub + "," + hidx + ",4," + hmindx1 + "," + Convert.ToInt32(cbConveyorName.SelectedValue)
+ "," + Convert.ToInt32(cbConveyorCommand.SelectedValue) + "," + Convert.ToInt32(cbConveyorName.SelectedValue) + ","+hmindx+")";
ds = dbo.ExceSQL(Sql);
RecordMaxHandTaskFID(hidx);
}
else
{
Sql = "insert into T_Monitor_Task(F_RouteID,F_ManageTaskIndex,F_ManageTaskKindIndex,F_MonitorIndex," +
"F_DeviceIndex,F_DeviceCommandIndex,F_NumParam1) " +
"values(" + routeIDsub + "," + hidx + ",4," + hmindx + "," + Convert.ToInt32(cbConveyorName.SelectedValue)
+ "," + Convert.ToInt32(cbConveyorCommand.SelectedValue) + "," + Convert.ToInt32(cbConveyorName.SelectedValue) + ")";
ds = dbo.ExceSQL(Sql);
RecordMaxHandTaskFID(hidx);
hidx = GetManageHandIdx();
hmindx1 = ccf.GetMonitorIndex(hidx, 4);
Sql = "insert into T_Monitor_Task(F_RouteID,F_ManageTaskIndex,F_ManageTaskKindIndex,F_MonitorIndex," +
"F_DeviceIndex,F_DeviceCommandIndex,F_NumParam1,F_Associate) " +
"values(" + routeRGVIDsub + "," + hidx + ",4," + hmindx1 + "," + Convert.ToInt32(cbRGVName.SelectedValue)
+ "," + Convert.ToInt32(cbRGVCommand.SelectedValue) + "," + cbConveyorName.SelectedValue + ","+hmindx+")";
ds = dbo.ExceSQL(Sql);
RecordMaxHandTaskFID(hidx);
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}