山东时代原料后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.

699 lines
29 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 Microsoft.VisualBasic;
using System.ServiceModel;
namespace wcfControlMonitorClient
{
/// <summary>
/// Creator:Richard.liu
/// 模仿管理下达自动任务
/// </summary>
public partial class FrmAutoCommand : Form
{
DBOperator dbo = CStaticClass.dbo;
int AutoManageIdx = 0;
#region ====变量定义
CommonClassLib.UCellPanel cellPanel = null;
#endregion
private static FrmAutoCommand _formInstance;
public static FrmAutoCommand FormInstance
{
get
{
if (_formInstance == null)
{
_formInstance = new FrmAutoCommand();
}
return _formInstance;
}
set { _formInstance = value; }
}
public FrmAutoCommand()
{
dbo.Open();
InitializeComponent();
_formInstance = this;
////特殊命令:堆垛机取坐标001,送坐标002;条码比对003;称重回传004;
////搬运木块码盘005(一个主搬运木块任务,拆分成多个单一搬运任务)
//this.cbKind.Items.Add("");
//this.cbKind.Items.Add("条码比对");
//this.cbKind.Items.Add("称重回传");
////this.cbKind.Items.Add("机器人码盘");
//this.cbKind.Text="条码比对";
////cbtasktype
DataSet ds = dbo.ExceSQL("select * from T_ITEMTASKTYPE where FCODE !='-'");
if (ds.Tables[0].DefaultView.Count > 0)
{
cbtasktype.ValueMember = "FCODE";
cbtasktype.DisplayMember = "FNAME";
cbtasktype.DataSource = ds.Tables[0].DefaultView;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您确认要增加自动任务吗,若下达任务时请人工确认好里外货物状态以及其余充电任务或换层任务的注意事项,并确认任务是否可行", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) !=DialogResult.OK)
{
return;
}
//if (tbFPALLETBARCODE.Text.Trim().Length <6)
//{
// MessageBox.Show("条码不够6位字符!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return;
//}
if ((this.cbtasktype.Text.Trim().Length == 0) || (this.cbstartposition.Text.Trim().Length == 0) || (this.cbendposition.Text.Trim().Length == 0))
{
MessageBox.Show("搬运任务类型、起点位置、终点位置都不允许保持空值!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if ((tbstartsite.Enabled == true) && (tbstartsite.Text.Trim().Length == 0))
{
MessageBox.Show("起点位置是巷道,所以必须指定货架位置!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if ((tbendsite.Enabled == true) && (tbendsite.Text.Trim().Length == 0))
{
MessageBox.Show("终点位置是巷道,所以必须指定货架位置!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if ((cbKind.Text.Trim().Length > 0) &&(txtparm.Text.Trim().Length==0))
{
MessageBox.Show("特殊命令如果不是空值,必须指定特殊参数!", "误操作提示", MessageBoxButtons.OK,MessageBoxIcon.Warning );
return;
}
if ((cbInWorkBench.Text.Trim().Length > 0) && (cbInWorkBench.Text.Trim().Length == 0))
{
MessageBox.Show("是否进工位必须选定!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//调用服务
string errtext=string.Empty;
string startcell=string.Empty,endcell=string.Empty;
if (tbstartsite.SelectedValue != null)
{
startcell = tbstartsite.SelectedValue.ToString();
}
else
{
startcell = tbstartsite.Text;
}
if (tbendsite.SelectedValue != null)
{
endcell = tbendsite.SelectedValue.ToString();
}
else
{
endcell = tbendsite.Text;
}
if (cbtasktype.Text == "移库")//山东
{
if (cbstartposition.Text != cbendposition.Text)
{
MessageBox.Show("下达移库任务时库必须相同!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
//if (cbtasktype.Text == "换层任务")//晟碟
//{
// if (startcell.Substring(6, 2) == endcell.Substring(6, 2))
// {
// MessageBox.Show("下达换层任务时层值相同!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return;
// }
//}
Model.AutoTask at=new Model.AutoTask(Convert.ToInt32(this.cbtasktype.SelectedValue),tbFPALLETBARCODE.Text,cbstartposition.SelectedValue.ToString(),startcell ,cbendposition.SelectedValue.ToString(),endcell ,this.tbstartsite.Enabled,this.tbendsite.Enabled,Convert.ToInt32( this.cbInWorkBench.Text));
CStaticClass.WcfControl.BeginBuildAutoTask(at, new AsyncCallback(BuildAutoTaskCallBack), at);
{
//MessageBox.Show("下发成功", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//return;
}
}
private void button2_Click(object sender, EventArgs e)
{
string Sql, _kind, _txtparm;
DataSet ds;
//dbo.TransBegin();
try
{
//插入IO_CONTROLDETAIL
//特殊命令:堆垛机取坐标001,送坐标002;条码比对003;称重回传004;
switch (this.cbKind.Text.Trim())
{
case "条码比对":
_kind = "003";
break;
case "称重回传":
_kind = "004";
break;
//case "机器人码盘":
// _kind = "005";
// break;
default:
_kind = "003";
break;
}
_txtparm = this.txtparm.Text.Trim();
if (_kind == "005")
{
}
else
{
int fid=GetIOControlDetailFid(1, AutoManageIdx);
Sql = "insert into IO_CONTROLDETAIL(FID,FCONTROLID,F_ManageTaskKindIndex,FKIND,FINDEX,FVALUE) " +
"values("+fid+"," + AutoManageIdx + ",1,'" + _kind + "',0,'" + _txtparm + "')";
ds = dbo.ExceSQL(Sql);
}
//dbo.TransCommit();
}
catch (Exception ex)
{
//dbo.TransRollback();
throw ex;
}
}
private void FrmAutoCommand_Load(object sender, EventArgs e)
{
cbInWorkBench.SelectedIndex = 2;
if (cellPanel == null)
{
cellPanel = new CommonClassLib.UCellPanel(this, tbstartsite, null,tbFPALLETBARCODE, string.Empty);
cellPanel.TaskType = "100";
cellPanel.GoodsName = "";
cellPanel.Dock = DockStyle.Fill;
cellPanel.AllowWareHouseChanged = false;
plCell.Controls.Add(cellPanel);
}
cellPanel.Visible = true;
}
private void cbtasktype_SelectedIndexChanged(object sender, EventArgs e)
{
this.tbFPALLETBARCODE.Enabled = true;
this.tbFPALLETBARCODE.Text = "";
int IOtype =Convert.ToInt32(this.cbtasktype.SelectedValue.ToString());
DataView dvs = dbo.ExceSQL("SELECT DISTINCT F_StartDevice,F_DeviceName FROM T_Base_Route,T_Base_Device where F_StartDevice = F_DeviceIndex and T_Base_Route.F_RouteKind = " + IOtype).Tables[0].DefaultView ;
//cbstartposition
cbstartposition.ValueMember = "F_StartDevice";
cbstartposition.DisplayMember = "F_DeviceName";
cbstartposition.DataSource = dvs;
DataView dvs1 = dbo.ExceSQL("SELECT DISTINCT F_EndDevice,F_DeviceName FROM T_Base_Route,T_Base_Device where F_EndDevice = F_DeviceIndex and T_Base_Route.F_RouteKind = " + IOtype).Tables[0].DefaultView;
//cbendposition
cbendposition.ValueMember = "F_EndDevice";
cbendposition.DisplayMember = "F_DeviceName";
cbendposition.DataSource = dvs1;
}
private void cbstartposition_SelectedIndexChanged(object sender, EventArgs e)
{
tbstartsite.DataSource = null;
tbstartsite.Text = "";
//如果是巷道设备tbstartsite.enable=true
DataSet ds = dbo.ExceSQL("select FLaneWay from ST_CELL where FLaneWay=" + Convert.ToInt32(cbstartposition.SelectedValue) + "");
//DataSet ds = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=10 and F_DeviceIndex=" + Convert.ToInt32(cbstartposition.SelectedValue) + "");
if (ds.Tables[0].DefaultView.Count > 0)
{
tbstartsite.Enabled = true;
plCell.Enabled = true;
if (cellPanel == null)
{
cellPanel = new CommonClassLib.UCellPanel(this, tbstartsite, null, null, string.Empty);
cellPanel.TaskType = "100";
cellPanel.GoodsName = "";
cellPanel.Dock = DockStyle.Fill;
cellPanel.AllowWareHouseChanged = false;
plCell.Controls.Add(cellPanel);
}
cellPanel.ControlCellCode = tbstartsite;
cellPanel.Laneway = this.cbstartposition.SelectedValue.ToString();
cellPanel.WareHouse = GetWarehouse(Convert.ToInt32(this.cbstartposition.SelectedValue));
cellPanel.Visible = plCell.Visible;
}
else
{
tbstartsite.Enabled = true;
DataView dv1 = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_Lane_Gate,T_Base_Device WHERE T_Base_Lane_Gate.F_LaneGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_DeviceKindIndex=9 and F_LaneIndex=" + cbstartposition.SelectedValue + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
tbstartsite.DisplayMember = "F_DeviceName";
tbstartsite.ValueMember = "F_DeviceIndex";
tbstartsite.DataSource = dv1;
}
else
{
plCell.Enabled = false;
tbstartsite.Enabled = false;
}
}
DataView dv = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=11 and F_DeviceIndex=" + Convert.ToInt32(cbstartposition.SelectedValue) + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
tbstartsite.Enabled = true;
dv = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_AGV_Gate,T_Base_Device WHERE T_Base_AGV_Gate.F_AGVGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_ChannelsIndex=" + cbstartposition.SelectedValue + "").Tables[0].DefaultView;
tbstartsite.DisplayMember = "F_DeviceName";
tbstartsite.ValueMember = "F_DeviceIndex";
tbstartsite.DataSource = dv;
}
//labelCount.Visible = false;
//textBoxCount.Visible = false;
//int type = Convert.ToInt32(this.cbtasktype.SelectedValue);
int startdevice = Convert.ToInt32(this.cbstartposition.SelectedValue);
int enddevice = Convert.ToInt32(this.cbendposition.SelectedValue);
//if ((startdevice >= 18001 && startdevice <= 18004) || (enddevice >= 18001 && enddevice <= 18004))
//{
// panelType.Visible = true;
//}
//else
//{
// panelType.Visible = false;
//}
//comboBoxType.SelectedIndex = -1;
//comboBoxType.Text = "";
}
private void cbendposition_SelectedIndexChanged(object sender, EventArgs e)
{
tbendsite.DataSource = null;
tbendsite.Text = "";
//如果是巷道设备tbstartsite.enable=true
DataSet ds = dbo.ExceSQL("select FLaneWay from ST_CELL where FLaneWay=" + Convert.ToInt32(cbendposition.SelectedValue) + "");
//DataSet ds = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=10 and F_DeviceIndex= " +Convert.ToInt32( cbendposition.SelectedValue) + "");
if (ds.Tables[0].DefaultView.Count > 0)
{
tbendsite.Enabled = true;
//开启货位表
plCell.Enabled = true;
if (cellPanel == null)
{
cellPanel = new CommonClassLib.UCellPanel(this, tbendsite, null, null, string.Empty);
cellPanel.TaskType = "100";
cellPanel.GoodsName = "";
cellPanel.Dock = DockStyle.Fill;
cellPanel.AllowWareHouseChanged = false;
plCell.Controls.Add(cellPanel);
}
cellPanel.ControlCellCode = tbendsite;
cellPanel.Laneway = this.cbendposition.SelectedValue.ToString();
cellPanel.WareHouse = GetWarehouse(Convert.ToInt32(this.cbendposition.SelectedValue));
cellPanel.Visible = plCell.Visible;
}
else
{
tbendsite.Enabled = true;
DataView dv1 = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_Lane_Gate,T_Base_Device WHERE T_Base_Lane_Gate.F_LaneGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_DeviceKindIndex=9 and F_LaneIndex=" + cbendposition.SelectedValue + "").Tables[0].DefaultView;
if (dv1.Count > 0)
{
tbendsite.DisplayMember = "F_DeviceName";
tbendsite.ValueMember = "F_DeviceIndex";
tbendsite.DataSource = dv1;
}
else
{
plCell.Enabled = false;
tbendsite.Enabled = false;
}
}
DataView dv = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=11 and F_DeviceIndex=" + Convert.ToInt32(cbendposition.SelectedValue) + "").Tables[0].DefaultView;
if (dv.Count > 0)
{
tbendsite.Enabled = true;
dv = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_AGV_Gate,T_Base_Device WHERE T_Base_AGV_Gate.F_AGVGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_ChannelsIndex=" + cbendposition.SelectedValue + "").Tables[0].DefaultView;
tbendsite.DisplayMember = "F_DeviceName";
tbendsite.ValueMember = "F_DeviceIndex";
tbendsite.DataSource = dv;
}
int startdevice = Convert.ToInt32(this.cbstartposition.SelectedValue);
int enddevice = Convert.ToInt32(this.cbendposition.SelectedValue);
//if ((startdevice >= 18001 && startdevice <= 18004) || (enddevice >= 18001 && enddevice <= 18004))
//{
// panelType.Visible = true;
//}
//else
//{
// panelType.Visible = false;
//}
}
//private void cbstartposition_SelectedIndexChanged(object sender, EventArgs e)
//{
// tbstartsite.DataSource = null;
// tbstartsite.Text = "";
// //如果是巷道设备tbstartsite.enable=true
// DataSet ds = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=10 and F_DeviceIndex=" +Convert.ToInt32( cbstartposition.SelectedValue )+ "");
// if (ds.Tables[0].DefaultView.Count > 0 || cbtasktype.Text == "换层任务")
// {
// tbstartsite.Enabled = true;
// plCell.Enabled = true;
// if (cellPanel == null)
// {
// cellPanel = new CommonClassLib.UCellPanel(this, tbstartsite, null,null, string.Empty);
// cellPanel.TaskType = "100";
// cellPanel.GoodsName = "";
// cellPanel.Dock = DockStyle.Fill;
// cellPanel.AllowWareHouseChanged = false ;
// plCell.Controls.Add(cellPanel);
// }
// cellPanel.ControlCellCode = tbstartsite;
// cellPanel.Laneway = 18001.ToString();
// cellPanel.WareHouse = GetWarehouse(Convert.ToInt32(18001));
// cellPanel.Visible = plCell.Visible;
// }
// else
// {
// plCell.Enabled = false;
// tbstartsite.Enabled = false;
// }
// DataView dv = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=11 and F_DeviceIndex=" + Convert.ToInt32(cbstartposition.SelectedValue) + "").Tables[0].DefaultView;
// if (dv.Count > 0)
// {
// tbstartsite.Enabled = true;
// dv = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_AGV_Gate,T_Base_Device WHERE T_Base_AGV_Gate.F_AGVGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_ChannelsIndex=" + cbstartposition.SelectedValue + "").Tables[0].DefaultView;
// tbstartsite.DisplayMember = "F_DeviceName";
// tbstartsite.ValueMember = "F_DeviceIndex";
// tbstartsite.DataSource = dv;
// }
//}
//private void cbendposition_SelectedIndexChanged(object sender, EventArgs e)
//{
// tbendsite.DataSource = null;
// tbendsite.Text = "";
// //如果是巷道设备tbstartsite.enable=true
// DataSet ds = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=10 and F_DeviceIndex= " +Convert.ToInt32( cbendposition.SelectedValue) + "");
// if (ds.Tables[0].DefaultView.Count > 0 || cbtasktype.Text == "换层任务")
// {
// tbendsite.Enabled = true;
// plCell.Enabled = true;
// if (cellPanel == null)
// {
// cellPanel = new CommonClassLib.UCellPanel(this, tbendsite, null, null,string.Empty);
// cellPanel.TaskType = "100";
// cellPanel.GoodsName = "";
// cellPanel.Dock = DockStyle.Fill;
// cellPanel.AllowWareHouseChanged = false;
// plCell.Controls.Add(cellPanel);
// }
// cellPanel.ControlCellCode = tbendsite;
// cellPanel.Laneway = 18001.ToString();
// cellPanel.WareHouse = GetWarehouse(Convert.ToInt32(18001));
// cellPanel.Visible = plCell.Visible;
// }
// else
// {
// plCell.Enabled = false;
// tbendsite.Enabled = false;
// }
// DataView dv = dbo.ExceSQL("select F_DeviceIndex,F_DeviceKindIndex from T_Base_Device where F_DeviceKindIndex=11 and F_DeviceIndex=" + Convert.ToInt32(cbendposition.SelectedValue) + "").Tables[0].DefaultView;
// if (dv.Count > 0)
// {
// tbendsite.Enabled = true;
// dv = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceName, T_Base_Device.F_DeviceIndex FROM T_Base_AGV_Gate,T_Base_Device WHERE T_Base_AGV_Gate.F_AGVGateDeviceIndex = T_Base_Device.F_DeviceIndex and F_ChannelsIndex=" + cbendposition.SelectedValue + "").Tables[0].DefaultView;
// tbendsite.DisplayMember = "F_DeviceName";
// tbendsite.ValueMember = "F_DeviceIndex";
// tbendsite.DataSource = dv;
// }
//}
int GetIOControlDetailFid(int ManageTaskKindIndex,int FCONTROLID)
{
DataSet ds = dbo.ExceSQL("SELECT MAX(FID) AS MaxFID FROM IO_CONTROLDETAIL GROUP BY F_ManageTaskKindIndex, FCONTROLID HAVING (F_ManageTaskKindIndex = " + ManageTaskKindIndex + ") AND (FCONTROLID = " + FCONTROLID + ")");
if (ds.Tables[0].DefaultView.Count > 0)
{
return (Convert.ToInt32(ds.Tables[0].DefaultView[0]["MaxFID"]) + 1);
}
else
{
return 1;
}
}
void BuildAutoTaskCallBack(IAsyncResult ar)
{
string errtext=string.Empty;
if (CStaticClass.WcfControl.EndBuildAutoTask(out errtext, ar) == false)
{
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void FrmAutoCommand_FormClosing(object sender, FormClosingEventArgs e)
{
_formInstance = null;
}
string GetWarehouse(int laneway)
{
DataView dv = dbo.ExceSQL(string.Format("SELECT DISTINCT FWAREHOUSE FROM ST_CELL WHERE (FLaneWay = {0})",laneway)).Tables[0].DefaultView;
if (dv.Count > 0)
{
return dv[0][0].ToString();
}
else
{
return "01";
}
}
StringBuilder sql = new StringBuilder();
public bool IFExitTempManageIndex(int fid)
{
//20100108
DataView dv = new DataView();
try
{
//20101124
sql.Remove(0, sql.Length);
sql.Append("SELECT fid FROM T_Manage_Task WHERE (F_ManageTaskKindIndex=2 and fid = ").Append(fid).Append(")");
dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
if (dv.Count > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{//20100108
throw ex;
}
finally
{//20100108
dv.Dispose();
}
}
/// <summary>
/// 记录调度生成的调度任务的索引的最大值
/// </summary>
/// <param name="fid">调度生成的调度任务的索引</param>
public void RecordMaxTempManageTaskFID(int fid)
{//20100108
DataView dv = new DataView();
try
{//20100108
dv = dbo.ExceSQL("select F_ManageTaskIndex from T_Base_Manage_Task_Index_Temp_Task").Tables[0].DefaultView;
if (dv.Count > 0)
{
//if (fid == 19998)
//{
// dbo.ExceSQL("UPDATE T_Base_Manage_Task_Index_Temp_Task SET F_ManageTaskIndex =10001");
// return;
//}
//if (fid > Convert.ToInt32(dv[0]["F_ManageTaskIndex"]))
//{
//20101124
sql.Remove(0, sql.Length);
sql.Append("UPDATE T_Base_Manage_Task_Index_Temp_Task SET F_ManageTaskIndex =").Append(fid);
dbo.ExceSQL(sql.ToString());
return;
//}
}
else
{
//20101124
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO T_Base_Manage_Task_Index_Temp_Task (F_ManageTaskIndex)VALUES (").Append(fid).Append(")");
dbo.ExceSQL(sql.ToString());
return;
}
}
catch (Exception ex)
{//20100108
// _DisassembleTaskError = "获得记录调度任务最大任务索引失败," + ex.Message;
throw ex;
//return 0;
}
finally
{//20100108
dv.Dispose();
}
}
public int GetTempManageIdx()
{
//20100108
DataSet ds = new DataSet();
try
{
int maxIdx = 10001;
ds = dbo.ExceSQL("SELECT F_ManageTaskIndex FROM T_Base_Manage_Task_Index_Temp_Task");
if (ds.Tables[0].DefaultView.Count > 0)
{
if ((Convert.ToInt32(ds.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1) >= 19998)
{
maxIdx = 10001;
}
else
{
maxIdx = (Convert.ToInt32(ds.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1);
}
}
else
{
maxIdx = 10001;
}
//判断临时调度任务表是否有重复值
if (IFExitTempManageIndex(maxIdx) == true)
{
RecordMaxTempManageTaskFID(maxIdx);
maxIdx = GetTempManageIdx();
return maxIdx;
}
RecordMaxTempManageTaskFID(maxIdx);
return maxIdx;
}
catch (Exception ex)
{//20100108
throw ex;
//return 0;
}
finally
{//20100108
ds.Dispose();
}
}
private void button3_Click(object sender, EventArgs e)
{
if(comboBox_Z.SelectedIndex<0||comboBox_Y.SelectedIndex <0)
{
MessageBox.Show("请选择排或层!");
return;
}
int Z=comboBox_Z.SelectedIndex+9;
int Y = comboBox_Y.SelectedIndex + 1;
DataView dv = new DataView();
try
{
int enddevice;
int startdevice = 18005;
string sql = string.Format("select * from ST_CELL where F_Z={0} and F_Y={1} and FCELLSTATUS=1 and FRUNSTATUS=0", Z, Y);
dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
if (dv.Count > 0)
{
int count = dv.Count;
for (int i = 0; i < count; i++)
{
string CellCode = Convert.ToString(dv[i]["FCELLCODE"]);
string barcodes = Convert.ToString(dv[i]["FPALLETBARCODE"]);//托盘条码
string dtimes = DateTime.Now.ToString("u");//20101028
dtimes = dtimes.Substring(0, dtimes.Length - 1);//20101028
int Laneindex =18005;
enddevice = 12035;
int AutoManageIdx = GetTempManageIdx();//调度任务索引
string stack = "0";//堆垛机FSTACK
int controltype = 2;//入库
string sqlstr = string.Format("insert into T_Manage_Task(FID,FPALLETBARCODE,FCONTROLTASKTYPE,F_ManageTaskKindIndex,FSTARTWAREHOUSE,FSTARTDEVICE,FSTARTCELL,FENDWAREHOUSE,FENDDEVICE,FENDCELL,FLANEWAY,FSTACK,FUseAwayFork,FBEGTIME,FStartCol,FStartLayer,FLOGIC_AREA) values ({0},'{1}',{2},{3},{4},{5},'{6}',{7},{8},'{9}',{10},{11},'{12}','{13}',{14},{15},{16})", AutoManageIdx, barcodes, controltype, 2, 1, startdevice, CellCode, 1, enddevice, "-", Laneindex, stack, "-", dtimes, 0, 0, enddevice);
dbo.ExceSQL(sqlstr);
sqlstr = string.Format("update ST_CELL set FRunStatus = 1 where FLaneWay= {0} and fcellcode = '{1}'", Laneindex, CellCode);
dbo.ExceSQL(sqlstr);
// CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "自动生成入库任务", startdevice.ToString(), AutoManageIdx.ToString());
}
string mes = string.Format("成功生成{0}条出库任务", count);
MessageBox.Show(mes);
}
else
{
MessageBox.Show("无满足条件的货位!");
}
}
catch (Exception ex)
{
throw;
}
}
}
}