RolledPhyPassApplyFrm.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using Core.StlMes.Client.Judge.Commons;
  5. using Core.StlMes.Client.Judge.Controls;
  6. using CoreFS.CA06;
  7. using Infragistics.Win.UltraWinGrid;
  8. using Infragistics.Win.UltraWinTabControl;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. using System.Linq;
  13. using System.Windows.Forms;
  14. namespace Core.StlMes.Client.Judge.Forms
  15. {
  16. public partial class RolledPhyPassApplyFrm : FrmBase
  17. {
  18. private QcmPhyPassApplyCtrl _phyPassApplyCtrl;
  19. private Dal _d;
  20. private QcmZgChemPhyCtrl _zgChemPhyCtrl;
  21. private QcmBcPassFlowCtrl _bcPassFlowCtrl;
  22. public RolledPhyPassApplyFrm()
  23. {
  24. InitializeComponent();
  25. IsLoadUserView = true;
  26. }
  27. public override void ToolBar_Click(object sender, string ToolbarKey)
  28. {
  29. base.ToolBar_Click(sender, ToolbarKey);
  30. switch (ToolbarKey)
  31. {
  32. case "Query":
  33. Query();
  34. break;
  35. case "Audite":
  36. Audite();
  37. break;
  38. case "FoldQuery":
  39. FoldQuery();
  40. break;
  41. case "Export":
  42. GridHelper.ulGridToExcel(_phyPassApplyCtrl.UltraGrid1, "放行信息");
  43. break;
  44. }
  45. }
  46. protected override void OnLoad(EventArgs e)
  47. {
  48. base.OnLoad(e);
  49. if (_zgChemPhyCtrl == null) return;
  50. _zgChemPhyCtrl.JhyPhyResultCtrl.UltraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;
  51. //_zgChemPhyCtrl.JhyPhyResultCtrl.UltraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;
  52. //foreach (var tab in _zgChemPhyCtrl.UltraTabControl2.Tabs)
  53. //{
  54. // if (tab.Key == "002001007010")
  55. // {
  56. // QcmJhyElementsCtrl jhyElementsCtrl = (QcmJhyElementsCtrl)((SplitContainer)tab.TabPage.Controls[0]).Panel2.Controls[0];
  57. // jhyElementsCtrl.UltraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;
  58. // }
  59. // else if (tab.Key == "002001007020" || tab.Key == "002001007013" || tab.Key == "002001007015" || tab.Key == "002001007014"
  60. // || tab.Key == "002001007009")
  61. // {
  62. // QcmJhyPhyResultCtrl jhyPhyResultCtrl = (QcmJhyPhyResultCtrl)((SplitContainer)tab.TabPage.Controls[0]).Panel2.Controls[0];
  63. // jhyPhyResultCtrl.UltraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;
  64. // }
  65. //}
  66. }
  67. private string processCode = "";
  68. private string passType = "";
  69. private void SteelMakingPassApplyFrm_Load(object sender, EventArgs e)
  70. {
  71. processCode = CustomInfo;
  72. _d = new Dal(ob);
  73. _phyPassApplyCtrl = new QcmPhyPassApplyCtrl(splitContainer2.Panel1, ob, this.UserInfo.GetDeptid());
  74. _phyPassApplyCtrl.UltraGrid1.AfterRowActivate += zgPassApplyCtrl_AfterRowActivate;
  75. _zgChemPhyCtrl = new QcmZgChemPhyCtrl(ultraExpandableGroupBoxPanel2, ob, false, "phy", processCode); labelComboBox1.ComboBox.Value = "2";
  76. labelComboBox1.Checked = true;
  77. _bcPassFlowCtrl = new QcmBcPassFlowCtrl(ultraTabPageControl7, ob);
  78. _bcPassFlowCtrl.flag = "1";
  79. if (passType == "Quality")
  80. {
  81. ClsBaseInfo.FillComBaseInfo(labelComboBox1.ComboBox, "4075", ob, false);
  82. //判定结果只显示内控合格和不合格。 40740101内控合格 40740102内控不合格
  83. DataTable dt = (DataTable)labelComboBox1.ComboBox.DataSource;
  84. DataRow dr = dt.NewRow();
  85. dr["BASECODE"] = "2";
  86. dr["BASENAME"] = "未处置";
  87. dt.Rows.InsertAt(dr, 0);
  88. dt.AcceptChanges();
  89. dt.DefaultView.RowFilter = "BASECODE <> '407501'";
  90. ClsBaseInfo.SetComboItemHeight(labelComboBox1.ComboBox);
  91. }
  92. labelComboBox1.SelecteValue = "2";
  93. labelDateTimePicker6.Value = DateTime.Now.Date.AddDays(-3);
  94. labelDateTimePicker5.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
  95. }
  96. private void Audite()
  97. {
  98. var chkRows = _phyPassApplyCtrl.UltraGrid1.Rows.Where(a => a.GetValue("chk") == "True");
  99. if (chkRows.Count() == 0)
  100. {
  101. MessageUtil.ShowWarning("没有需要审核的记录!");
  102. return;
  103. }
  104. string passApplyNo = "";
  105. List<string[]> parms = new List<string[]>();
  106. foreach (var row in chkRows)
  107. {
  108. DataRow drPassApply = _d.GetRowByXmlId("JdgQcmBcPassApplyDAL.queryPhyPassApplyNo", row.GetValue("passApplyNo"));
  109. DataRow drCrtAuditStep = _d.GetRowByXmlId("JdgQcmBcPassFlow.getPhyAuditStep", row.GetValue("passApplyNo"));
  110. DataRow drMaxAuditStep = _d.GetRowByXmlId("JdgQcmBcPassFlow.getPhyMaxAuditStep", row.GetValue("passApplyNo"));
  111. DataRow drCheckApply = _d.GetRowByXmlId("JdgQcmBcPassApplyDAL.QueryPhyDetailByPassNo", row.GetValue("passApplyNo"));
  112. if (drCheckApply == null)
  113. {
  114. MessageUtil.ShowWarning("未找到该对应的理化信息,无法操作!", _phyPassApplyCtrl.UltraGrid1, row);
  115. return;
  116. }
  117. if (drPassApply["validflag"].ToString() == "0")
  118. {
  119. MessageUtil.ShowWarning("该放行申请记录已被删除,无法操作!", _phyPassApplyCtrl.UltraGrid1, row);
  120. return;
  121. }
  122. else if (int.Parse(row.GetValue("auditStep")) < int.Parse(drCrtAuditStep["auditStep"].ToString()) - 1)
  123. {
  124. MessageUtil.ShowWarning("第" + (int.Parse(drCrtAuditStep["auditStep"].ToString()) - 1) + "步骤审核完毕,不能修改第"
  125. + row.GetValue("auditStep") + "步骤审核结果!", _phyPassApplyCtrl.UltraGrid1, row);
  126. return;
  127. }
  128. else if (int.Parse(row.GetValue("auditStep")) == int.Parse(drCrtAuditStep["auditStep"].ToString()) - 1
  129. && drCrtAuditStep["auditResult"].ToString() != "")
  130. {
  131. MessageUtil.ShowWarning("第" + drCrtAuditStep["auditStep"].ToString() + "步骤审核完毕,不能修改第"
  132. + row.GetValue("auditStep") + "步骤审核结果!", _phyPassApplyCtrl.UltraGrid1, row);
  133. return;
  134. }
  135. else if (int.Parse(row.GetValue("auditStep")) > int.Parse(drCrtAuditStep["auditStep"].ToString()))
  136. {
  137. MessageUtil.ShowWarning("第" + drCrtAuditStep["auditStep"].ToString() + "步骤审核未完成,不能提前操作第"
  138. + row.GetValue("auditStep") + "步骤审核!", _phyPassApplyCtrl.UltraGrid1, row);
  139. return;
  140. }
  141. else if ( drCheckApply["validflag"].ToString() != "1")
  142. {
  143. MessageUtil.ShowWarning("此炉号已撤销理化,不能修改审核结果!", _phyPassApplyCtrl.UltraGrid1, row);
  144. return;
  145. }
  146. else if (drCheckApply != null && (drCheckApply["nkResult"].ToString() == "1" && drCheckApply["jfResult"].ToString() == "1"))
  147. {
  148. MessageUtil.ShowWarning("此炉号已判定合格,不能修改审核结果!", _phyPassApplyCtrl.UltraGrid1, row);
  149. return;
  150. }
  151. else if ( drPassApply["auditResult"].ToString() == "1")
  152. {
  153. MessageUtil.ShowWarning("此炉号已放行通过,不能修改审核结果!", _phyPassApplyCtrl.UltraGrid1, row);
  154. return;
  155. }
  156. passApplyNo = row.GetValue("passApplyNo");
  157. string[] parm = new string[] { row.GetValue("passApplyNo"), row.GetValue("auditStep") };
  158. parms.Add(parm);
  159. }
  160. PopupAudite popupAudit = new PopupAudite("审核", passType, true);
  161. popupAudit.CmbAuditType.Caption = "处置方式";
  162. if (passType == "Quality")
  163. {
  164. ClsBaseInfo.FillComBaseInfo(popupAudit.CmbAuditType.ComboBox, "4075", ob, true);
  165. ((DataTable)popupAudit.CmbAuditType.ComboBox.DataSource).DefaultView.RowFilter = "BASECODE <> '407501' OR BASECODE IS NULL";
  166. }
  167. string auditeResult = "";
  168. string memo = "";
  169. if (popupAudit.ShowDialog() != System.Windows.Forms.DialogResult.OK)
  170. {
  171. return;
  172. }
  173. else
  174. {
  175. memo = popupAudit.TxtAudit.Text.Trim();
  176. auditeResult = popupAudit.CmbAuditType.ComboBox.Value.ToString2();
  177. }
  178. var ccp = _d.Set("com.steering.pss.judge.Bll.BllRolledTubeColligatePassApply.Audite", parms, UserInfo.GetUserID(),
  179. UserInfo.GetUserName(), auditeResult, memo);
  180. if (ccp.ReturnInfo != "")
  181. {
  182. MessageUtil.ShowError(ccp.ReturnInfo);
  183. return;
  184. }
  185. else
  186. {
  187. MessageUtil.ShowTips("操作成功!");
  188. }
  189. Relocate(passApplyNo);
  190. }
  191. private void Audite2()
  192. {
  193. var chkRows = _phyPassApplyCtrl.UltraGrid1.Rows.Where(a => a.GetValue("chk") == "True");
  194. if (chkRows.Count() == 0)
  195. {
  196. MessageUtil.ShowWarning("没有需要审核的记录!");
  197. return;
  198. }
  199. string passApplyNo = "";
  200. List<string> passApplyNos = new List<string>();
  201. foreach (var row in chkRows)
  202. {
  203. if (passApplyNos.Contains(row.GetValue("passApplyNo"))) continue;
  204. DataRow drPassApply = _d.GetRowByXmlId("QcmGpPassApplyDAL.queryByPassApplyNo", row.GetValue("passApplyNo"));
  205. DataRow drjudgeApply = _d.GetRowByXmlId("QcmGpJugdeApplyDAL.queryGpApplyByJudgeStoveNo", row.GetValue("jugdeApplyCode"),
  206. row.GetValue("jugdeApplySqe"), row.GetValue("judgeStoveNo"));
  207. if (drPassApply["validflag"].ToString() == "0")
  208. {
  209. MessageUtil.ShowWarning("该放行申请记录已被删除,无法操作!", _phyPassApplyCtrl.UltraGrid1, row);
  210. return;
  211. }
  212. else if (drPassApply["auditResult"].ToString() == "")
  213. {
  214. MessageUtil.ShowWarning("没有进行一级审核,不能操作二级审核!", _phyPassApplyCtrl.UltraGrid1, row);
  215. return;
  216. }
  217. else if (drPassApply["auditResult"].ToString() == "0")
  218. {
  219. MessageUtil.ShowWarning("一级审核不通过,不能操作二级审核!", _phyPassApplyCtrl.UltraGrid1, row);
  220. return;
  221. }
  222. else if (drPassApply["type"].ToString() == "0" && drPassApply["judgeResultCode"].ToString() != "40740704")
  223. {
  224. MessageUtil.ShowWarning("只能审核综合判定结果不合格的炉号!", _phyPassApplyCtrl.UltraGrid1, row);
  225. return;
  226. }
  227. else if (drjudgeApply == null || drjudgeApply["validflag"].ToString() != "20")
  228. {
  229. MessageUtil.ShowWarning("此炉号已撤销判定,不能审核!", _phyPassApplyCtrl.UltraGrid1, row);
  230. return;
  231. }
  232. else if (drPassApply["type"].ToString() == "1" && drPassApply["auditResult2"].ToString() != "")
  233. {
  234. MessageUtil.ShowWarning("已有二级审核结果,不能重复操作!", _phyPassApplyCtrl.UltraGrid1, row);
  235. return;
  236. }
  237. passApplyNo = row.GetValue("passApplyNo");
  238. passApplyNos.Add(row.GetValue("passApplyNo"));
  239. }
  240. PopupAudite popupAudit = new PopupAudite("审核", passType, true);
  241. popupAudit.CmbAuditType.Caption = "处置方式";
  242. if (CustomInfo.StartsWith("Quality"))
  243. {
  244. ClsBaseInfo.FillComBaseInfo(popupAudit.CmbAuditType.ComboBox, "4075", ob, false);
  245. ((DataTable)popupAudit.CmbAuditType.ComboBox.DataSource).DefaultView.RowFilter = "BASECODE <> '407501'";
  246. }
  247. string auditeResult = "";
  248. string memo = "";
  249. if (popupAudit.ShowDialog() != System.Windows.Forms.DialogResult.OK)
  250. {
  251. return;
  252. }
  253. else
  254. {
  255. memo = popupAudit.TxtAudit.Text.Trim();
  256. auditeResult = popupAudit.CmbAuditType.ComboBox.Value.ToString2();
  257. }
  258. var ccp = _d.Set("com.steering.pss.judge.Bll.BllSteelMakingPassApply.Audite2", passApplyNos, UserInfo.GetUserName(), auditeResult, memo);
  259. if (ccp.ReturnInfo != "")
  260. {
  261. MessageUtil.ShowError(ccp.ReturnInfo);
  262. return;
  263. }
  264. else
  265. {
  266. MessageUtil.ShowTips("操作成功!");
  267. }
  268. Relocate(passApplyNo);
  269. }
  270. private void labelDateTimePicker4_CheckBox_CheckedChanged(object sender, EventArgs e)
  271. {
  272. labelDateTimePicker5.DateTimeEnabled = labelDateTimePicker6.Checked;
  273. }
  274. private void Relocate(string passApplyNo)
  275. {
  276. Query();
  277. var row = _phyPassApplyCtrl.UltraGrid1.Rows.Where(a => a.GetValue("passApplyNo") == passApplyNo).FirstOrDefault();
  278. if (row != null)
  279. {
  280. row.Activate();
  281. }
  282. }
  283. public void Query()
  284. {
  285. try
  286. {
  287. this.Cursor = Cursors.WaitCursor;
  288. _zgChemPhyCtrl.ClearData(true);
  289. //_zgJudgeApplyDtlCtrl.Clear();
  290. //_bcPassFlowCtrl.Clear();
  291. string batchNo = labelTextBox5.Checked ? labelTextBox5.Text.Trim() : "";
  292. string checkNo = labelTextBox6.Checked ? labelTextBox6.Text.Trim() : "";
  293. string auditState = labelComboBox1.Checked ? labelComboBox1.SelecteValue.ToString2() : "";
  294. string timeB = labelDateTimePicker6.Checked ? labelDateTimePicker6.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
  295. string timeE = labelDateTimePicker6.Checked ? labelDateTimePicker5.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
  296. _phyPassApplyCtrl.AuditeQuery(checkNo, batchNo, timeB, timeE, passType, auditState, "1", processCode);
  297. }
  298. finally
  299. {
  300. this.Cursor = Cursors.Default;
  301. }
  302. }
  303. private string _ordLnPk = "";
  304. void zgPassApplyCtrl_AfterRowActivate(object sender, EventArgs e)
  305. {
  306. if (_phyPassApplyCtrl.UltraGrid1.ActiveRow == null) return;
  307. try
  308. {
  309. this.Cursor = Cursors.WaitCursor;
  310. var groupRow = _phyPassApplyCtrl.UltraGrid1.ActiveRow;
  311. DataTable dtConsign = _d.GetTableByXmlId("JdgQcmZcCheckconsign.queryAllByCheckNo", groupRow.GetValue("checkNo"));
  312. DataRow drPlnSaleOrd = _d.GetRowByXmlId("JdgPlnSaleOrd.getOrdLnPkByDlyPk", dtConsign.Rows[0]["ordLnDlyPk"].ToString());
  313. if (drPlnSaleOrd == null) return;
  314. string ordLnPk = drPlnSaleOrd["ordLnPk"].ToString();
  315. _ordLnPk = ordLnPk;
  316. _zgChemPhyCtrl.Query(_zgChemPhyCtrl.GetParm(dtConsign, null, null, "", true));
  317. _bcPassFlowCtrl.Query(groupRow.GetValue("passApplyNo"));
  318. }
  319. finally
  320. {
  321. this.Cursor = Cursors.Default;
  322. }
  323. }
  324. private void ultraTabControl2_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  325. {
  326. try
  327. {
  328. this.Cursor = Cursors.WaitCursor;
  329. if (_phyPassApplyCtrl == null || _phyPassApplyCtrl.UltraGrid1 == null || _phyPassApplyCtrl.UltraGrid1.ActiveRow == null) return;
  330. var groupRow = _phyPassApplyCtrl.UltraGrid1.ActiveRow;
  331. DataTable consign = _d.GetTableByXmlId("JdgQcmZcCheckconsign.queryAllByCheckNo", groupRow.GetValue("checkNo"));
  332. string craftSource = consign.Rows[0]["craftSource"].ToString();
  333. _zgChemPhyCtrl.Query(_zgChemPhyCtrl.GetParm(consign, null, null, "", true));
  334. }
  335. finally
  336. {
  337. this.Cursor = Cursors.Default;
  338. }
  339. }
  340. private void labelTextBox6_TextBox_KeyDown(object sender, KeyEventArgs e)
  341. {
  342. if (e.KeyData == Keys.Enter)
  343. {
  344. Query();
  345. }
  346. }
  347. private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e)
  348. {
  349. if (!ultraExpandableGroupBox2.Expanded)
  350. {
  351. ultraExpandableGroupBox2.Dock = DockStyle.Bottom;
  352. splitContainer2.Panel1.Controls.Add(ultraExpandableGroupBox2);
  353. ultraExpandableGroupBox2.BringToFront();
  354. splitContainer2.Panel2Collapsed = true;
  355. }
  356. else
  357. {
  358. ultraExpandableGroupBox2.Dock = DockStyle.Fill;
  359. splitContainer2.Panel2.Controls.Add(ultraExpandableGroupBox2);
  360. splitContainer2.Panel2Collapsed = false;
  361. }
  362. }
  363. private void FoldQuery()
  364. {
  365. if (!this.toolMenu.Toolbars[0].Tools.Exists("FoldQuery")) return;
  366. panel5.Visible = !panel5.Visible;
  367. if (panel5.Visible)
  368. {
  369. this.toolMenu.Toolbars[0].Tools["FoldQuery"].SharedProps.Caption = "折叠查询区域";
  370. //this.splitContainer2.SplitterDistance += 47;
  371. }
  372. else
  373. {
  374. this.toolMenu.Toolbars[0].Tools["FoldQuery"].SharedProps.Caption = "展开查询区域";
  375. //this.splitContainer2.SplitterDistance -= 47;
  376. }
  377. }
  378. private void RolledTubePassApplyFrm_Shown(object sender, EventArgs e)
  379. {
  380. FoldQuery();
  381. }
  382. }
  383. }