using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using CoreFS.CA06;
using CoreFS.SA06;
using Core.Mes.Client.Comm;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using com.steering.pss.plan.jgtransa.mode;
namespace Core.StlMes.Client.Plan.Order
{
///
/// 接箍计划
///
/// 2015.07.04
/// v1.1
public partial class FrmJgOperatPln : FrmBase
{
public FrmJgOperatPln()
{
InitializeComponent();
}
private void FrmJgOperatPln_Load(object sender, EventArgs e)
{
Init();
}
///
/// 调用平台菜单控制
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query": //查询
doQuery();
break;
case "PlanEdit": //接箍作业计划编制
PlanEdit();
break;
case "PlanUpdate": //接箍作业计划修改
PlanUpdate();
break;
//case "SaveCutpl": //保存接箍作业计划
// SaveCutpl();
// break;
//case "SaveJgproc": //保存接箍加工信息
// SaveJgproc();
// break;
case "IssuedPln": //下发接箍作业计划
IssuedPln();
break;
case "CancelIssued": //取消下发接箍作业计划
CancelIssued();
break;
case "DeletePln": //删除接箍作业计划
DeletePln();
break;
case "Export": //导出
doExport();
break;
case "Close": //关闭
this.Close();
break;
}
}
///
/// 初始化
///
private void Init()
{
this.ctrlForQueryPLAN_TIMEFrom.Value = DateTime.Now;
this.ctrlForQueryPLAN_TIMETo.Value = DateTime.Now;
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJglInform",
new object[] { }, this.ob);
GridHelper.CopyDataToDatatable(dt, dataTable3, true);
if (dt != null && dt.Rows.Count > 0)
{
ctrlForQueryJGPLAN_ID.SelectedRow = ctrlForQueryJGPLAN_ID.Rows[0];
}
this.ctrlForQueryPLANSTATUS.SelectedIndex = 0;
doQuery();
}
///
/// 查询
///
private void doQuery()
{
try
{
ArrayList param = new ArrayList();
string strReqblid = ""; //备料需求号
string strPlantimeFrom = "1000/01/01"; //计划生产时间从
string strPlantimeTo = "9999/12/31"; //计划生产时间到
string strPlanStatus = ""; //计划状态
if (this.checkBoxForReqREQ_BL_ID.Checked)
{
strReqblid = this.ctrlForQueryJGPLAN_ID.Text.Trim().ToString();
}
if (this.checkBoxForReqPLAN_TIME.Checked)
{
strPlantimeFrom = this.ctrlForQueryPLAN_TIMEFrom.DateTime.ToString("yyyy-MM-dd");
strPlantimeTo = this.ctrlForQueryPLAN_TIMETo.DateTime.ToString("yyyy-MM-dd");
}
if (this.checkBoxForReqPLANSTATUS.Checked)
{
strPlanStatus = this.ctrlForQueryPLANSTATUS.Value.ToString();
}
param.Add(strReqblid);
param.Add(strPlanStatus);
param.Add(strPlantimeFrom);
param.Add(strPlantimeTo);
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgCut",
new object[] { param }, this.ob);
GridHelper.CopyDataToDatatable(dt, dataTable1, true);
PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[0], "CHECK");
dataTable2.Clear();
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
}
///
/// 查询接箍加工作业计划
///
private void doQueryJgpro(string coupCutBatchId)
{
try
{
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgProcess",
new object[] { coupCutBatchId }, this.ob);
GridHelper.CopyDataToDatatable(dt, dataTable2, true);
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
}
///
/// 接箍作业计划编制
///
private void PlanEdit()
{
try
{
///生产一个新的接箍作业计划,并返回作业计划批次号
ArrayList param = new ArrayList();
string cutbatch = "JG-" + DateTime.Now.ToString("yyyyMMdd");
param.Add(cutbatch);
param.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
param.Add("0");//计划状态
param.Add(CoreUserInfo.UserInfo.GetUserName()); ;//计划创建人
param.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//计划创建时间
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.addCutbatch",
new object[] { param }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
PlnZyJgCutEntity argument = new PlnZyJgCutEntity();
FrmJgZYPlnEdit plnEdit = new FrmJgZYPlnEdit(this.ob);
argument.CutBatchId = dt.Rows[0]["COUPCUT_BATCH_ID"].ToString();
argument.PlanTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
plnEdit.Arguments = argument;
plnEdit.ShowDialog();
doQuery();
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowError("新增接箍作业批次失败!");
return;
}
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
}
///
/// 接箍作业计划修改
///
private void PlanUpdate()
{
try
{
if (ultraGrid1.Rows.Count <= 0)
{
return;
}
PlnZyJgCutEntity argument = new PlnZyJgCutEntity();
List listJgPro = new List();
FrmJgZYPlnEdit plnEdit = new FrmJgZYPlnEdit(this.ob);
argument.CutBatchId = ultraGrid1.ActiveRow.Cells["COUPCUT_BATCH_ID"].Value.ToString();
argument.JgblLength = ultraGrid1.ActiveRow.Cells["JGBL_LENGTH"].Value.ToString();
argument.CodeJgbl = ultraGrid1.ActiveRow.Cells["CODE_JG_BL"].Value.ToString();
argument.JgLength = ultraGrid1.ActiveRow.Cells["JG_LENGTH"].Value.ToString();
argument.JudgeStoveno = ultraGrid1.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString();
argument.BatchNo = ultraGrid1.ActiveRow.Cells["BATCH_NO"].Value.ToString();
argument.JgblWeight = ultraGrid1.ActiveRow.Cells["JGBL_WEIGHT"].Value.ToString();
argument.JgblNum = ultraGrid1.ActiveRow.Cells["JGBL_NUM"].Value.ToString();
argument.GroupCut = ultraGrid1.ActiveRow.Cells["GROUP_CUT"].Value.ToString();
argument.PlanTime = ultraGrid1.ActiveRow.Cells["PLAN_TIME"].Value.ToString();
argument.PlanUsetime = ultraGrid1.ActiveRow.Cells["PLAN_USETIME"].Value.ToString();
argument.ReqBlid = ultraGrid1.ActiveRow.Cells["REQ_BL_ID"].Value.ToString();
argument.UpdateName = UserInfo.GetUserName();//修改人
argument.UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//修改时间
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgProcess",
new object[] { argument.CutBatchId }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
PlnZyJgProEntity arguJgPro = new PlnZyJgProEntity();
#region 接箍加工作业计划
arguJgPro.CoupcutBatchId = argument.CutBatchId;//切断作业批次号
arguJgPro.JgOrderno = dr["JG_ORDERNO"].ToString();//接箍合同号
arguJgPro.ReqBlid = dr["REQ_BL_ID"].ToString();//接箍料需求号
arguJgPro.PlanProcNum = dr["PLAN_PROC_NUM"].ToString();//计划加工个数
arguJgPro.GroupJgx = dr["GROUP_JGX"].ToString();
arguJgPro.PlanTime = dr["PLAN_TIME"].ToString();
arguJgPro.PlanUsetime = dr["PLAN_USETIME"].ToString();
arguJgPro.CreateName = dr["CREATE_NAME"].ToString();//创建人
arguJgPro.CreateTime = dr["CREATE_TIME"].ToString();//创建时间
listJgPro.Add(arguJgPro);
#endregion
}
}
plnEdit.Arguments = argument;
plnEdit.ListJgPro = listJgPro;
plnEdit.ShowDialog();
doQuery();
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
}
///
/// 下发接箍作业计划
///
private void IssuedPln()
{
try
{
bool isChecked = false;
ArrayList param = new ArrayList();
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
{
isChecked = true;
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgCutByid",
new object[] { uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0]["PLANSTATUS"].ToString().Equals("0"))
{
param.Add(dt.Rows[0]["COUPCUT_BATCH_ID"].ToString());
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("作业批次:"
+ uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() + "已下发,不能再次下发!");
return;
}
}
}
}
if (isChecked)
{
ServerHelper.SetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.issuedJgCutPln",
new object[] { param }, this.ob);
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请勾选要下发的接箍切断计划!");
return;
}
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
doQuery();
}
///
/// 取消下发接箍作业计划
///
private void CancelIssued()
{
try
{
bool isChecked = false;
ArrayList param = new ArrayList();
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
{
isChecked = true;
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgCutByid",
new object[] { uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
{
param.Add(dt.Rows[0]["COUPCUT_BATCH_ID"].ToString());
}
else
{
if (dt.Rows[0]["PLANSTATUS"].ToString().CompareTo("1") > 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("作业批次:"
+ uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() + "已生产,不能取消下发!");
return;
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("作业批次:"
+ uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() + "还未下发,不能取消下发!");
return;
}
}
}
}
}
if (isChecked)
{
ServerHelper.SetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.CancelissuedPln",
new object[] { param }, this.ob);
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请勾选要取消下发的接箍切断计划!");
return;
}
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
doQuery();
}
///
/// 删除接箍作业计划
///
private void DeletePln()
{
try
{
ArrayList param = new ArrayList();
bool isChecked = false;
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
{
isChecked = true;
DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgCutByid",
new object[] { uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0]["PLANSTATUS"].ToString().Equals("0"))
{
param.Add(dt.Rows[0]["COUPCUT_BATCH_ID"].ToString());
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("作业批次:"
+ uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString() + "已下发,不能删除!");
return;
}
}
}
}
if (isChecked)
{
if (Core.Mes.Client.Comm.Tool.MessageUtil.ShowYesNoAndWarning(
"是否确认删除所选计划!").ToString().Equals("No"))
{
return;
}
int succeed = ServerHelper.SetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.deleteJgCutPln",
new object[] { param }, this.ob);
if (succeed > 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("删除成功!");
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("删除失败!");
}
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请勾选要删除的接箍切断计划!");
return;
}
}
catch (Exception ex)
{
if (ex is MESException)
{
MessageBox.Show(((MESException)ex).ExceptionInfo);
}
else
{
MessageBox.Show(ex.Message);
}
}
doQuery();
}
///
/// 导出
///
private void doExport()
{
PlanComm.Export(ref ultraGrid1,"接箍编制");
}
#region 查询区控件使能随checkBox变化事件
private void checkBoxForReqREQ_BL_ID_CheckedChanged(object sender, EventArgs e)
{
if (this.checkBoxForReqREQ_BL_ID.Checked)
{
this.ctrlForQueryJGPLAN_ID.Enabled = true;
}
else
{
this.ctrlForQueryJGPLAN_ID.Enabled = false;
}
}
private void checkBoxForReqPLAN_TIME_CheckedChanged(object sender, EventArgs e)
{
if (this.checkBoxForReqPLAN_TIME.Checked)
{
this.ctrlForQueryPLAN_TIMEFrom.Enabled = true;
this.ctrlForQueryPLAN_TIMETo.Enabled = true;
}
else
{
this.ctrlForQueryPLAN_TIMEFrom.Enabled = false;
this.ctrlForQueryPLAN_TIMETo.Enabled = false;
}
}
private void checkBoxForReqPLANSTATUS_CheckedChanged(object sender, EventArgs e)
{
if (this.checkBoxForReqPLANSTATUS.Checked)
{
this.ctrlForQueryPLANSTATUS.Enabled = true;
}
else
{
this.ctrlForQueryPLANSTATUS.Enabled = false;
}
}
#endregion
#region 查询开始结束时间区间变化事件
private void ctrlForQueryPLAN_TIMEFrom_ValueChanged(object sender, EventArgs e)
{
this.ctrlForQueryPLAN_TIMETo.MinDate = this.ctrlForQueryPLAN_TIMEFrom.DateTime.Date;
}
private void ctrlForQueryPLAN_TIMETo_ValueChanged(object sender, EventArgs e)
{
this.ctrlForQueryPLAN_TIMEFrom.MaxDate = this.ctrlForQueryPLAN_TIMETo.DateTime.AddDays(1).Date.AddSeconds(-1);
}
#endregion
///
/// 查询切断计划活动行对应的接箍加工
///
private void ultraGrid1_BeforeRowActivate(object sender, RowEventArgs e)
{
doQueryJgpro(e.Row.Cells["COUPCUT_BATCH_ID"].Value.ToString());
}
}
}