FrmHydrostaticResult.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Windows.Forms;
  9. using com.steering.mes.mcp.entity;
  10. using Core.Mes.Client.Comm.Format;
  11. using Core.Mes.Client.Comm.Server;
  12. using Core.Mes.Client.Comm.Tool;
  13. using Core.StlMes.Client.Mcp.Control;
  14. using Core.StlMes.Client.Mcp.Control.Common;
  15. using Core.StlMes.Client.Mcp.Control.Entity;
  16. using Core.StlMes.Client.Mcp.Mch.MchResult;
  17. using CoreFS.CA06;
  18. using Infragistics.Win;
  19. using Infragistics.Win.UltraWinGrid;
  20. namespace Core.StlMes.Client.Mcp.Mch
  21. {
  22. public partial class FrmHydrostaticResult : FrmMchBase
  23. {
  24. public FrmHydrostaticResult()
  25. {
  26. InitializeComponent();
  27. mchControlBase1 = new HydrostaticControl()
  28. {
  29. Dock = DockStyle.Fill
  30. };
  31. plnEdit.Controls.Add(mchControlBase1);
  32. }
  33. protected override UltraGridRow ActitveResultRow { get { return CrackDetectGrid.ActiveRow; } }
  34. protected override object Value { get { return (mchControlBase1 as HydrostaticControl).Value; } }
  35. protected override void OnLoad(EventArgs e)
  36. {
  37. base.OnLoad(e);
  38. EntityHelper.ShowGridCaption<MchWatergageResultEntity>(CrackDetectGrid.DisplayLayout.Bands[0]);
  39. base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActCount"].Hidden = true;
  40. base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActWeight"].Hidden = true;
  41. base.ultraGrid1.DisplayLayout.Bands[0].Columns["BatchGroudNo"].Hidden = true;
  42. CrackDetectGrid.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  43. CrackDetectGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
  44. ultraOptionSet2.Visible = false;
  45. }
  46. protected override void DoAdd()
  47. {
  48. if (ActiveRow != null)
  49. {
  50. List<MchWatergageResultEntity> pro = EntityHelper.GetData<MchWatergageResultEntity>(
  51. "com.steering.mes.mcp.Mch.FrmHydrostaticResult.getQueryExpandResult",
  52. new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo },
  53. ob);
  54. decimal used = pro.Sum(p => p.FinalQualifiedNum) ?? 0;
  55. decimal OkPort = (mchControlBase1 as HydrostaticControl).OkPort.Count;
  56. MchWatergageResultEntity data = Value as MchWatergageResultEntity;
  57. if (OkPort - used - data.FinalQualifiedNum < 0)
  58. {
  59. List<MchOfflineResultEntity> mchOffline = EntityHelper.GetData<MchOfflineResultEntity>("com.steering.mes.mcp.common.OfflineHelper.QueryMchOffLineData", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob);
  60. var returnData = mchOffline.Where(
  61. p =>
  62. p.ReturnProcess != null && p.StationCode != p.ReturnProcess &&
  63. mchControlBase1.CheckGx2(p.StationCode, mchControlBase1.gx) &&
  64. mchControlBase1.CheckGx2(mchControlBase1.gx, p.ReturnProcess)).ToList();
  65. int ReturnNum = 0;
  66. if (returnData.Any())
  67. {
  68. ReturnNum = int.Parse(returnData.Sum(p => p.ReNum).ToString3());
  69. if (ReturnNum > 0)
  70. {
  71. data.ProWt = returnData.Sum(p => p.ReWt);
  72. }
  73. }
  74. if (OkPort + ReturnNum - used - data.FinalQualifiedNum < 0)
  75. {
  76. if (mchOffline.Any(p => p.ReNum == null || p.ReNum <= 0))
  77. {
  78. MessageBox.Show(
  79. mchOffline.Any(p => (p.ReNum == null || p.ReNum <= 0) && p.SubcontractcompleteNum > 0)
  80. ? "委托已经完成,未返线, 请联系出料人员对该炉批进行返线操作!"
  81. : "存在离线数据未返线, 请联系出料人员对该炉批进行返线操作!");
  82. return;
  83. }
  84. MessageBox.Show("请检查数据是否维护正确, 最终合格支 + 离线返线支= 一次合格支+ 返修支 , 该炉批当前工序总 " + OkPort + "支 已维护了合格" + used +
  85. "支 当前最终合格支不能超过" + (OkPort + ReturnNum - used) + "支");
  86. return;
  87. }
  88. }
  89. if (MessageUtil.ShowYesNoAndQuestion("是否增加水压实绩?") == DialogResult.No)
  90. return;
  91. var ccp = new CoreClientParam();
  92. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmHydrostaticResult";
  93. ccp.MethodName = "DoAdd";
  94. ccp.ServerParams = new object[]
  95. {
  96. JSONFormat.Format(Value),
  97. Gx,
  98. mchControlBase1.ScrappedList.Select(JSONFormat.Format).ToList(),
  99. mchControlBase1.SuspiciousList.Select(JSONFormat.Format).ToList()
  100. };
  101. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  102. if (ccp.ReturnCode != -1)
  103. {
  104. MessageUtil.ShowTips(ccp.ReturnInfo);
  105. if (ccp.ReturnInfo.Equals("新增成功!"))
  106. {
  107. Query();
  108. }
  109. }
  110. }
  111. }
  112. protected override void DoDelete()
  113. {
  114. {
  115. if (ActiveRow != null && ActitveResultRow != null)
  116. {
  117. if (MessageUtil.ShowYesNoAndQuestion("是否删除水压实绩?") == DialogResult.No)
  118. return;
  119. var ccp = new CoreClientParam();
  120. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmHydrostaticResult";
  121. ccp.MethodName = "DoDelete";
  122. ccp.ServerParams = new object[]
  123. {
  124. JSONFormat.Format(ActitveResultRow.ListObject), Gx
  125. };
  126. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  127. if (ccp.ReturnCode != -1)
  128. {
  129. MessageUtil.ShowTips(ccp.ReturnInfo);
  130. if (ccp.ReturnInfo.Equals("删除成功!"))
  131. {
  132. if (!string.IsNullOrEmpty(ActitveResultRow.Cells["ReportPath"].Value.ToString2()))
  133. {
  134. try
  135. {
  136. FileHelper.Delete(ActitveResultRow.Cells["ReportPath"].Value.ToString2());
  137. }
  138. catch (Exception)
  139. {
  140. MessageUtil.ShowTips("报告删除失败!");
  141. }
  142. }
  143. Query();
  144. }
  145. }
  146. }
  147. }
  148. }
  149. protected override void GetResultData()
  150. {
  151. base.GetResultData();
  152. mchWatergageResultEntityBindingSource.DataSource = EntityHelper.GetData<MchWatergageResultEntity>(
  153. "com.steering.mes.mcp.Mch.FrmHydrostaticResult.getQueryExpandResult",
  154. new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo },
  155. ob);
  156. commHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "ReportPath");
  157. if (ActiveRow == null) return;
  158. var HydrostaticControl = mchControlBase1 as HydrostaticControl;
  159. if (HydrostaticControl == null) return;
  160. var result = new MchWatergageResultEntity
  161. {
  162. HeatPlanNo = ActiveRow.HeatPlanNo,
  163. JudgeStoveNo = ActiveRow.JudgeStoveNo,
  164. BatchNo = ActiveRow.BatchNo,
  165. PlineCode = ActiveRow.PlineCode,
  166. PlineName = ActiveRow.PlineName,
  167. ProNum = HydrostaticControl.OkPort.Count > (ActiveRow.OperateCount ?? 0) ? HydrostaticControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) : 0,
  168. FailNum = 0,
  169. FailWt = 0,
  170. ReProNum = 0,
  171. ReProWt = 0,
  172. ProShift = UserInfo.GetUserOrder(),
  173. ProGroup = UserInfo.GetUserGroup(),
  174. ProUser = UserInfo.GetUserName(),
  175. ProTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
  176. };
  177. if (result.ProNum <= 0)
  178. {
  179. int OffNum = GetReturnNum();
  180. result.ProNum =HydrostaticControl.OkPort.Count - (ActiveRow.OperateCount ?? 0)+ result.ProNum + OffNum;
  181. if (result.ProNum < 0)
  182. {
  183. result.ProNum = 0;
  184. }
  185. }
  186. result.QualifiedNum = result.ProNum;
  187. result.FinalQualifiedNum = result.ProNum;
  188. DataTable Stand = ServerHelper.GetData("com.steering.mes.mcp.Mch.FrmHydrostaticResult.getStand", new object[] { ActiveRow.OrdLnDlyPk, ActiveRow.CraftSeq.ToString2(), ActiveRow.Wic,ActiveRow.IndexSeq, "G" }, ob);
  189. if (Stand != null && Stand.Rows.Count > 0)
  190. {
  191. result.TestPressure = Stand.Rows[0]["PRESSURE"].ToString2();
  192. result.TestPressureY = Stand.Rows[0]["PRESSURE_Y"].ToString2();
  193. result.HoldtimeTime = Stand.Rows[0]["SAVE_TIME"].ToString2();
  194. }
  195. HydrostaticControl.Value = result;
  196. }
  197. private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  198. {
  199. var entity = CrackDetectGrid.ActiveRow.ListObject as MchWatergageResultEntity;
  200. if (entity == null) return;
  201. var strurl = "";
  202. if (e.Button.Key == "VIEW")
  203. {
  204. strurl =
  205. "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchWatergageReport.cpt&op=view&resultNo=" +
  206. entity.ResultNo;
  207. var fre = new FrmRepExcel(ob, strurl);
  208. fre.AutoSize = true;
  209. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width,
  210. Screen.PrimaryScreen.WorkingArea.Height);
  211. fre.WindowState = FormWindowState.Maximized;
  212. fre.Show();
  213. }
  214. else if (e.Button.Key == "UPLOAD")
  215. {
  216. /*strurl =
  217. "http://localhost:8075/webroot/decision/view/report?viewlet=HttRotaCrackDetetionPipeHeatReport.cpt&resultNo=" +
  218. resultNo;*/
  219. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchWatergageReport.cpt&format=pdf&resultNo=" + entity.ResultNo;
  220. var webClient = new WebClient();
  221. var listPdf = new List<FileBean>();
  222. var date = DateTime.Now.ToString("yyyyMMdd");
  223. var filePathNew = ""; //报告目录
  224. var reportNo = ""; //报告编号
  225. filePathNew = "Mch/WaterPressure/" + ActiveRow.JudgeStoveNo + "/" + entity.BatchNo + "/" + entity.HeatPlanNo + "/";
  226. reportNo = entity.ResultNo;
  227. var pdf = webClient.DownloadData(strurl);
  228. var fileBean = new FileBean();
  229. fileBean.setFile(pdf);
  230. fileBean.setFileName(reportNo + ".pdf");
  231. fileBean.setPathName(filePathNew);
  232. listPdf.Add(fileBean);
  233. webClient.Dispose();
  234. var a = FileHelper.Upload(listPdf);
  235. if (a)
  236. {
  237. ServerHelper.SetData("com.steering.mes.mcp.Mch.FrmHydrostaticResult.UpdatePath",
  238. new object[] { filePathNew + reportNo + ".pdf", entity.ResultNo }, ob);
  239. MessageUtil.ShowTips("上传报告成功!");
  240. Query();
  241. }
  242. }
  243. else
  244. {
  245. MessageUtil.ShowError("系统生成PDF失败,请稍后再试!");
  246. }
  247. }
  248. private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e)
  249. {
  250. var Entity = e.Row.ListObject as MchWatergageResultEntity;
  251. e.Row.Cells["ReportPath"].Appearance.BackColor = string.IsNullOrEmpty(Entity.ReportPath)
  252. ? Color.Red
  253. : Color.LightGreen;
  254. e.Row.Cells["ReportPath"].EditorComponent = utUpLoad1;
  255. }
  256. }
  257. }