using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.工序排产; using Core.StlMes.Client.PlnSaleOrd.工序排产.entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.PlnSaleOrd { public partial class FrmPlnOrderZzS : FrmBase { /// /// 订单编号 /// private string _ProPlanId = ""; /// /// 排产序号 /// private string _GxPlanNo = ""; /// /// 行首背景色 /// private Color _BackColor = new Color(); /// /// 调整行集合 /// private ArrayList _EntityList = null; public FrmPlnOrderZzS() { this.IsLoadUserView = true; InitializeComponent(); } private void FrmPlnOrderZzS_Load(object sender, EventArgs e) { if (CustomInfo == null) { CustomInfo = ""; } //设置列头名称 EntityHelper.ShowGridCaption(ultraGridZz.DisplayLayout.Bands[0]); BaseHelper.setOtherColumnReadOnly(ultraGridZz, new string[] { "CHC", "PlineCode", "PlanTimeB", "RepairType", "PlanUsetime" }); BaseHelper.setColumnBackColor(ultraGridZz, new string[] { "PlineCode" }); BaseHelper.InitCellPosition(ultraGridZz, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "PlanWtS", "PlanNumS", "PlanUsetime", "GxProSeq", "PlnDivideId", "DiameterLz","LenGpSingle","CutNumGp","CutLoseLen","LengthLz","WtCastOne","CastNumCalc","FurnaceNumCalc","FurnaceWt","PlanedWt","PlanedNum", "Finishweight","FinishNum","CastNum","FurnaceNum","AddWtBegin","AddWtEnd","AddWtAhead","ProcessingCostA","TotalCostA","ProcessingCostB","TotalCostB"}); BaseHelper.setUltraGridColumnMaxInput(ultraGridZz, new string[] { "PlanWtS" }); PlanHelper.InitDropPline("B", "", comPline, this.ob); PlanHelper.InitRepairType(ultraGridZz, this); PlanHelper.InitEditPline("B", "", ultraGridZz, this); if (CustomInfo != "0") { BaseHelper.ForbidSort(ultraGridZz); } BaseHelper.GridColumnSum(ultraGridZz, new string[] { "PlanWtS" }); BaseHelper.GridColumnCount(ultraGridZz, new string[] { "PlanNumS" }); BaseHelper.InitCellPositionMiddle(ultraGridZz, new string[] { "IsRepairPln", "IsPlanOk", "IfConnectAhead", "IfConnectNext", "IfMonitorLg" }); _BackColor = ultraGridZz.DisplayLayout.Override.RowSelectorAppearance.BackColor; } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query"://查询 Query(); break; case "Capacity"://产线能力维护 Capacity(); break; case "AddRepairPlan"://检修计划 AddRepairPlan(); break; case "DeleteRepairPlan"://删除检修计划 DeleteRepairPlan(); break; case "PlineChange"://产线调整 PlineChange(); break; case "TimeChange"://时间调整 TimeChange(); break; case "StatusChange"://状态调整 StatusChange(); break; case "InitData"://耗时初始化 Init(); break; case "Spit"://拆分订单 Spit(); break; case "Merge"://合并订单 Merge(); break; case "Issued"://下发 Issued("0"); break; case "CancelIssued"://取消下发 Issued("1"); break; case "Export": //导出 GridHelper.ulGridToExcel(ultraGridZz, "铸造排产信息"); break; default: break; } } private void chcPline_CheckedChanged(object sender, EventArgs e) { if (chcPline.Checked) { comPline.ReadOnly = false; } else { comPline.ReadOnly = true; } if (chcProPlanId.Checked) { txtProPlanId.ReadOnly = false; } else { txtProPlanId.ReadOnly = true; } } private void ultraGridZz_InitializeRow(object sender, InitializeRowEventArgs e) { PlanHelper.ControlCellEdit(e.Row); } /// /// 查询 /// private void Query() { //产线 string plineCode = ""; if (chcPline.Checked) { plineCode = comPline.Value == null ? "" : comPline.Value.ToString(); } //如果是排产界面,则下拉框的产线不能为空,需要排序 if (!CustomInfo.Equals("0") && plineCode.Equals("")) { MessageUtil.ShowTips("请选择产线!"); return; } //执行状态 string[] statusArr = new string[4] { "", "", "", "" }; if (ultraCheckEditor1.Checked) { statusArr[0] = "0"; } if (ultraCheckEditor2.Checked) { statusArr[1] = "1"; } if (ultraCheckEditor3.Checked) { statusArr[2] = "2"; } if (ultraCheckEditor3.Checked) { statusArr[3] = "3"; } //订单编号 string proPlanId = ""; if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); } List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlanOrderB", new object[] { plineCode, proPlanId, statusArr }, this.ob); plnOrderCastOSEntityBindingSource.DataSource = listSource; //激活操作行代码 if ((!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) || _EntityList != null) foreach (UltraGridRow ugr in ultraGridZz.Rows) { if (!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) { if (ugr.Cells["ProPlanId"].Text.Trim().Equals(_ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(_GxPlanNo)) { ugr.Activate(); break; } } if (_EntityList != null) { for (int i = 0; i < _EntityList.Count; i++) { PlnOrderCastSEntity jgxsEntity = (PlnOrderCastSEntity)_EntityList[i]; if (ugr.Cells["ProPlanId"].Text.Trim().Equals(jgxsEntity.ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(jgxsEntity.GxPlanNo)) { ugr.Appearance.BackColor = Color.Wheat; ugr.Activate(); } } } } _EntityList = null; _ProPlanId = ""; _ProPlanId = ""; } /// /// 产线能力维护 /// private void Capacity() { UltraGridRow ugr = ultraGridZz.ActiveRow; if (ugr == null) { return; } string inMaterialNo = ugr.Cells["WlidIn"].Text; string outMaterialNo = ugr.Cells["MaterialNo"].Text; string plineCode = ugr.Cells["PlineCode"].Value.ToString(); FrmBaseMaterialBPl frmBaseMaterialBPl = new FrmBaseMaterialBPl(inMaterialNo, outMaterialNo, plineCode, this.ob); frmBaseMaterialBPl.ShowDialog(); } /// /// 新增检修计划 /// private void AddRepairPlan() { if (comPline.Value == null || comPline.Value.ToString().Equals("")) { MessageUtil.ShowTips("请选择产线!"); return; } FrmJxjh frmJxjh = new FrmJxjh(this.ob, comPline.Value.ToString(), "B"); frmJxjh.ShowDialog(); Query(); } /// /// 折分订单 /// private void Spit() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.SpitPlanOrder(list,"B",this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 合并订单 /// private void Merge() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.MergePlanOrder(list,"B",this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 产线调整 /// private void PlineChange() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.PlineChange(list,"B",this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 初始化 /// private void Init() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.InitData(list, "B", this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 状态调整 /// private void StatusChange() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.StatusChange(list,"B",this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 时间调整 /// private void TimeChange() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.TimeChange(list, "B", this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } /// /// 排序 /// /// /// private void ultraGridZzS_MouseDown(object sender, MouseEventArgs e) { //排产查询界面,不能排序 if (CustomInfo.Equals("0")) { return;} try { ultraGridZz.UpdateData();} catch (Exception) { MessageUtil.ShowWarning("数据异常,请刷新数据!");return; } if (e.Button == MouseButtons.Right) { //移动行 ArrayList entityList = ProducHelper.GetChcRows(ultraGridZz); if (entityList == null || entityList.Count == 0) { return; } //定位行 UIElement myUIElement = ultraGridZz.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y)); UltraGridCell myCell = (UltraGridCell)myUIElement.GetContext(typeof(UltraGridCell)); if (myCell == null){ return ; } UltraGridRow ugr = myCell.Row; if (ugr == null){ return ; } PlnOrderCastSEntity entityD = (PlnOrderCastSEntity)ugr.ListObject; bool flag = ProducHelper.SortPlanOrder(entityList, entityD, "B", "",this.ob); if (flag) { _EntityList = entityList; Query(); } } } private void ultraGridZzS_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugrAc = ultraGridZz.ActiveRow; if (ugrAc == null) { return; } foreach (UltraGridRow ugr in ultraGridZz.Rows) { if (ugr.Cells["ProPlanId"].Text.Equals(ugrAc.Cells["ProPlanId"].Text)) { ugr.RowSelectorAppearance.BackColor = Color.LightGreen; } else { ugr.RowSelectorAppearance.BackColor = _BackColor; } if (ugr.Cells["PlanUsetime"].Value == null || ugr.Cells["PlanUsetime"].Value.ToString().Equals("") || Convert.ToDouble(ugr.Cells["PlanUsetime"].Value.ToString()) <= 0) { ugr.Cells["PlanUsetime"].Appearance.BackColor = Color.MistyRose; } if (ugr.Cells["ExeStatus"].Value.ToString().Equals("生产中")) { ugr.Cells["PlanTimeB"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128); } if (ugr.Cells["IsRepairPln"].Text.Equals("Y")) { ugr.Cells["PlanUsetime"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128); ugr.Cells["RepairType"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128); } } } private void ultraGridZzS_CellChange(object sender, CellEventArgs e) { try { ultraGridZz.UpdateData(); if (e.Cell.Column.Key.Equals("PlineCode")) { IQueryable chcRows = ultraGridZz.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"); if (CustomInfo.Equals("0")) { e.Cell.Row.Cells["PlineName"].Value = e.Cell.Text; } else { if (chcRows != null && chcRows.Count() > 0) { foreach (UltraGridRow ugr in chcRows) { ugr.Cells["PlineCode"].Value = e.Cell.Value.ToString(); ugr.Cells["PlineName"].Value = e.Cell.Text; } } } } } catch (Exception) { } } /// /// 删除检修计划 /// public void DeleteRepairPlan() { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.DeleteRepairPlan(list, "B", this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } private void comPline_ValueChanged(object sender, EventArgs e) { if (comPline == null) { return; } else { if (!CustomInfo.Equals("0")) { Query(); } } } /// /// 下发(取消) /// private void Issued(string isFlag) { ArrayList list = ProducHelper.GetChcRows(ultraGridZz); bool flag = ProducHelper.issuedPlanOrder(list, UserInfo.GetUserName(), isFlag, "B", this.ob); if (flag) { _ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId; _GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo; Query(); } } private void ultraGridZz_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridZz.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } } }