using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Net; using System.Windows.Forms; using com.steering.mes.mcp.entity; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control; using Core.StlMes.Client.Mcp.Control.Common; using Core.StlMes.Client.Mcp.Control.Entity; using Core.StlMes.Client.Mcp.Mch.MchResult; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.Mcp.Mch { public partial class FrmDriftDiameterResult : FrmMchBase { public FrmDriftDiameterResult() { InitializeComponent(); mchControlBase1 = new DriftDiameterControl() { Dock = DockStyle.Fill }; plnEdit.Controls.Add(mchControlBase1); } protected override UltraGridRow ActitveResultRow { get { return CrackDetectGrid.ActiveRow; } } protected override object Value { get { return (mchControlBase1 as DriftDiameterControl).Value; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); EntityHelper.ShowGridCaption(CrackDetectGrid.DisplayLayout.Bands[0]); base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActCount"].Hidden = true; base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActWeight"].Hidden = true; base.ultraGrid1.DisplayLayout.Bands[0].Columns["BatchGroudNo"].Hidden = true; CrackDetectGrid.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; CrackDetectGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default; ultraOptionSet2.Visible = false; } protected override void DoAdd() { if (ActiveRow != null) { List pro = EntityHelper.GetData( "com.steering.mes.mcp.Mch.FrmDriftDiameterResult.getQueryExpandResult", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob); decimal used = pro.Sum(p => p.FinalQualifiedNum) ?? 0; decimal OkPort = (mchControlBase1 as DriftDiameterControl).OkPort.Count; MchPathResultEntity data = Value as MchPathResultEntity; if (OkPort - used - data.FinalQualifiedNum < 0) { List mchOffline = EntityHelper.GetData("com.steering.mes.mcp.common.OfflineHelper.QueryMchOffLineData", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob); var returnData = mchOffline.Where( p => p.ReturnProcess != null && p.StationCode != p.ReturnProcess && mchControlBase1.CheckGx2(p.StationCode, mchControlBase1.gx) && mchControlBase1.CheckGx2(mchControlBase1.gx, p.ReturnProcess)).ToList(); int ReturnNum = 0; if (returnData.Any()) { ReturnNum = int.Parse(returnData.Sum(p => p.ReNum).ToString3()); if (ReturnNum > 0) { data.ProWt = returnData.Sum(p => p.ReWt); } } if (OkPort + ReturnNum - used - data.FinalQualifiedNum < 0) { if (mchOffline.Any(p => p.ReNum == null || p.ReNum <= 0)) { MessageBox.Show( mchOffline.Any(p => (p.ReNum == null || p.ReNum <= 0) && p.SubcontractcompleteNum > 0) ? "委托已经完成,未返线, 请联系出料人员对该炉批进行返线操作!" : "存在离线数据未返线, 请联系出料人员对该炉批进行返线操作!"); return; } MessageBox.Show("请检查数据是否维护正确, 最终合格支 + 离线返线支= 一次合格支+ 返修支 , 该炉批当前工序总 " + OkPort + "支 已维护了合格" + used + "支 当前最终合格支不能超过" + (OkPort + ReturnNum - used) + "支"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否增加通径实绩?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Mch.FrmDriftDiameterResult"; ccp.MethodName = "DoAdd"; ccp.ServerParams = new object[] { JSONFormat.Format(data), Gx, mchControlBase1.ScrappedList.Select(JSONFormat.Format).ToList(), mchControlBase1.SuspiciousList.Select(JSONFormat.Format).ToList(), (mchControlBase1 as DriftDiameterControl).Detail.Select(JSONFormat.Format).ToList() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("新增成功!")) { Query(); } } } } protected override void DoDelete() { { if (ActiveRow != null && ActitveResultRow != null) { if (MessageUtil.ShowYesNoAndQuestion("是否删除通径实绩?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Mch.FrmDriftDiameterResult"; ccp.MethodName = "DoDelete"; ccp.ServerParams = new object[] { JSONFormat.Format(ActitveResultRow.ListObject), Gx }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("删除成功!")) { if (!string.IsNullOrEmpty(ActitveResultRow.Cells["ReportPath"].Value.ToString2())) { try { FileHelper.Delete(ActitveResultRow.Cells["ReportPath"].Value.ToString2()); } catch (Exception) { MessageUtil.ShowTips("报告删除失败!"); } } Query(); } } } } } protected override void GetResultData() { base.GetResultData(); mchPathResultEntityBindingSource.DataSource = EntityHelper.GetData( "com.steering.mes.mcp.Mch.FrmDriftDiameterResult.getQueryExpandResult", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob); commHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "ReportPath"); if (ActiveRow == null) return; var DriftDiameterControl = mchControlBase1 as DriftDiameterControl; if (DriftDiameterControl == null) return; var result = new MchPathResultEntity { HeatPlanNo = ActiveRow.HeatPlanNo, JudgeStoveNo = ActiveRow.JudgeStoveNo, BatchNo = ActiveRow.BatchNo, PlineCode = ActiveRow.PlineCode, PlineName = ActiveRow.PlineName, ProNum = DriftDiameterControl.OkPort.Count > (ActiveRow.OperateCount ?? 0) ? DriftDiameterControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) : 0, FailNum = 0, FailWt = 0, ReProNum = 0, ReProWt = 0, TestRecord = 0, ProShift = UserInfo.GetUserOrder(), ProGroup = UserInfo.GetUserGroup(), ProUser = UserInfo.GetUserName(), ProTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; if (result.ProNum <= 0) { int OffNum = GetReturnNum(); result.ProNum =DriftDiameterControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) + result.ProNum + OffNum; if (result.ProNum < 0) { result.ProNum = 0; } } result.QualifiedNum = result.ProNum; result.FinalQualifiedNum = result.ProNum; DriftDiameterControl.Value = result; } private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { var entity = CrackDetectGrid.ActiveRow.ListObject as MchPathResultEntity; if (entity == null) return; var strurl = ""; if (e.Button.Key == "VIEW") { strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchPathReport.cpt&op=view&resultNo=" + entity.ResultNo; 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(); } else if (e.Button.Key == "UPLOAD") { /*strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=HttRotaCrackDetetionPipeHeatReport.cpt&resultNo=" + resultNo;*/ strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchPathReport.cpt&format=pdf&resultNo=" + entity.ResultNo; var webClient = new WebClient(); var listPdf = new List(); var date = DateTime.Now.ToString("yyyyMMdd"); var filePathNew = ""; //报告目录 var reportNo = ""; //报告编号 filePathNew = "Mch/PathInspection/" + ActiveRow.JudgeStoveNo + "/" + entity.BatchNo + "/" + entity.HeatPlanNo + "/"; reportNo = entity.ResultNo; 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.Mch.FrmDriftDiameterResult.UpdatePath", new object[] { filePathNew + reportNo + ".pdf", entity.ResultNo }, ob); MessageUtil.ShowTips("上传报告成功!"); Query(); } } else { MessageUtil.ShowError("系统生成PDF失败,请稍后再试!"); } } private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e) { var Entity = e.Row.ListObject as MchPathResultEntity; e.Row.Cells["ReportPath"].Appearance.BackColor = string.IsNullOrEmpty(Entity.ReportPath) ? Color.Red : Color.LightGreen; e.Row.Cells["ReportPath"].EditorComponent = utUpLoad1; } } }