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.
555 lines
20 KiB
555 lines
20 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.ServiceModel;
|
|
using DBFactory;
|
|
using System.Net.Sockets;
|
|
using System.Threading;
|
|
|
|
using Microsoft.VisualBasic;
|
|
|
|
|
|
|
|
namespace wcfControlMonitorClient
|
|
{
|
|
/// <summary>
|
|
/// Creator:Richard.liu
|
|
/// 调度任务管理
|
|
/// </summary>
|
|
public partial class FrmModifyManage : Form
|
|
{
|
|
string _manstatus= " F_Status>=-1 ";
|
|
private static FrmModifyManage _formInstance;
|
|
|
|
public static FrmModifyManage FormInstance
|
|
{
|
|
get
|
|
{
|
|
if (_formInstance == null)
|
|
{
|
|
_formInstance = new FrmModifyManage();
|
|
}
|
|
return _formInstance;
|
|
}
|
|
set { _formInstance = value; }
|
|
}
|
|
|
|
Model.MDevice devinfo;
|
|
DBOperator dbo = CStaticClass.dbo;
|
|
DBOperator dboM = CStaticClass.dboM;
|
|
public FrmModifyManage()
|
|
{
|
|
InitializeComponent();
|
|
_formInstance = this;
|
|
}
|
|
|
|
private void TSMrefresh_Click()
|
|
{
|
|
string StrSql = string.Format("select V_Manage_Task.* from V_Manage_Task,T_Base_Device where V_Manage_Task.起点=T_Base_Device.F_DeviceIndex and F_WorkArea like '%{0}%' and {1}", CStaticClass.UserArea, _manstatus);
|
|
|
|
this.dgvManager.DataSource = dbo.ExceSQL(StrSql).Tables[0].DefaultView;
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
//if (this.textBox1.Text.Trim().Length == 0) return;
|
|
if (this.comboBox1.Text == "条码")
|
|
{
|
|
//20091016
|
|
//_manstatus = " 条码='" + this.textBox1.Text.Trim() + "' ";
|
|
_manstatus = string.Format(" 条码 like '%{0}%' ", this.textBox1.Text.Trim());
|
|
}
|
|
|
|
if (this.comboBox1.Text == "调度任务索引")
|
|
{
|
|
//_manstatus = " 调度任务索引='" + this.textBox1.Text.Trim() + "' ";
|
|
_manstatus = string.Format(" 调度任务索引 like '%{0}%' ", this.textBox1.Text.Trim());
|
|
}
|
|
string Type = comboTaskType.Text.Trim();//出入库任务类型
|
|
string Floor = comboFloor.SelectedIndex <= 0 ? string.Empty : Convert.ToString(comboFloor.SelectedIndex);//任务所在楼层 ,入库和移库任务判断起点,出库任务判断终点
|
|
string Lane = comboLane.SelectedIndex <= 0 ? string.Empty : string.Format("1800{0}", comboLane.SelectedIndex); //任务所在巷道,入库任务判断终点,出库任务判断起点
|
|
string str1 = string.Format(" And (作业类型 like '%{0}%') And (((作业类型!='出库') and (起点 like '{1}%')) OR ((作业类型='出库') and (终点 like '{2}%')))", Type, Floor, Floor);
|
|
|
|
//string str1 = string.Format(" And (作业类型 like '%{0}%') And (((作业类型='入库' OR 作业类型 like'%移库%') and (起点 like '{1}%')) OR ((作业类型='出库') and (终点 like '{2}%')))", Type, Floor, Floor);
|
|
string str2 = string.Format(" And ((终点 like '{0}%') OR (起点 like '{1}%'))", Lane, Lane);
|
|
//string str2 = string.Format(" And (((作业类型!='出库') and (终点 like '{0}%')) OR ((作业类型='出库') and (起点 like '{1}%')))", Lane, Lane);
|
|
|
|
_manstatus = string.Format("{0}{1}{2}", _manstatus, str1, str2);
|
|
|
|
TSMrefresh_Click();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
_manstatus = " F_Status>=-1 ";
|
|
|
|
TSMrefresh_Click();
|
|
}
|
|
|
|
private void dgvManager_DataSourceChanged(object sender, EventArgs e)
|
|
{
|
|
dgvManager.Columns["F_Status"].Visible = false;
|
|
}
|
|
|
|
private void cmManager_Opening(object sender, CancelEventArgs e)
|
|
{
|
|
if (this.dgvManager.CurrentRow == null)
|
|
{
|
|
TSMmanagerOK.Visible = false;
|
|
//TSMrefresh.Visible = false;
|
|
TSManager.Visible = false;
|
|
toolStripSeparator1.Visible = false;
|
|
//TSMmanagerDisassemble.Visible = false;
|
|
toolStripMenuItem1.Visible = false;
|
|
toolStripSeparator2.Visible = false;
|
|
return;
|
|
}
|
|
if (Convert.ToInt32(this.dgvManager.CurrentRow.Cells["调度任务索引"].Value) > 0)
|
|
{
|
|
TSMmanagerOK.Visible = true;
|
|
|
|
TSManager.Visible = true;
|
|
toolStripSeparator1.Visible = true;
|
|
toolStripSeparator2.Visible = true;
|
|
//TSMmanagerDisassemble.Visible = true;
|
|
toolStripMenuItem1.Visible = true;
|
|
TSManager.Text = "任务类型:" + this.dgvManager.CurrentRow.Cells["任务类型"].Value.ToString() +
|
|
";调度任务索引:" + this.dgvManager.CurrentRow.Cells["调度任务索引"].Value.ToString();
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private void TSMmanagerOK_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
char[] cc = new char[1] { ':' };
|
|
string[] split = TSManager.Text.Split(cc);
|
|
if ((split[1] == "") || (split[2] == ""))
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
char[] scc = new char[1] { ';' };
|
|
string[] strsplit = split[1].Split(scc);
|
|
int mti = 0;
|
|
int fid = Convert.ToInt32(split[2]);
|
|
if (strsplit[0] == "") return;
|
|
switch (strsplit[0])
|
|
{
|
|
case "调度任务":
|
|
mti = 1;
|
|
break;
|
|
case "自动任务":
|
|
mti = 2;
|
|
break;
|
|
case "临时任务":
|
|
mti = 3;
|
|
break;
|
|
case "手工任务":
|
|
mti = 4;
|
|
break;
|
|
}
|
|
string cap = strsplit[0];
|
|
string hw = "";
|
|
if (this.dgvManager.CurrentRow.Cells["终点货位"].Value.ToString() != "-")
|
|
{
|
|
hw = ",终点货位:" + this.dgvManager.CurrentRow.Cells["终点货位"].Value.ToString();
|
|
}
|
|
//20100108
|
|
if (MessageBox.Show("您确认条码:“" + this.dgvManager.CurrentRow.Cells["条码"].Value.ToString() + "”," + cap + split[2] + "已经被搬运到终点设备“" + this.dgvManager.CurrentRow.Cells["终点"].Value.ToString() + hw + "”了吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
|
|
CStaticClass.WcfControl.BeginModifyManageTask(mti, fid, Model.CGeneralFunction.TASKFINISH, new AsyncCallback(ModifyManageTaskCallBack), null);
|
|
//{
|
|
// MessageBox.Show(cap, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
//}
|
|
TSMrefresh_Click();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private void TSMmanagerDisassemble_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
char[] cc = new char[1] { ':' };
|
|
string[] split = TSManager.Text.Split(cc);
|
|
if ((split[1] == "") || (split[2] == ""))
|
|
{
|
|
return;
|
|
}
|
|
char[] scc = new char[1] { ';' };
|
|
string[] strsplit = split[1].Split(scc);
|
|
int mti = 0;
|
|
int fid = Convert.ToInt32(split[2]);
|
|
if (strsplit[0] == "") return;
|
|
|
|
switch (strsplit[0])
|
|
{
|
|
case "调度任务":
|
|
mti = 1;
|
|
break;
|
|
case "自动任务":
|
|
mti = 2;
|
|
break;
|
|
case "临时任务":
|
|
mti = 3;
|
|
break;
|
|
case "手工任务":
|
|
mti = 4;
|
|
break;
|
|
}
|
|
if (mti == 1)
|
|
{
|
|
dbo.ExceSQL("update T_Manage_Task set FIntoStepOK='0' where FID=" + fid + " and FIntoStepOK='-' ");
|
|
// string sql = string.Format("SELECT * FROM T_Manage_Task WHERE (FIntoStepOK = '0') AND F_ManageTaskKindIndex={0} and FID={1} ", mti, fid);
|
|
// DataView dvM = new DataView();
|
|
// dvM = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
// if (dvM.Count>0)
|
|
// {
|
|
// if (CDisassembleTask.CreateMonitor(mti, fid, routeid, dvM[0], 0) > 0)
|
|
// {
|
|
// //分解完成,修改T_Manage_Task表FIntoStepOK=1
|
|
// //20101124
|
|
// sql.Remove(0, sql.Length);
|
|
// sql.Append("update T_Manage_Task set FIntoStepOK='1' where FID=").Append(dvM[i]["FID"]
|
|
// ).Append(" and F_ManageTaskKindIndex=").Append(dvM[i]["F_ManageTaskKindIndex"]);
|
|
// dbo.ExceSQL(sql.ToString());
|
|
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
TSMrefresh_Click();
|
|
|
|
}
|
|
|
|
private void FrmModifyManage_Load(object sender, EventArgs e)
|
|
{
|
|
rbmanRun_Click(sender, e);
|
|
}
|
|
|
|
private void toolStripMenuItem1_Click(object sender, EventArgs e)
|
|
{
|
|
//删除调度任务900
|
|
try
|
|
{
|
|
char[] cc = new char[1] { ':' };
|
|
string[] split = TSManager.Text.Split(cc);
|
|
if ((split[1] == "") || (split[2] == ""))
|
|
{
|
|
return;
|
|
}
|
|
char[] scc = new char[1] { ';' };
|
|
string[] strsplit = split[1].Split(scc);
|
|
int mti = 0;
|
|
int fid = Convert.ToInt32(split[2]);
|
|
if (strsplit[0] == "") return;
|
|
switch (strsplit[0])
|
|
{
|
|
case "调度任务":
|
|
mti = 1;
|
|
break;
|
|
case "自动任务":
|
|
mti = 2;
|
|
break;
|
|
case "临时任务":
|
|
mti = 3;
|
|
break;
|
|
case "手工任务":
|
|
mti = 4;
|
|
break;
|
|
}
|
|
string hw = "";
|
|
if (this.dgvManager.CurrentRow.Cells["起点货位"].Value.ToString() != "-")
|
|
{
|
|
hw = ",起点货位:" + this.dgvManager.CurrentRow.Cells["起点货位"].Value.ToString();
|
|
}
|
|
string cap = strsplit[0];
|
|
if (MessageBox.Show("您确认条码:“" + this.dgvManager.CurrentRow.Cells["条码"].Value.ToString() + "”," + cap + split[2] + "已经被取消操作,而且人工搬运托盘退回到起点设备“" + this.dgvManager.CurrentRow.Cells["起点"].Value.ToString() + hw + "”了吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
|
|
CStaticClass.WcfControl.BeginModifyManageTask(mti, fid, Model.CGeneralFunction.TASKDELETE, new AsyncCallback(ModifyManageTaskCallBack), null);
|
|
//{
|
|
// MessageBox.Show(cap, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
//}
|
|
TSMrefresh_Click();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
int GetDeviceKindIdx(int devIdx)
|
|
{
|
|
try
|
|
{
|
|
devinfo = Model.CGetInfo.GetDeviceInfo(devIdx);
|
|
return devinfo.DeviceKind;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
int GetManageTaskIndexfromMonitor(int monitorIdx)
|
|
{
|
|
DataView dv = dbo.ExceSQL("SELECT F_ManageTaskIndex FROM T_Monitor_Task WHERE (F_MonitorIndex = " + monitorIdx + ")").Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
return Convert.ToInt32(dv[0]["F_ManageTaskIndex"]);
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
int GetManageTaskKindIndexFromMonitor(int monitorIdx)
|
|
{
|
|
DataView dv = dbo.ExceSQL("SELECT F_ManageTaskKindIndex FROM T_Monitor_Task WHERE (F_MonitorIndex = " + monitorIdx + ")").Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
return Convert.ToInt32(dv[0]["F_ManageTaskKindIndex"]);
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
int GetDeviceOrderFromMonitor(int MonitorIndex)
|
|
{
|
|
try
|
|
{
|
|
string sql = "select F_DeviceCommandIndex from T_Monitor_Task where (F_DeviceCommandIndex IS NOT NULL) and F_MonitorIndex=" + MonitorIndex;
|
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
return Convert.ToInt32(dv[0]["F_DeviceCommandIndex"]);
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string df = "";
|
|
|
|
switch (this.comboBox1.Text)
|
|
{
|
|
case "条码":
|
|
df = "条码";
|
|
break;
|
|
case "调度任务索引":
|
|
df = "调度任务索引";
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
return;
|
|
}
|
|
//20100208
|
|
string sql = "select distinct " + df + " from V_Manage_Task ";
|
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
this.textBox1.DataSource = null;
|
|
this.textBox1.DisplayMember = df;
|
|
this.textBox1.ValueMember = df;
|
|
this.textBox1.DataSource = dv;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
private void dgvManager_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
|
|
{
|
|
if (e.Button == MouseButtons.Right)
|
|
{
|
|
if ((e.RowIndex >= 0) && (e.ColumnIndex >= 0))
|
|
{
|
|
//若行已是选中状态就不再进行设置
|
|
if (dgvManager.Rows[e.RowIndex].Selected == false)
|
|
{
|
|
dgvManager.ClearSelection();
|
|
dgvManager.Rows[e.RowIndex].Selected = true;
|
|
}
|
|
//只选中一行时设置活动单元格
|
|
if (dgvManager.SelectedRows.Count == 1)
|
|
{
|
|
dgvManager.CurrentCell = dgvManager.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
|
}
|
|
//弹出操作菜单
|
|
cmManager.Show(MousePosition.X, MousePosition.Y);
|
|
}
|
|
}
|
|
}
|
|
void ModifyManageTaskCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext=string.Empty;
|
|
|
|
if (CStaticClass.WcfControl.EndModifyManageTask(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
if (this.IsDisposed == true) return;
|
|
this.BeginInvoke(new MethodInvoker (delegate()
|
|
{
|
|
TSMrefresh_Click();
|
|
}
|
|
));
|
|
|
|
}
|
|
|
|
private void FrmModifyManage_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
_formInstance = null;
|
|
}
|
|
|
|
private void dgvManager_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if ((e.ColumnIndex >= 0) && (e.RowIndex >= 0))
|
|
{
|
|
dgvManager.ClearSelection();
|
|
dgvManager.Rows[e.RowIndex].Selected = true;
|
|
dgvManager.CurrentCell = dgvManager.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
|
FrmModifyMonitor.FormInstance.comboBox1.Text = "条码";
|
|
FrmModifyMonitor.FormInstance.textBox1.Text = dgvManager.CurrentRow.Cells["条码"].Value.ToString();
|
|
FrmModifyMonitor.FormInstance.Show();
|
|
FrmModifyMonitor.FormInstance.button1_Click(sender, e);
|
|
this.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void rbmanAll_Click(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
_manstatus = " F_Status>=-1 ";
|
|
}
|
|
TSMrefresh_Click();
|
|
}
|
|
|
|
private void rbmanRun_Click(object sender, EventArgs e)
|
|
{
|
|
if (rbmanRun.Checked == true)
|
|
{
|
|
_manstatus = " F_Status>=1 ";
|
|
}
|
|
TSMrefresh_Click();
|
|
}
|
|
|
|
private void rbmanWait_Click(object sender, EventArgs e)
|
|
{
|
|
RadioButton rb = (RadioButton)sender;
|
|
if (rb.Checked == true)
|
|
{
|
|
_manstatus = " F_Status=0 ";
|
|
}
|
|
TSMrefresh_Click();
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
FrmRelativeIDSet.FormInstance.Show();
|
|
}
|
|
|
|
private void toolStripMenuItemLevel1_Click(object sender, EventArgs e)
|
|
{
|
|
SetTaskLevel(21);
|
|
}
|
|
private void SetTaskLevel( int level)
|
|
{
|
|
|
|
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
char[] cc = new char[1] { ':' };
|
|
string[] split = TSManager.Text.Split(cc);
|
|
if ((split[1] == "") || (split[2] == ""))
|
|
{
|
|
return;
|
|
}
|
|
char[] scc = new char[1] { ';' };
|
|
string[] strsplit = split[1].Split(scc);
|
|
int mti = 0;
|
|
int fid = Convert.ToInt32(split[2]);
|
|
if (strsplit[0] == "") return;
|
|
switch (strsplit[0])
|
|
{
|
|
case "调度任务":
|
|
mti = 1;
|
|
break;
|
|
case "自动任务":
|
|
mti = 2;
|
|
break;
|
|
case "临时任务":
|
|
mti = 3;
|
|
break;
|
|
case "手工任务":
|
|
mti = 4;
|
|
break;
|
|
}
|
|
|
|
|
|
sql = string.Format("update T_Manage_Task set FTASKLEVEL={0} where FID={1} and F_ManageTaskKindIndex={2}",level,fid, mti);
|
|
dbo.ExceSQL(sql);
|
|
sql = string.Format("update T_Monitor_Task set F_MonitorTaskLevel={0} where F_ManageTaskIndex={1} and F_ManageTASKKINDINDEX={2}", level, fid, mti);
|
|
dbo.ExceSQL(sql);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
|
|
}
|
|
}
|
|
|
|
private void toolStripMenuItemLevel2_Click(object sender, EventArgs e)
|
|
{
|
|
SetTaskLevel(11);
|
|
}
|
|
|
|
private void toolStripMenuItemLevel3_Click(object sender, EventArgs e)
|
|
{
|
|
SetTaskLevel(0);
|
|
}
|
|
}
|
|
}
|