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()); } } }