using System; using System.Collections.Generic; using System.Data; 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 FrmCoupMakeupResult : FrmMchBase { public FrmCoupMakeupResult() { InitializeComponent(); mchControlBase1 = new CouplingMakeupControl() { Dock = DockStyle.Fill }; plnEdit.Controls.Add(mchControlBase1); } protected override UltraGridRow ActitveResultRow { get { return CrackDetectGrid.ActiveRow; } } protected override object Value { get { return (mchControlBase1 as CouplingMakeupControl).Value; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); EntityHelper.ShowGridCaption(CrackDetectGrid.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(CrackDetectGrid.DisplayLayout.Bands[1]); 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 DoUpdate() { MchTwistinglyResultEntity data = Value as MchTwistinglyResultEntity; data.ResultNo = CrackDetectGrid.ActiveRow.Cells["ResultNo"].Value.ToString2(); data.JudgeStoveNo = CrackDetectGrid.ActiveRow.Cells["JudgeStoveNo"].Value.ToString2(); data.BatchNo = CrackDetectGrid.ActiveRow.Cells["BatchNo"].Value.ToString2(); if (data.ResultNo == null || data.ResultNo == "") { MessageBox.Show("请选择实绩编号"); return; } if (data.JudgeStoveNo == null || data.JudgeStoveNo == "") { MessageBox.Show("炉号不能为空"); return; } if (data.BatchNo == null || data.BatchNo == "") { MessageBox.Show("批号不能为空"); return; } if (data.CouplingNum == null || data.CouplingNum == 0) { MessageBox.Show("接箍个数不能为0"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否修改接箍个数?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCoupMakeupResult"; ccp.MethodName = "DoUpdate"; ccp.ServerParams = new object[] { JSONFormat.Format(data), (mchControlBase1 as CouplingMakeupControl).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 DoAdd() { if (ActiveRow != null) { List pro = EntityHelper.GetData( "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.getQueryExpandResult", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob); MchTwistinglyResultEntity data = Value as MchTwistinglyResultEntity; decimal used = pro.Sum(p => p.FinalQualifiedNum) ?? 0; decimal OkPort = (mchControlBase1 as CouplingMakeupControl).OkPort.Count; 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.FrmCoupMakeupResult"; 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 CouplingMakeupControl).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.FrmCoupMakeupResult"; 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(); var list = EntityHelper.GetData( "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.getQueryExpandResult", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob); if (list.Count > 0) { var listdetail = EntityHelper.GetData( "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.doQuerypDetail", new object[] { list.Select(p => p.ResultNo).ToArray() }, ob); list.ForEach(p => p.List = listdetail.Where(q => p.ResultNo == q.ResultNo).ToList()); mchTwistinglyResultEntityAllBindingSource.DataSource = list; commHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "ReportPath"); } if (ActiveRow == null) return; var CouplingMakeupControl = mchControlBase1 as CouplingMakeupControl; if (CouplingMakeupControl == null) return; var result = new MchTwistinglyResultEntity { HeatPlanNo = ActiveRow.HeatPlanNo, JudgeStoveNo = ActiveRow.JudgeStoveNo, BatchNo = ActiveRow.BatchNo, PlineCode = ActiveRow.PlineCode, PlineName = ActiveRow.PlineName, ProNum = CouplingMakeupControl.OkPort.Count > (ActiveRow.OperateCount ?? 0) ? CouplingMakeupControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) : 0, FailNum = 0, FailWt = 0, ReProNum = 0, ReProWt = 0, CouplingNum = 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 = CouplingMakeupControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) + result.ProNum + OffNum; if (result.ProNum < 0) { result.ProNum = 0; } } result.QualifiedNum = result.ProNum; result.FinalQualifiedNum = result.ProNum; CouplingMakeupControl.Value = result; } private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { var entity = CrackDetectGrid.ActiveRow.ListObject as MchTwistinglyResultEntity; if (entity == null) return; var strurl = ""; if (e.Button.Key == "VIEW") { strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchTwistingLyReport.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://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchTwistingLyReport.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/Twist/" + 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.FrmCoupMakeupResult.UpdatePath", new object[] {filePathNew + reportNo + ".pdf", entity.ResultNo }, ob); MessageUtil.ShowTips("上传报告成功!"); Query(); } } else { MessageUtil.ShowError("系统生成PDF失败,请稍后再试!"); } } private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e) { if(e.Row.HasParent()) return; var MchTwistinglyResultEntity = e.Row.ListObject as MchTwistinglyResultEntity; e.Row.Cells["ReportPath"].Appearance.BackColor = string.IsNullOrEmpty(MchTwistinglyResultEntity.ReportPath) ? Color.Red : Color.LightGreen; e.Row.Cells["ReportPath"].EditorComponent = utUpLoad1; } } }