FrmCoupMakeupResult.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  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 FrmCoupMakeupResult : FrmMchBase
  23. {
  24. public FrmCoupMakeupResult()
  25. {
  26. InitializeComponent();
  27. mchControlBase1 = new CouplingMakeupControl()
  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 CouplingMakeupControl).Value; } }
  35. protected override void OnLoad(EventArgs e)
  36. {
  37. base.OnLoad(e);
  38. EntityHelper.ShowGridCaption<MchTwistinglyResultEntity>(CrackDetectGrid.DisplayLayout.Bands[0]);
  39. EntityHelper.ShowGridCaption<MchTwistinglyResultDEntity>(CrackDetectGrid.DisplayLayout.Bands[1]);
  40. base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActCount"].Hidden = true;
  41. base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActWeight"].Hidden = true;
  42. base.ultraGrid1.DisplayLayout.Bands[0].Columns["BatchGroudNo"].Hidden = true;
  43. CrackDetectGrid.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  44. CrackDetectGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
  45. ultraOptionSet2.Visible = false;
  46. }
  47. protected override void DoUpdate()
  48. {
  49. MchTwistinglyResultEntity data = Value as MchTwistinglyResultEntity;
  50. data.ResultNo = CrackDetectGrid.ActiveRow.Cells["ResultNo"].Value.ToString2();
  51. data.JudgeStoveNo = CrackDetectGrid.ActiveRow.Cells["JudgeStoveNo"].Value.ToString2();
  52. data.BatchNo = CrackDetectGrid.ActiveRow.Cells["BatchNo"].Value.ToString2();
  53. if (data.ResultNo == null || data.ResultNo == "")
  54. {
  55. MessageBox.Show("请选择实绩编号");
  56. return;
  57. }
  58. if (data.JudgeStoveNo == null || data.JudgeStoveNo == "")
  59. {
  60. MessageBox.Show("炉号不能为空");
  61. return;
  62. }
  63. if (data.BatchNo == null || data.BatchNo == "")
  64. {
  65. MessageBox.Show("批号不能为空");
  66. return;
  67. }
  68. if (data.CouplingNum == null || data.CouplingNum == 0)
  69. {
  70. MessageBox.Show("接箍个数不能为0");
  71. return;
  72. }
  73. if (MessageUtil.ShowYesNoAndQuestion("是否修改接箍个数?") == DialogResult.No)
  74. return;
  75. var ccp = new CoreClientParam();
  76. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCoupMakeupResult";
  77. ccp.MethodName = "DoUpdate";
  78. ccp.ServerParams = new object[]
  79. {
  80. JSONFormat.Format(data),
  81. (mchControlBase1 as CouplingMakeupControl).Detail.Select(JSONFormat.Format).ToList()
  82. };
  83. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  84. if (ccp.ReturnCode != -1)
  85. {
  86. MessageUtil.ShowTips(ccp.ReturnInfo);
  87. if (ccp.ReturnInfo.Equals("修改成功!"))
  88. {
  89. Query();
  90. }
  91. }
  92. }
  93. protected override void DoAdd()
  94. {
  95. if (ActiveRow != null)
  96. {
  97. List<MchTwistinglyResultEntity> pro = EntityHelper.GetData<MchTwistinglyResultEntity>(
  98. "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.getQueryExpandResult",
  99. new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo },
  100. ob);
  101. MchTwistinglyResultEntity data = Value as MchTwistinglyResultEntity;
  102. decimal used = pro.Sum(p => p.FinalQualifiedNum) ?? 0;
  103. decimal OkPort = (mchControlBase1 as CouplingMakeupControl).OkPort.Count;
  104. if (OkPort - used - data.FinalQualifiedNum < 0)
  105. {
  106. List<MchOfflineResultEntity> mchOffline = EntityHelper.GetData<MchOfflineResultEntity>("com.steering.mes.mcp.common.OfflineHelper.QueryMchOffLineData", new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob);
  107. var returnData = mchOffline.Where(
  108. p =>
  109. p.ReturnProcess != null && p.StationCode != p.ReturnProcess &&
  110. mchControlBase1.CheckGx2(p.StationCode, mchControlBase1.gx) &&
  111. mchControlBase1.CheckGx2(mchControlBase1.gx, p.ReturnProcess)).ToList();
  112. int ReturnNum = 0;
  113. if (returnData.Any())
  114. {
  115. ReturnNum = int.Parse(returnData.Sum(p => p.ReNum).ToString3());
  116. if (ReturnNum > 0)
  117. {
  118. data.ProWt = returnData.Sum(p => p.ReWt);
  119. }
  120. }
  121. if (OkPort + ReturnNum - used - data.FinalQualifiedNum < 0)
  122. {
  123. if (mchOffline.Any(p => p.ReNum == null || p.ReNum <= 0))
  124. {
  125. MessageBox.Show(
  126. mchOffline.Any(p => (p.ReNum == null || p.ReNum <= 0) && p.SubcontractcompleteNum > 0)
  127. ? "委托已经完成,未返线, 请联系出料人员对该炉批进行返线操作!"
  128. : "存在离线数据未返线, 请联系出料人员对该炉批进行返线操作!");
  129. return;
  130. }
  131. MessageBox.Show("请检查数据是否维护正确, 最终合格支 + 离线返线支= 一次合格支+ 返修支, 该炉批当前工序总 " + OkPort + "支 已维护了合格" + used +
  132. "支 当前最终合格支不能超过" + (OkPort + ReturnNum - used) + "支");
  133. return;
  134. }
  135. }
  136. if (MessageUtil.ShowYesNoAndQuestion("是否增加拧接实绩?") == DialogResult.No)
  137. return;
  138. var ccp = new CoreClientParam();
  139. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCoupMakeupResult";
  140. ccp.MethodName = "DoAdd";
  141. ccp.ServerParams = new object[]
  142. {
  143. JSONFormat.Format(data),
  144. Gx,
  145. mchControlBase1.ScrappedList.Select(JSONFormat.Format).ToList(),
  146. mchControlBase1.SuspiciousList.Select(JSONFormat.Format).ToList(),
  147. (mchControlBase1 as CouplingMakeupControl).Detail.Select(JSONFormat.Format).ToList()
  148. };
  149. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  150. if (ccp.ReturnCode != -1)
  151. {
  152. MessageUtil.ShowTips(ccp.ReturnInfo);
  153. if (ccp.ReturnInfo.Equals("新增成功!"))
  154. {
  155. Query();
  156. }
  157. }
  158. }
  159. }
  160. protected override void DoDelete()
  161. {
  162. {
  163. if (ActiveRow != null && ActitveResultRow != null)
  164. {
  165. if (MessageUtil.ShowYesNoAndQuestion("是否删除拧接实绩?") == DialogResult.No)
  166. return;
  167. var ccp = new CoreClientParam();
  168. ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCoupMakeupResult";
  169. ccp.MethodName = "DoDelete";
  170. ccp.ServerParams = new object[]
  171. {
  172. JSONFormat.Format(ActitveResultRow.ListObject), Gx
  173. };
  174. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  175. if (ccp.ReturnCode != -1)
  176. {
  177. MessageUtil.ShowTips(ccp.ReturnInfo);
  178. if (ccp.ReturnInfo.Equals("删除成功!"))
  179. {
  180. if (!string.IsNullOrEmpty(ActitveResultRow.Cells["ReportPath"].Value.ToString2()))
  181. {
  182. try
  183. {
  184. FileHelper.Delete(ActitveResultRow.Cells["ReportPath"].Value.ToString2());
  185. }
  186. catch (Exception)
  187. {
  188. MessageUtil.ShowTips("报告删除失败!");
  189. }
  190. }
  191. Query();
  192. }
  193. }
  194. }
  195. }
  196. }
  197. protected override void GetResultData()
  198. {
  199. base.GetResultData();
  200. var list = EntityHelper.GetData<MchTwistinglyResultEntityAll>(
  201. "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.getQueryExpandResult",
  202. new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo },
  203. ob);
  204. if (list.Count > 0) {
  205. var listdetail = EntityHelper.GetData<MchTwistinglyResultDEntity>(
  206. "com.steering.mes.mcp.Mch.FrmCoupMakeupResult.doQuerypDetail",
  207. new object[] { list.Select(p => p.ResultNo).ToArray() },
  208. ob);
  209. list.ForEach(p => p.List = listdetail.Where(q => p.ResultNo == q.ResultNo).ToList());
  210. mchTwistinglyResultEntityAllBindingSource.DataSource = list;
  211. commHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "ReportPath");
  212. }
  213. if (ActiveRow == null) return;
  214. var CouplingMakeupControl = mchControlBase1 as CouplingMakeupControl;
  215. if (CouplingMakeupControl == null) return;
  216. var result = new MchTwistinglyResultEntity
  217. {
  218. HeatPlanNo = ActiveRow.HeatPlanNo,
  219. JudgeStoveNo = ActiveRow.JudgeStoveNo,
  220. BatchNo = ActiveRow.BatchNo,
  221. PlineCode = ActiveRow.PlineCode,
  222. PlineName = ActiveRow.PlineName,
  223. ProNum = CouplingMakeupControl.OkPort.Count > (ActiveRow.OperateCount ?? 0) ? CouplingMakeupControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) : 0,
  224. FailNum = 0,
  225. FailWt = 0,
  226. ReProNum = 0,
  227. ReProWt = 0,
  228. CouplingNum = 0,
  229. ProShift = UserInfo.GetUserOrder(),
  230. ProGroup = UserInfo.GetUserGroup(),
  231. ProUser = UserInfo.GetUserName(),
  232. ProTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
  233. };
  234. if (result.ProNum <= 0)
  235. {
  236. int OffNum = GetReturnNum();
  237. result.ProNum = CouplingMakeupControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) + result.ProNum + OffNum;
  238. if (result.ProNum < 0)
  239. {
  240. result.ProNum = 0;
  241. }
  242. }
  243. result.QualifiedNum = result.ProNum;
  244. result.FinalQualifiedNum = result.ProNum;
  245. CouplingMakeupControl.Value = result;
  246. }
  247. private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  248. {
  249. var entity = CrackDetectGrid.ActiveRow.ListObject as MchTwistinglyResultEntity;
  250. if (entity == null) return;
  251. var strurl = "";
  252. if (e.Button.Key == "VIEW")
  253. {
  254. strurl =
  255. "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchTwistingLyReport.cpt&op=view&resultNo=" +
  256. entity.ResultNo;
  257. var fre = new FrmRepExcel(ob, strurl);
  258. fre.AutoSize = true;
  259. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width,
  260. Screen.PrimaryScreen.WorkingArea.Height);
  261. fre.WindowState = FormWindowState.Maximized;
  262. fre.Show();
  263. }
  264. else if (e.Button.Key == "UPLOAD")
  265. {
  266. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=MchTwistingLyReport.cpt&format=pdf&resultNo=" + entity.ResultNo;
  267. var webClient = new WebClient();
  268. var listPdf = new List<FileBean>();
  269. var date = DateTime.Now.ToString("yyyyMMdd");
  270. var filePathNew = ""; //报告目录
  271. var reportNo = ""; //报告编号
  272. filePathNew = "Mch/Twist/" + ActiveRow.JudgeStoveNo + "/" + entity.BatchNo + "/" + entity.HeatPlanNo + "/";
  273. reportNo = entity.ResultNo ;
  274. var pdf = webClient.DownloadData(strurl);
  275. var fileBean = new FileBean();
  276. fileBean.setFile(pdf);
  277. fileBean.setFileName(reportNo + ".pdf");
  278. fileBean.setPathName(filePathNew);
  279. listPdf.Add(fileBean);
  280. webClient.Dispose();
  281. var a = FileHelper.Upload(listPdf);
  282. if (a)
  283. {
  284. ServerHelper.SetData("com.steering.mes.mcp.Mch.FrmCoupMakeupResult.UpdatePath",
  285. new object[] {filePathNew + reportNo + ".pdf", entity.ResultNo }, ob);
  286. MessageUtil.ShowTips("上传报告成功!");
  287. Query();
  288. }
  289. }
  290. else
  291. {
  292. MessageUtil.ShowError("系统生成PDF失败,请稍后再试!");
  293. }
  294. }
  295. private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e)
  296. {
  297. if(e.Row.HasParent()) return;
  298. var MchTwistinglyResultEntity = e.Row.ListObject as MchTwistinglyResultEntity;
  299. e.Row.Cells["ReportPath"].Appearance.BackColor = string.IsNullOrEmpty(MchTwistinglyResultEntity.ReportPath)
  300. ? Color.Red
  301. : Color.LightGreen;
  302. e.Row.Cells["ReportPath"].EditorComponent = utUpLoad1;
  303. }
  304. }
  305. }