using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Net; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control.Entity; using Core.StlMes.Client.Mcp.Treatment.Entity; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.Mcp.Treatment.HeatTreatment { public partial class FrmEntrustDataApproval : FrmBase { protected string _plineCode = ""; private string[] plineCodes = {}; private string Step = ""; private string[] items = {}; private List ShowColums = new List() { "ProjectName", "BatchNo", "PlineName", "JudgeStoveNo"}; public FrmEntrustDataApproval() { InitializeComponent(); IsLoadUserView = true; } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": QueryApply(); break; case "ApprovalOk": ApprovalOk(); break; case "ApprovalFail": ApprovalFail(); break; case "CancelApproval": CancelApproval(); break; case "MarkCompleted": MarkCompleted(); break; case "CancleMarkCompleted": CancleMarkCompleted(); break; case "DoUpdateProject": DoUpdateProject(); break; case "Close": Close(); break; case "Delete": Delete(); break; case "ViewRp": ViewRp(); break; case "UploadRp": UploadRp(); break; case "DeleteRp": DeleteRp(); break; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); plineCodes = comm.GetPlineCodeWithOther(ValidDataPurviewIds, ob); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[1]); EntityHelper.ShowGridCaption(ultraGrid3.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(DataGrid.DisplayLayout.Bands[0]); comm.RefreshAndAutoSize(ultraGrid2, true); string[] info = this.CustomInfo.ToString2().Split('-'); Step = info[0]; if(Step != "7"){ ultraCheckEditor1.Visible = false; // 全选按钮显示 } if (info.Length > 1) { items = info[1].Split(','); } if(Step!="3") upStatus1.Items.RemoveAt(2); if (Step == "1") { uosTarget.Visible = true; uosTarget.CheckedIndex = 2; } else { uosTarget.Visible = false; uosTarget.CheckedIndex = 0; } foreach (var ugc in DataGrid.DisplayLayout.Bands[0].Columns) { if (ugc.Hidden && !ShowColums.Contains(ugc.Key)) { ShowColums.Add(ugc.Key); } } } private void QueryApply() { var startTime = ""; var endTime = ""; var judgeNo = ""; /* if (chkTim.Checked) if (DateTime.Parse(StartTime.Value.ToString()) > DateTime.Parse(EndTime.Value.ToString())) { MessageUtil.ShowTips("选择时间区间错误,请重新选择!"); return; } else { startTime = StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); endTime = EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); }*/ // else if (!chkJugeHeatNo.Checked) // if (MessageUtil.ShowYesNoAndQuestion("未加时间条件,查询时间可能比较长,请确定是否继续查询?") == DialogResult.No) return; if (chkJugeHeatNo.Checked) judgeNo = txtJugeNo.Text.Trim(); List listSource = EntityHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.doQueryApply", new object[] { startTime, endTime, judgeNo, plineCodes, Step, upStatus1.CheckedItem.DataValue.ToString2(), uosTarget.CheckedItem.DataValue.ToString2(), items }, ob); List listProject = EntityHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.QueryProject", new object[] { listSource.Select(p=>p.SubcontractNo).ToArray() }, ob); listSource.ForEach(p => p.ProjectData = listProject.Where(q => q.SubcontractNo == p.SubcontractNo && q.SubcontractNoSeq == p.SubcontractNoSeq).OrderBy(q => q.ProjectSeq).ThenBy(q => q.ProjectCode).ToList()); // httEntrustProjectEntityBindingSource.DataSource = listSource; httEntrustProcessEntityBindingSource.Clear(); httEntrustResultEntityBindingSource.Clear(); ultraExpandableGroupBox1.Expanded = false; httEntrustEntityAllBindingSource.DataSource = listSource; comm.RefreshAndAutoSize(ultraGrid2, new[] {"StdName"}); } private void ApprovalOk() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; if (list == null || !list.Any()) return; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要审核的数据"); return; } if (list.Select(p => p.SubcontractTarget).Distinct().Count() > 1) { MessageBox.Show("委外和委内的委托单不能同时审批"); return; } /* if (list.Any(p => p.SubcontractLog != "00")) { MessageBox.Show("只能审核未审核的数据!"); return; }*/ var FrmEntrustApproval = new FrmEntrustApproval(ob, list.Select(p => p.SubcontractNo).Distinct().ToList(), Step, UserInfo.GetUserName(), (Step == "3" && list[0].SubcontractTarget == "0") || (Step == "1" && list[0].SubcontractTarget == "1"), 0,this.ValidDataPurviewIds); if (FrmEntrustApproval.ShowDialog() == DialogResult.OK) { QueryApply(); } } private void ApprovalFail() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; if (list == null || !list.Any()) return; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要审核的数据"); return; } /* if (list.Any(p => p.SubcontractLog != "00")) { MessageBox.Show("只能审核未审核的数据!"); return; }*/ /* if (MessageUtil.ShowYesNoAndQuestion("是否确认审核不通过?") == DialogResult.No) return;*/ var FrmEntrustApproval = new FrmEntrustApproval(ob, list.Select(p => p.SubcontractNo).Distinct().ToList(), Step, UserInfo.GetUserName(),false,1); if (FrmEntrustApproval.ShowDialog() == DialogResult.OK) { FrmEntrustApproval.Dispose(); QueryApply(); } } private void CancelApproval() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要撤销审核的数据"); return; } /* if (list.Any(p => (p.SubcontractLog != "10") && (p.SubcontractLog != "20"))) { MessageBox.Show("只能撤销审核过的数据!"); return; }*/ /* if (MessageUtil.ShowYesNoAndQuestion("是否确认撤销委外申请?") == DialogResult.No) return;*/ var FrmEntrustApproval = new FrmEntrustApproval(ob, list.Select(p => p.SubcontractNo).Distinct().ToList(), Step, UserInfo.GetUserName(), false, 2); if (FrmEntrustApproval.ShowDialog() == DialogResult.OK) { QueryApply(); } } private void MarkCompleted() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要委托完成的数据"); return; } var FrmEntrustApproval = new FrmEntrustApproval(ob, list.Select(p => p.SubcontractNo).Distinct().ToList(), Step, UserInfo.GetUserName(), false, 3); if (FrmEntrustApproval.ShowDialog() == DialogResult.OK) { foreach (HttEntrustEntityAll HttEntrustEntityAll in list.Where(p => p.SubcontractTarget == "0")) { Upload(HttEntrustEntityAll.SubcontractNo, HttEntrustEntityAll.SubcontractNoSeq); } QueryApply(); } } private void CancleMarkCompleted() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要撤销委托完成的数据"); return; } var FrmEntrustApproval = new FrmEntrustApproval(ob, list.Select(p => p.SubcontractNo).Distinct().ToList(), Step, UserInfo.GetUserName(), false, 4); if (FrmEntrustApproval.ShowDialog() == DialogResult.OK) { foreach (HttEntrustEntityAll HttEntrustEntityAll in list.Where(p => p.SubcontractTarget == "0")) { DeleteUpload(HttEntrustEntityAll.ReportPath, HttEntrustEntityAll.SubcontractNo, HttEntrustEntityAll.SubcontractNoSeq); } QueryApply(); } } private void Delete() { ultraGrid2.UpdateData(); var list = httEntrustEntityAllBindingSource.DataSource as List; list = list.Where(p => p.Chk).ToList(); if (!list.Any()) { MessageBox.Show("请选择需要删除委托的数据"); return; } if (MessageUtil.ShowYesNoAndTips("请确认是否删除该委托单!") != DialogResult.Yes) { return; } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; ccp.MethodName = "Delete"; ccp.ServerParams = new object[] { list.Select(p => p.SubcontractNo).Distinct().ToList() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("删除成功!")) QueryApply(); } } private void ViewRp() { if (ultraGrid2.ActiveRow == null) return; HttEntrustEntityAll HttEntrustResultEntity; if (ultraGrid2.ActiveRow.HasParent()) { HttEntrustResultEntity = ultraGrid2.ActiveRow.ParentRow.ListObject as HttEntrustEntityAll; } else { HttEntrustResultEntity = ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; } string strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMchReportOfEntrustedProcessing.cpt&op=view&SUBCONTRACT_NO=" + HttEntrustResultEntity.SubcontractNo + "&SUBCONTRACT_NO_SEQ=" + HttEntrustResultEntity.SubcontractNoSeq; var fre = new FrmRepExcel(ob, strurl); fre.AutoSize = true; fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fre.WindowState = FormWindowState.Maximized; fre.Show(); } private void UploadRp() { if (ultraGrid2.ActiveRow == null) return; HttEntrustEntityAll HttEntrustResultEntity; if (ultraGrid2.ActiveRow.HasParent()) { HttEntrustResultEntity = ultraGrid2.ActiveRow.ParentRow.ListObject as HttEntrustEntityAll; } else { HttEntrustResultEntity = ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; } if (Upload(HttEntrustResultEntity.SubcontractNo, HttEntrustResultEntity.SubcontractNoSeq)) { MessageBox.Show("上传报成功"); } } private void DeleteRp() { if (ultraGrid2.ActiveRow == null) return; HttEntrustEntityAll HttEntrustResultEntity; if (ultraGrid2.ActiveRow.HasParent()) { HttEntrustResultEntity = ultraGrid2.ActiveRow.ParentRow.ListObject as HttEntrustEntityAll; } else { HttEntrustResultEntity = ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; } if (DeleteUpload(HttEntrustResultEntity.ReportPath, HttEntrustResultEntity.SubcontractNo, HttEntrustResultEntity.SubcontractNoSeq)) { MessageBox.Show("删除报告成功"); } } private bool Upload(string Sub, string SubSeq) { try { string strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMchReportOfEntrustedProcessing.cpt&format=pdf&SUBCONTRACT_NO=" + Sub + "&SUBCONTRACT_NO_SEQ=" + SubSeq; var webClient = new WebClient(); var listPdf = new List(); var date = DateTime.Now.ToString("yyyyMMdd"); var filePathNew = ""; //报告目录 var reportNo = ""; //报告编号 filePathNew = "Entrust/Completion/" + Sub + "/" + SubSeq + "/"; reportNo = Sub + "_" + SubSeq; var pdf = webClient.DownloadData(strurl); var fileBean = new FileBean(); fileBean.setFile(pdf); fileBean.setFileName(reportNo + ".pdf"); fileBean.setPathName(filePathNew); listPdf.Add(fileBean); webClient.Dispose(); var a = FileHelper.Upload(listPdf); if (a) { ServerHelper.SetData("com.steering.mes.mcp.common.frmEntrust.UpdateEntrutPath", new object[] { filePathNew + reportNo + ".pdf", Sub, SubSeq }, ob); return true; } MessageBox.Show("上传完工报告失败"); return false; } catch (Exception ex) { MessageBox.Show("上传完工报告失败" + ex.Message); return false; } } private bool DeleteUpload(string Path, string Sub, string SubSeq) { try { ServerHelper.SetData("com.steering.mes.mcp.common.frmEntrust.UpdateEntrutPath", new object[] { "", Sub, SubSeq }, ob); FileHelper.Delete(Path); return true; } catch (Exception) { return false; } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { ultraGrid2.UpdateData(); if(ultraGrid2.ActiveRow.HasParent()) return; var list = ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; List listSource = EntityHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.QueryProcess", new object[] { list.SubcontractNo, list.SubcontractNoSeq }, ob); httEntrustProcessEntityBindingSource.DataSource = listSource; comm.RefreshAndAutoSize(ultraGrid3, new[] { "" }); if (list.SubcontractLog == "40" || list.SubcontractLog == "50" || list.SubcontractLog == "60") { ultraExpandableGroupBox1.Expanded = true; } else { ultraExpandableGroupBox1.Expanded = false; } for (int i = 0; i < DataGrid.DisplayLayout.Bands[0].Columns.Count; i++) { if (!ShowColums.Contains(DataGrid.DisplayLayout.Bands[0].Columns[i].Key)) DataGrid.DisplayLayout.Bands[0].Columns[i].Hidden = true; } List listResult = EntityHelper.GetData( "com.steering.mes.mcp.common.frmEntrust.doQueryResult", new object[] { list.SubcontractNo, list.SubcontractNoSeq }, ob); httEntrustResultEntityBindingSource.DataSource = listResult; comm.RefreshAndAutoSize(DataGrid, new[] { "ReportPath" }); } private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if (DataGrid.ActiveRow == null) return; var down = new FormFileDown(ob, DataGrid.ActiveRow.Cells["ReportPath"].Value.ToString2()); down.CtrlFileDown1.Button3.Visible = false; down.ShowDialog(); } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); HttEntrustEntityAll HttEntrustEntityAll = ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; if (e.Cell.Column.Key == "Chk") { var list = httEntrustEntityAllBindingSource.DataSource as List; list.Where(p => p.SubcontractNo == HttEntrustEntityAll.SubcontractNo).ToList().ForEach(p => p.Chk = HttEntrustEntityAll.Chk ); httEntrustEntityAllBindingSource.DataSource = list; } ultraGrid2.UpdateData(); ultraGrid2.Refresh(); } private void DoUpdateProject() { ultraGrid2.UpdateData(); if(ultraGrid2.ActiveRow==null) return; if(ultraGrid2.ActiveRow.HasParent()) return; var list =ultraGrid2.ActiveRow.HasParent()?ultraGrid2.ActiveRow.ParentRow.ListObject as HttEntrustEntityAll: ultraGrid2.ActiveRow.ListObject as HttEntrustEntityAll; if(list==null) return; using (var FrmEntrustApply = new FrmEntrustApplyNew(ob, FrmEntrustApplyNew.ApplyType.ChangeProject, null, list.ProcessCode, list.PlineCode, list, items)) { if (FrmEntrustApply.ShowDialog() == DialogResult.OK) { QueryApply(); } } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { if(e.Row.HasChild()) return; if (!e.Row.HasParent()) return; 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(); } } private void DataGrid_InitializeRow(object sender, InitializeRowEventArgs e) { for (int i = 0; i < DataGrid.DisplayLayout.Bands[0].Columns.Count; i++) { if (e.Row.Cells[i].Value.ToString2() != "" && !ShowColums.Contains(DataGrid.DisplayLayout.Bands[0].Columns[i].Key)) DataGrid.DisplayLayout.Bands[0].Columns[i].Hidden = false; } } private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e) { foreach (UltraGridRow row in this.ultraGrid2.Rows) { if (ultraCheckEditor1.Checked) { row.Cells["CHK"].Value = "True"; } else { row.Cells["CHK"].Value = "False"; } } } } }