using System; 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.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control.Common; using Core.StlMes.Client.Mcp.Control.Entity; using Core.StlMes.Client.Mcp.Treatment.Entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinTree; using CellEventArgs = Infragistics.Win.UltraWinGrid.CellEventArgs; namespace Core.StlMes.Client.Mcp.Treatment.HeatTreatment { public partial class FrmEntrustApplyNew : FrmBase { private ApplyType applyType; private string _processCode; private string _plineCode; private string defaultDepartMentCode = ""; private string defaultDepartMentName = ""; private string _subNo; private bool Insert = false; public FrmEntrustApplyNew(OpeBase _ob, ApplyType _type, List OfflineData, string processCode, string plineCode, HttEntrustEntityAll Entity = null, string[] items= null , string itemCode = "7022") { InitializeComponent(); ob = _ob; if (string.IsNullOrWhiteSpace(itemCode)) itemCode = "7022"; itemCode = "7022"; List list= EntityHelper.GetData( "com.steering.mes.mcp.common.PlanService.getBaseInfoAll", new object[] { itemCode, items ?? new string[] { } }, ob); List listOperator = EntityHelper.GetData( "com.steering.mes.mcp.common.PlanService.getBaseInfo", new object[] { "7031" }, ob); uceOperator.DataSource = listOperator; uceOperator.DisplayMember = "Basename"; uceOperator.ValueMember = "Basecode"; applyType = _type; //新增外委合同号 TZH 24.4.24 List listOperator2 = EntityHelper.GetData( "com.steering.mes.mcp.common.PlanService.getWwdd", new object[] { "7031" }, ob); ultraComboEditor1.DataSource = listOperator2; ultraComboEditor1.DisplayMember = "Basename"; ultraComboEditor1.ValueMember = "Basecode"; // var listPline =OfflineData==null? null: OfflineData.Where(p => !string.IsNullOrWhiteSpace(p.StorageTypeNo)).ToList(); DataTable dtStorage = null; if (listPline!=null && listPline.Any()) { dtStorage = ServerHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.doQueryStorage", new object[] { listPline.Select(p=>p.StorageTypeNo).Distinct().ToArray() }, ob); } else { dtStorage= ServerHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.doQueryStorage", new object[] { }, ob); } StorageType.DataSource = dtStorage; StorageType.DisplayMember = "STORAGE_NAME"; StorageType.ValueMember = "STORAGE_NO"; if (OfflineData!=null) offlineResultEntityBindingSource.DataSource = OfflineData.GroupBy(p => new { p.ResultNo, p.JudgeStoveNo, p.FlagStoveNo, p.MatNos } ).Select(p => new OfflineResultEntity() { ResultNo = p.Key.ResultNo, JudgeStoveNo = p.Key.JudgeStoveNo, FlagStoveNo = p.Key.FlagStoveNo, BatchNo = p.First().BatchNo, OfflineNum = p.Sum(q=>q.OfflineNum), MatNos = p.Key.MatNos, StorageTypeNo = p.Max(q=>q.StorageTypeNo) } ).ToList(); _processCode = processCode; _plineCode = plineCode; _subNo = Entity==null?"" :Entity.SubcontractNo; txtNote.Text = Entity == null ? "" : Entity.SubcontractNote; ; txtNo.Text = Entity == null ? "" : Entity.Drawingno; if (_type ==ApplyType.ChangeProject) { Detail = EntityHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.QueryProject", new object[] { Entity.SubcontractNo, Entity.SubcontractNoSeq }, ob); uceSubType.Enabled = false; spcMain.Panel1Collapsed = true; checkSub.Visible = false; uceOperator.Text = Entity.SubcontractOperator; } AddChildNodes(utMain, list); ultraToolbarsManager1.Tools["Apply"].SharedProps.Visible = applyType == ApplyType.ApplyProject; ultraToolbarsManager1.Tools["Save"].SharedProps.Visible = applyType==ApplyType.ChangeProject; this.Text = applyType == ApplyType.ApplyProject ? "申请项目" : "调整项目"; httEntrustProjectEntityBindingSource.DataSource = Detail; comm.RefreshAndAutoSize(CrackDetectGrid, new[] { "" }); uceSubType.SelectedIndex = plineCode == "C072" || plineCode == "C091" ? 1 : 0; DataTable dt =ServerHelper.GetData( "com.steering.mes.mcp.common.PlanService.getBaseInfo", new object[] { "7029" }, ob); DataRow dr = dt.NewRow(); dt.Rows.InsertAt(dr,0); ucePayDepartment.DataSource = dt; ucePayDepartment.ValueMember = "BASECODE"; ucePayDepartment.DisplayMember = "BASENAME"; DataTable Default = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryDefaultPay", new object[] { plineCode }, ob); if (Default.Rows.Count > 0) { defaultDepartMentCode = Default.Rows[0][0].ToString2(); defaultDepartMentName = Default.Rows[0][1].ToString2(); } if (!processCode.Equals("H")) panelH.Visible = false; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); EntityHelper.ShowGridCaption(CrackDetectGrid.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); } public List Detail = new List(); public void AddChildNodes(UltraTreeNode Root, List Data, string Key ) { Data.Where(p=>p.Sortcode==Key).ToList().ForEach(p => { UltraTreeNode child = new UltraTreeNode { Text = p.Basename, Key = p.Basecode }; AddChildNodes(child, Data, p.Basecode); if (!child.HasNodes) { child.Override.NodeStyle = NodeStyle.CheckBox; if(Detail.Any(q=>q.ProjectCode == p.Basecode )) child.CheckedState = CheckState.Checked; } Root.Nodes.Add(child); } ); } public void AddChildNodes(UltraTree Root, List Data) { Data.Where(p => p.Sortcode == "7022").ToList().ForEach(p => { UltraTreeNode child = new UltraTreeNode { Text = p.Basename, Key = p.Basecode }; AddChildNodes(child, Data, p.Basecode); if (!child.HasNodes) { child.Override.NodeStyle = NodeStyle.CheckBox; if (Detail.Any(q => q.ProjectCode == p.Basecode)) child.CheckedState = CheckState.Checked; } Root.Nodes.Add(child); } ); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "Save": // ButtonTool Save(); break; case "Close": // ButtonTool this.DialogResult = DialogResult.Cancel; break; case "Apply": // ButtonTool // Place code here Apply(); break; } } private void Save() { CrackDetectGrid.UpdateData(); if (MessageUtil.ShowYesNoAndQuestion("是否调整项目?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; ccp.MethodName = "UpdateProject"; ccp.ServerParams = new object[] { _subNo,txtNote.Text, Detail.Select(JSONFormat.Format).ToList(),uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("调整成功!")) this.DialogResult = DialogResult.OK; } } public enum ApplyType { ApplyProject, ChangeProject }; private void utMain_AfterCheck(object sender, NodeEventArgs e) { Insert = true; if (applyType == ApplyType.ApplyProject) { if (e.TreeNode.CheckedState == CheckState.Checked) { Detail.Add(new HttEntrustProjectEntity() { ProjectCode = e.TreeNode.Key, ProjectName = e.TreeNode.Text, PayDepartmentCode = defaultDepartMentCode, PayDepartmentName = defaultDepartMentName, ProjectFlag = "0", ProjectStatus = "00", ProjectType = "0" }); } else { Detail = Detail.Where(p => p.ProjectCode != e.TreeNode.Key).ToList(); } } else { if (e.TreeNode.CheckedState == CheckState.Checked) { var list = Detail.Where(p => p.ProjectCode == e.TreeNode.Key).ToList(); if (list.Any()) { list.ForEach(p=>p.ProjectFlag= (p.ProjectType==p.ProjectTypeOrgin && p.ProjectMemo== p.ProjectMemoOrgin)?"0":"3" ); } else { Detail.Add(new HttEntrustProjectEntity() { ProjectCode = e.TreeNode.Key, ProjectName = e.TreeNode.Text, PayDepartmentCode = defaultDepartMentCode, PayDepartmentName = defaultDepartMentName, ProjectFlag = "1", ProjectStatus = "00", ProjectType = "0" }); } } else { Detail = Detail.Where(p => (p.ProjectCode != e.TreeNode.Key) || p.ProjectCode==e.TreeNode.Key && p.ProjectFlag!="1" ).ToList(); var list = Detail.Where(p => p.ProjectCode == e.TreeNode.Key).ToList(); list.ForEach(p=>p.ProjectFlag="2"); } } httEntrustProjectEntityBindingSource.DataSource = Detail; CrackDetectGrid.DisplayLayout.Bands[0].Columns["ProjectName"].PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand); CrackDetectGrid.DataBind(); Insert = false; } public void Apply() { CrackDetectGrid.UpdateData(); ultraGrid1.UpdateData(); if (MessageUtil.ShowYesNoAndQuestion("是否申请委托?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; if (checkSub.Checked) { ccp.MethodName = "ApplyAll"; ccp.ServerParams = new object[] { (offlineResultEntityBindingSource.DataSource as List).GroupBy(p=>p.JudgeStoveNo).Select(p=>p.Select(JSONFormat.Format).ToList()).ToList(), _processCode,_plineCode, Detail.Select(JSONFormat.Format).ToList() , UserInfo.GetUserName(), UserInfo.GetUserOrder(), UserInfo.GetUserGroup(), uceSubType.SelectedItem.DataValue.ToString2(), txtNote.Text,uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text, chkFlag.Checked?"1":"0" }; } else { ccp.MethodName = "Apply"; ccp.ServerParams = new object[] { (offlineResultEntityBindingSource.DataSource as List).Select(JSONFormat.Format).ToList(), _processCode,_plineCode, Detail.Select(JSONFormat.Format).ToList() , UserInfo.GetUserName(), UserInfo.GetUserOrder(), UserInfo.GetUserGroup(), uceSubType.SelectedItem.DataValue.ToString2(),txtNote.Text,uceOperator.SelectedIndex>-1?uceOperator.SelectedItem.DisplayText.ToString2():"",txtNo.Text, chkFlag.Checked?"1":"0" }; } ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("申请成功!")) this.DialogResult = DialogResult.OK; } } private void CrackDetectGrid_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { /* if (e.Row.Cells["ProjectFlag"].Value.ToString2() == "2") { e.Row.Cells["ProjectFlag"].Appearance.BackColor = Color.Red; } else if (e.Row.Cells["ProjectFlag"].Value.ToString2() == "1") { e.Row.Cells["ProjectFlag"].Appearance.BackColor = Color.LightGreen; } else { e.Row.Cells["ProjectFlag"].Appearance.ResetBackColor(); }*/ if (Insert) { DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryApplyMemo", new object[] {e.Row.Cells["ProjectCode"].Value.ToString2()}, ob); if (dt.Rows.Count > 0) { e.Row.Cells["ProjectMemo"].EditorComponent = null; var list2 = new ValueList(); foreach (DataRow row in dt.Rows) list2.ValueListItems.Add(row["PROJECT_MEMO"].ToString(), row["PROJECT_MEMO"].ToString()); e.Row.Cells["ProjectMemo"].ValueList = list2; } else { e.Row.Cells["ProjectMemo"].EditorComponent = txtMemo; } } } private void CrackDetectGrid_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { CrackDetectGrid.UpdateData(); if (e.Cell.Column.Key == "PayDepartmentCode") { e.Cell.Row.Cells["PayDepartmentName"].Value = e.Cell.Text; } if (applyType == ApplyType.ChangeProject) { if (e.Cell.Row.Cells["ProjectFlag"].Value.ToString2() == "0" || e.Cell.Row.Cells["ProjectFlag"].Value.ToString2() == "3") { e.Cell.Row.Cells["ProjectFlag"].Value = (e.Cell.Row.Cells["ProjectType"].Value.ToString2() == e.Cell.Row.Cells["ProjectTypeOrgin"].Value.ToString2() && e.Cell.Row.Cells["ProjectMemo"].Value.ToString2() == e.Cell.Row.Cells["ProjectMemoOrgin"].Value.ToString2()) ? "0" : "3"; } } } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (e.Cell.Column.Key == "StorageTypeNo") { e.Cell.Row.Cells["StorageTypeName"].Value = e.Cell.Text; } } private void CrackDetectGrid_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { } private void CrackDetectGrid_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { /* DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQueryApplyMemo", new object[] { e.Row.Cells["ProjectCode"].Value.ToString2() }, ob); var list2 = new ValueList(); foreach (DataRow row in dt.Rows) list2.ValueListItems.Add(row["PROJECT_MEMO"].ToString(), row["PROJECT_MEMO"].ToString()); e.Row.Cells["ProjectMemo"].ValueList = list2;*/ } private void txtNote_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { TextEdit TextEdit = new TextEdit() { data = txtNote.Text }; TextEdit.ShowDialog(); if (TextEdit.DialogResult == DialogResult.OK) { txtNote.Text = TextEdit.data; } } private void ultraTextEditor1_ValueChanged(object sender, EventArgs e) { } private void txtMemo_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { TextEdit TextEdit = new TextEdit() { data = CrackDetectGrid.ActiveCell.Text }; TextEdit.ShowDialog(); if (TextEdit.DialogResult == DialogResult.OK) { CrackDetectGrid.ActiveCell.Value = TextEdit.data; } } private void uceSubType_ValueChanged(object sender, EventArgs e) { if (uceSubType.SelectedItem.DataValue.ToString2() == "1") { label4.Enabled = false; ultraComboEditor1.Enabled = false; ultraComboEditor1.Clear(); } else { label4.Enabled = true; ultraComboEditor1.Enabled = true; ultraComboEditor1.Clear(); } } } }