济宁李尔调度
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.

251 lines
9.3 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;
namespace wcfControlMonitorClient
{
/// <summary>
/// 20110906新增入库任务双叉关联设置
/// </summary>
public partial class FrmRelativeIDSet : Form
{
DBOperator dbo = CStaticClass.dbo;
//DBOperator dboM = CStaticClass.dboM;
private static FrmRelativeIDSet _formInstance;
public static FrmRelativeIDSet FormInstance
{
get
{
if (_formInstance == null)
{
_formInstance = new FrmRelativeIDSet();
}
return _formInstance;
}
set { _formInstance = value; }
}
public FrmRelativeIDSet()
{
InitializeComponent();
_formInstance = this;
}
private void button1_Click_1(object sender, EventArgs e)
{
int flag = 0;//0表示双叉关联任务设置
if(rbnNearForkSet.Checked)//获取radiobutton选择状态
{
flag = 1;
}
else
if (rbnFarForkSet.Checked)
{
flag = 2;
}
if (cbBType.Text.Trim().Length <= 0)
{
MessageBox.Show("请选择任务类型!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (cbBFloor.Text.Trim().Length <= 0)
{
MessageBox.Show("请选择任务所在楼层!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (cbBLane.Text.Trim().Length <= 0)
{
MessageBox.Show("请选择任务所在巷道!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if(flag!=1)
{
if (cbBFarID.Text.Trim().Length <= 0)
{
MessageBox.Show("请选择远叉调度任务索引!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
if (flag != 2)
{
if (cbBNearID.Text.Trim().Length <= 0)
{
MessageBox.Show("请选择近叉调度任务索引!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
//设置时1.检测任务是否存在,2.不能关联自己,3.提示设置错误的后果
int FarID = 0, NearID = 0;
int Type = cbBType.SelectedIndex + 1;
int Floor = cbBFloor.SelectedIndex + 1;
string Lane = string.Format("1800{0}", cbBLane.SelectedIndex + 1);
string str1=string.Empty, str2=string.Empty;
if(flag!=1)
{
FarID = Convert.ToInt32(cbBFarID.Text.Trim());//远叉任务号
str1 = string.Format("调度任务: {0} 设置为远叉执行 ", FarID);
}
if (flag != 2)
{
NearID = Convert.ToInt32(cbBNearID.Text.Trim());//近叉任务号
str2 = string.Format("调度任务: {0} 设置为近叉执行 ", NearID);
}
string info = string.Format("确认将{0}{1}吗?\r\n\r\n谨慎设置,设置错误将导致任务错乱!!!", str1, str2);
//判断近叉任务号与远叉任务号是否相同
if(FarID==NearID)
{
MessageBox.Show("远叉调度任务索引与近叉调度任务索引不能相同!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//判断远叉任务是否存在
string sql = string.Format("select FID from T_Manage_Task where ( FCONTROLTASKTYPE = {0} ) And ((FCONTROLTASKTYPE=1 and FSTARTDEVICE like '{1}_%' and FENDDEVICE like '{2}' ) or (FCONTROLTASKTYPE=2 and FENDDEVICE like '{3}_%' and FSTARTDEVICE like '{4}' ) And ( FID = {5}))", Type, Floor, Lane, Floor, Lane,FarID);
// string sql = string.Format("select FID from T_Manage_Task where ( FCONTROLTASKTYPE = 1 ) and ( FSTARTDEVICE like '{0}_%' ) and ( FENDDEVICE like '{1}' ) and FID = {2}", Floor, Lane, FarID);
DataView dvs = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvs.Count <= 0)
{
MessageBox.Show("满足条件的远叉调度任务索引不存在!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//判断近叉任务是否存在
sql = string.Format("select FID from T_Manage_Task where ( FCONTROLTASKTYPE = {0} ) And ((FCONTROLTASKTYPE=1 and FSTARTDEVICE like '{1}_%' and FENDDEVICE like '{2}' ) or (FCONTROLTASKTYPE=2 and FENDDEVICE like '{3}_%' and FSTARTDEVICE like '{4}' ) And ( FID = {5}))", Type, Floor, Lane, Floor, Lane, NearID);
dvs = dbo.ExceSQL(sql).Tables[0].DefaultView;
if (dvs.Count <= 0)
{
MessageBox.Show("满足条件的近叉调度任务索引不存在!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//CStaticClass.WcfControl.BeginModifyManageTaskFork(mti, fid, Model.CGeneralFunction.TASKFINISH, new AsyncCallback(ModifyManageTaskCallBack), null);
if (MessageBox.Show(info, "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{
CStaticClass.WcfControl.BeginModifyManageTaskFork(flag, FarID, NearID, new AsyncCallback(ModifyManageTaskForkCallBack), null);
}
////提示并设置关联任务
// string info = string.Format("确认设置远叉任务: {0} 与 近叉任务: {1} 为双叉关联任务吗?\r\n\r\n谨慎设置,设置错误将导致任务错乱!!!",FarID,NearID);
// if (MessageBox.Show(info, "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
// {
// //设置调度任务的关联任务,并指定货叉
// //设置设备指令队列中的货叉
// //指定远叉
// string managesql = string.Format("update T_Manage_Task set FUseAwayFork='1',F_RELATIVECONTORLID={0} where FID ={1}",NearID,FarID);
// string monitorsql = string.Format("update T_Monitor_Task set F_UseAwayFork='1' where F_ManageTaskIndex= {0}", FarID);
// dbo.ExecuteSql(managesql);
// dbo.ExecuteSql(monitorsql);
// //指定近叉
// managesql = string.Format("update T_Manage_Task set FUseAwayFork='0',F_RELATIVECONTORLID={0} where FID = {1}", FarID,NearID);
// monitorsql = string.Format("update T_Monitor_Task set F_UseAwayFork='0' where F_ManageTaskIndex= {0}", NearID);
// dbo.ExecuteSql(managesql);
// dbo.ExecuteSql(monitorsql);
// }
}
void ModifyManageTaskForkCallBack(IAsyncResult ar)
{
string errtext = string.Empty;
if (CStaticClass.WcfControl.EndModifyManageTaskFork(out errtext, ar) == false)
{
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void FrmRelativeIDSet_Load(object sender, EventArgs e)
{
}
private void cbBLane_SelectedIndexChanged(object sender, EventArgs e)
{
int Type = cbBType.SelectedIndex + 1;
int Floor=cbBFloor.SelectedIndex+1;
string Lane=string.Format("1800{0}",cbBLane.SelectedIndex+1);
string sql = string.Format("select FID from T_Manage_Task where ( FCONTROLTASKTYPE = {0} ) And ((FCONTROLTASKTYPE=1 and FSTARTDEVICE like '{1}_%' and FENDDEVICE like '{2}' ) or (FCONTROLTASKTYPE=2 and FENDDEVICE like '{3}_%' and FSTARTDEVICE like '{4}' ))", Type, Floor, Lane, Floor, Lane);
DataView dvs = dbo.ExceSQL(sql).Tables[0].DefaultView;
cbBFarID.ValueMember = "FID";
cbBFarID.DisplayMember = "FID";
cbBFarID.DataSource = dvs;
DataView dvs1 = dvs.ToTable().DefaultView;
cbBNearID.ValueMember = "FID";
cbBNearID.DisplayMember = "FID";
cbBNearID.DataSource = dvs1;
}
private void button2_Click(object sender, EventArgs e)
{
cbBLane_SelectedIndexChanged(null, EventArgs.Empty);
}
private void cbBFloor_SelectedIndexChanged(object sender, EventArgs e)
{
cbBLane.SelectedIndex = -1;
//cbBLane.Text = "";
//cbBFarID.Text = "";
//cbBNearID.Text = "";
}
private void rbnOneForkSet_Click(object sender, EventArgs e)
{
gbFloor.Visible = false;
gbLane.Visible = false;
}
private void rbnTwoForkSet_Click(object sender, EventArgs e)
{
gbNearFork.Visible = true;
gbFarFork.Visible = true;
}
private void rbnOneForkSet_CheckedChanged(object sender, EventArgs e)
{
}
private void rbnFarForkSet_Click(object sender, EventArgs e)
{
gbNearFork.Visible = false;
gbFarFork.Visible = true;
}
private void rbnNearForkSet_Click(object sender, EventArgs e)
{
gbNearFork.Visible = true;
gbFarFork.Visible = false; ;
}
}
}