AHTC/RGD/RGD.WCS/FrmModifyManage.cs
2025-05-19 09:22:33 +08:00

455 lines
20 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using RGD.Common;
using RGD.DataService;
using RGD.DBUtility;
using System;
using System.Data;
using System.Windows.Forms;
namespace RGD.WCS
{
public partial class FrmModifyManage : Form
{
private 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; }
}
public FrmModifyManage()
{
InitializeComponent();
_formInstance = this;
}
private void FrmModifyManage_Load(object sender, EventArgs e)
{
rbmanRun_CheckedChanged(sender, e);
}
/// <summary>
/// 运行任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void rbmanRun_CheckedChanged(object sender, EventArgs e)
{
if (rbmanRun.Checked == true)
{
_manstatus = " F_Status>=1 ";
}
TSMrefresh_Click(sender, e);
}
/// <summary>
/// 全部任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void rbmanAll_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = (RadioButton)sender;
if (rb.Checked == true)
{
_manstatus = " F_Status<>-1 ";
}
TSMrefresh_Click(sender, e);
}
/// <summary>
/// 等待任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void rbmanWait_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = (RadioButton)sender;
if (rb.Checked == true)
{
_manstatus = " F_Status=0 ";
}
TSMrefresh_Click(sender, e);
}
private void TSMrefresh_Click(object sender, EventArgs e)
{
CStaticClass.RealRefresh = true;
this.dgvManager.DataSource = DbHelperSQL.Query("select * from V_Manage_Task where " + _manstatus).Tables[0].DefaultView;
}
/// <summary>
/// 开始查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (this.textBox1.Text.Trim().Length == 0) return;
int index = 0;
bool isint = int.TryParse(this.textBox1.Text.Trim(), out index);
if (this.comboBox1.Text == "表箱条码")
{
//20091016
_manstatus = " 表箱条码 like'%" + this.textBox1.Text.Trim() + "%' ";
}
if (this.comboBox1.Text == "调度任务索引")
{
if (isint == false)
{
//MessageBox.Show("请输入数字!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
textBox1.Text = string.Empty;
return;
}
_manstatus = " 调度任务索引='" + this.textBox1.Text.Trim() + "' ";
}
TSMrefresh_Click(sender, e);
}
/// <summary>
/// 显示全部
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
_manstatus = " F_Status<>-1 ";
TSMrefresh_Click(sender, e);
}
private void dgvManager_DataSourceChanged(object sender, EventArgs e)
{
dgvManager.Columns["F_Status"].Visible = false;
}
private void dgvManager_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
}
private void dgvManager_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if ((e.RowIndex >= 0) && (e.Button == MouseButtons.Right) && (e.ColumnIndex >= 0))
{
dgvManager.ClearSelection();
dgvManager.Rows[e.RowIndex].Selected = true;
dgvManager.CurrentCell = dgvManager.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
}
/// <summary>
/// 任务完成
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSMmanagerOK_Click(object sender, EventArgs e)
{
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 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;
}
CGetState cgs = new CGetState();
DbHelperSQL.ExecuteSql("update T_Monitor_Task set F_STATUS=-1 where F_ManageTaskKindIndex=" + mti + " and F_ManageTaskIndex=" + fid + " and F_STATUS=0");
DataView dv = DbHelperSQL.Query("SELECT F_ManageTaskKindIndex, F_ManageTaskIndex,F_DeviceIndex,F_MonitorIndex,F_Status,F_DeviceCommandIndex " +
",F_NumParam2,F_NumParam5,F_TxtParam FROM T_Monitor_Task Where F_ManageTaskIndex=" + fid + " and F_ManageTaskKindIndex= " +
mti).Tables[0].DefaultView;
if (dv.Count > 0)
{
string sss = "调度任务索引:" + fid.ToString();
//20100108
CCarryConvert.WriteDarkCasket("调度任务管理", "调度任务手工报告完成", "表箱条码:" + this.dgvManager.CurrentRow.Cells["表箱条码"].Value.ToString(), sss);
for (int i = 0; i < dv.Count; i++)
{
if (Convert.ToInt32(dv[i]["F_DeviceIndex"]) == 1001)
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), CGeneralFunction.TASKFINISH);
//1 辅料出库;2 空托盘回收;3残托盘回收
if (Convert.ToInt32(dv[i]["F_DeviceCommandIndex"]) == 1)
{
DataTable tableAGVGate = DbHelperSQL.Query("SELECT F_AGVGateDeviceIndex FROM T_BASE_AGV_GATE WHERE F_ADDRESS = " + Convert.ToInt32(dv[i]["F_NumParam5"]) + "").Tables[0];
if (tableAGVGate.Rows.Count > 0)
{
DbHelperSQL.ExecuteSql("UPDATE T_BASE_DEVICE SET F_PALLETBARCODE='" + dv[i]["F_TxtParam"] + "',F_HAVEGOODS = 1 WHERE F_DEVICEINDEX = " + Convert.ToInt32(tableAGVGate.Rows[0]["F_AGVGateDeviceIndex"]) + "");
}
}
if ((Convert.ToInt32(dv[i]["F_DeviceCommandIndex"]) == 2) || (Convert.ToInt32(dv[i]["F_DeviceCommandIndex"]) == 3))
{
DataTable tableAGVGate = DbHelperSQL.Query("SELECT F_AGVGateDeviceIndex FROM T_BASE_AGV_GATE WHERE F_ADDRESS = " + Convert.ToInt32(dv[i]["F_NumParam2"]) + "").Tables[0];
if (tableAGVGate.Rows.Count > 0)
{
DbHelperSQL.ExecuteSql("UPDATE T_BASE_DEVICE SET F_PALLETBARCODE='-',F_HAVEGOODS = 0 WHERE F_DEVICEINDEX = " + Convert.ToInt32(tableAGVGate.Rows[0]["F_AGVGateDeviceIndex"]) + "");
}
}
}
else
{
if (Convert.ToInt32(dv[i]["F_Status"]) >= 1)
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), 1);
}
else
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), CGeneralFunction.TASKFINISH);
}
}
}
}
else
{
if (mti == 1)
{
int startdevice = Convert.ToInt32(this.dgvManager.CurrentRow.Cells["起点"].Value);
int enddevice = Convert.ToInt32(this.dgvManager.CurrentRow.Cells["终点"].Value);
if (dgvManager.CurrentRow.Cells["起点货位"].Value.ToString() != "-" || dgvManager.CurrentRow.Cells["终点货位"].Value.ToString() != "-")
{
string sResult = "";
string IO_FLAG;
string LOC_NO;
if (dgvManager.CurrentRow.Cells["起点货位"].Value.ToString() == "-")
{//入库
IO_FLAG = "02";
LOC_NO = dgvManager.CurrentRow.Cells["终点货位"].Value.ToString();
}
else
{//出库
IO_FLAG = "01";
LOC_NO = dgvManager.CurrentRow.Cells["起点货位"].Value.ToString();
}
RGD.MdsAPI.WMS.uploadStackIODet ss = new RGD.MdsAPI.WMS.uploadStackIODet();
ss.Notify(fid.ToString(), IO_FLAG, LOC_NO, out sResult);
}
}
//回写管理表
cgs.ReturnManageInfo(fid, mti, true);
}
this.dgvManager.DataSource = DbHelperSQL.Query("select * from V_Manage_Task where " + _manstatus).Tables[0].DefaultView;
}
catch (Exception ex)
{
//throw ex;
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("调度任务手工完成时:" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "调度任务手工完成时:" + ex.Message, true);
}
}
}
/// <summary>
/// 分解任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSMmanagerDisassemble_Click(object sender, EventArgs e)
{
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;
}
if (mti == 1)
{
DbHelperSQL.ExecuteSql("update T_Manage_Task set FIntoStepOK='0' where FID=" + fid + " and FIntoStepOK='-' ");
}
}
catch (Exception ex)
{
//throw ex;
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("手工拆分调度任务时:" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "手工拆分调度任务时:" + ex.Message, true);
}
}
}
/// <summary>
/// 任务删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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;
}
CGetState cgs = new CGetState();
//20090902
DbHelperSQL.ExecuteSql("update T_Manage_Task set FExceptionNO=" + CGeneralFunction.TASKDELETE + " where (F_ManageTaskKindIndex = " + mti + ") AND (FID = " + fid + ")");
DbHelperSQL.ExecuteSql("update T_Monitor_Task set F_STATUS=-1 where F_ManageTaskKindIndex=" + mti + " and F_ManageTaskIndex=" + fid + " and F_STATUS=0");
DataView dv = DbHelperSQL.Query("SELECT F_ManageTaskKindIndex, F_ManageTaskIndex,F_DeviceIndex,F_MonitorIndex,F_Status,F_DeviceCommandIndex " +
",F_NumParam2,F_NumParam5,F_TxtParam FROM T_Monitor_Task Where F_ManageTaskIndex=" + fid + " and F_ManageTaskKindIndex= " +
mti).Tables[0].DefaultView;
if (dv.Count > 0)
{
string sss = "调度任务索引:" + fid.ToString();
//20100108
CCarryConvert.WriteDarkCasket("调度任务管理", "调度任务被手工删除!", "表箱条码:" + this.dgvManager.CurrentRow.Cells["表箱条码"].Value.ToString(), sss);
for (int i = 0; i < dv.Count; i++)
{
if (Convert.ToInt32(dv[i]["F_DeviceIndex"]) == 1001)
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), CGeneralFunction.TASKDELETE);
//1 辅料出库;2 空托盘回收;3残托盘回收
if ((Convert.ToInt32(dv[i]["F_DeviceCommandIndex"]) == 2) || (Convert.ToInt32(dv[i]["F_DeviceCommandIndex"]) == 3))
{
DataTable tableAGVGate = DbHelperSQL.Query("SELECT F_AGVGateDeviceIndex FROM T_BASE_AGV_GATE WHERE F_ADDRESS = " + Convert.ToInt32(dv[i]["F_NumParam2"]) + "").Tables[0];
if (tableAGVGate.Rows.Count > 0)
{
DbHelperSQL.ExecuteSql("UPDATE T_BASE_DEVICE SET F_PALLETBARCODE='" + dv[i]["F_TxtParam"] + "',F_HAVEGOODS = 1 WHERE F_DEVICEINDEX = " + Convert.ToInt32(tableAGVGate.Rows[0]["F_AGVGateDeviceIndex"]) + "");
}
}
}
else
{
if (Convert.ToInt32(dv[i]["F_Status"]) >= 1)
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), 1);
}
else
{
cgs.ActionComplete(Convert.ToInt32(dv[i]["F_DeviceIndex"]), Convert.ToInt32(dv[i]["F_MonitorIndex"]), CGeneralFunction.TASKDELETE);
}
}
}
}
else
{//20091107
if (this.dgvManager.CurrentRow.Cells["终点"].Value.ToString() == "2240")
{
DbHelperSQL.ExecuteSql("update T_Base_Device set F_CreateLock='0' where F_DeviceIndex=" + this.dgvManager.CurrentRow.Cells["终点"].Value);
}
if (mti == 1)
{
}
//回写管理表
cgs.ReturnManageInfo(fid, mti, false);
}
this.dgvManager.DataSource = DbHelperSQL.Query("select * from V_Manage_Task where " + _manstatus).Tables[0].DefaultView;
}
catch (Exception ex)
{
//throw ex;
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("调度任务手工完成时:" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "调度任务手工完成时:" + ex.Message, true);
}
}
}
}
}