FrmDriftDiameterResult.cs 12 KB

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