DtMsc.cs 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using CoreFS.CA06;
  5. using CoreFS.SA06;
  6. using Infragistics.Win.UltraWinGrid;
  7. using System;
  8. using System.Collections;
  9. using System.Data;
  10. using System.Linq;
  11. using System.Windows.Forms;
  12. namespace Core.StlMes.Client.Qcm
  13. {
  14. class DtMsc : DtBaseQcm
  15. {
  16. ControlMsc _controlMsc = null;
  17. public DtMsc(ControlMsc controlMsc)
  18. {
  19. _controlMsc = controlMsc;
  20. RegistQuery(QueryMscRJg, "QueryMscRJg");
  21. RegistQuery(Query, "DefaultQuery");
  22. RegistAction(Add, ActionType.Add);
  23. RegistAction(Modify, ActionType.Modify);
  24. RegistAction(Save, ActionType.Save);
  25. RegistAction(Delete, ActionType.Delete);
  26. RegistAction(Resume, ActionType.Resume);
  27. RegistAction(SubMitAudit, ActionType.SubMitAudit);
  28. RegistAction(Audit, ActionType.Audit);
  29. RegistAction(Group, ActionType.Group);
  30. RegistAction(SubMitModify, ActionType.SubMitModify);
  31. RegistAction(SubMitAuditNk, ActionType.SubMitAudit2);
  32. RegistAction(SubMitModifyNk, ActionType.SubMitModify2);
  33. }
  34. protected void Query()
  35. {
  36. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  37. _controlMsc.DataTableMscRJg.Clear();
  38. _controlMsc.DataTableMsc.Clear();
  39. if (frm.ultraGrid1.ActiveRow == null) return;
  40. ArrayList list = new ArrayList();
  41. list.Add(frm.ultraGrid1.ActiveRow.Cells["PSC"].Value.ToString());
  42. list.Add(frm.ckbDeleteFilter.Checked ? "D" : "A");
  43. list.AddRange(_controlMsc.Msc, _controlMsc.Msc, _controlMsc.Msc);
  44. list.Add(frm.txtMsc.Text.Trim());
  45. list.AddRange(frm.MscUseCode, frm.MscUseCode, frm.MscUseCode);
  46. DataTable dt = null;
  47. try
  48. {
  49. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryComMsc",
  50. new object[] { list }, frm.ob);
  51. }
  52. catch
  53. {
  54. return;
  55. }
  56. if (_controlMsc.GridMsc.ActiveRow == null)
  57. {
  58. _controlMsc.MscRow = null;
  59. _controlMsc.JgRow = null;
  60. }
  61. else
  62. {
  63. if (_controlMsc.GridMsc.ActiveRow.HasParent())
  64. {
  65. _controlMsc.MscRow = _controlMsc.GridMsc.ActiveRow.ParentRow;
  66. _controlMsc.JgRow = _controlMsc.GridMsc.ActiveRow;
  67. }
  68. else
  69. {
  70. _controlMsc.MscRow = _controlMsc.GridMsc.ActiveRow;
  71. _controlMsc.JgRow = null;
  72. }
  73. }
  74. _controlMsc.GridMsc.BeginUpdate();
  75. GridHelper.CopyDataToDatatable(dt, _controlMsc.DataTableMsc, true);
  76. GridHelper.RefreshAndAutoSize(_controlMsc.GridMsc);
  77. foreach (UltraGridRow row in _controlMsc.GridMsc.Rows)
  78. {
  79. _controlMsc.ControlGrid2Edit(row);
  80. row.SetValue("Zbs", "质保书模板");
  81. row.Cells["Zbs"].Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  82. }
  83. _controlMsc.GridMsc.EndUpdate();
  84. _controlMsc.GridMsc.UpdateData();
  85. }
  86. protected bool Add()
  87. {
  88. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  89. UltraGrid pscGrid = frm.ultraGrid1;
  90. pscGrid.UpdateData();
  91. frm.ControlMsc.GridMsc.UpdateData();
  92. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  93. new string[] { "CHK" }, new string[] { "True" });
  94. ArrayList list = new ArrayList();
  95. ArrayList list2 = new ArrayList();
  96. ArrayList list4 = new ArrayList(); //冶金项目参数
  97. UltraGridRow ultRow = ultRows[0];
  98. string strMaxMscCode = GetMaxMscCode(pscGrid.ActiveRow.Cells["PSC"].Value.ToString(),
  99. ultRow.Cells["USE_CODE"].Value.ToString(),
  100. ultRow.Cells["MSC_SEQ"].Value.ToString(),
  101. frm.ob);
  102. string strMscDesc = ultRow.Cells["MSC_DESC"].Value.ToString() == "" ? pscGrid.ActiveRow.Cells["PSC_DESC"].Value.ToString()
  103. : ultRow.Cells["MSC_DESC"].Value.ToString();
  104. //list.Add(pscGrid.ActiveRow.Cells["PSC"].Value.ToString());
  105. //list.Add(pscGrid.ActiveRow.Cells["PSC_DESC"].Value.ToString());
  106. //list.Add(ultRow.Cells["USE_CODE"].Value.ToString());
  107. //list.Add(ultRow.Cells["USE_CODE"].Text);
  108. //list.Add(strMaxMscCode);
  109. //list.Add(strMscDesc);
  110. //list.Add(frm.UserInfo.GetUserName());
  111. list2.Add(strMaxMscCode);
  112. list2.Add(strMscDesc);
  113. list2.Add(ultRow.Cells["USE_CODE"].Value.ToString());
  114. list2.Add(ultRow.Cells["USE_DESC"].Value.ToString());
  115. list2.Add(ultRow.Cells["DEPARTMENT_CODE"].Value.ToString());
  116. list2.Add(ultRow.Cells["DEPARTMENT_CODE"].Text);
  117. list2.Add(ultRow.Cells["UNIT_CODE"].Value.ToString());
  118. list2.Add(ultRow.Cells["UNIT_CODE"].Text);
  119. list2.Add(ultRow.GetValue("UNIT_CODE_PROCESS"));
  120. list2.Add(ultRow.GetText("UNIT_CODE_PROCESS"));
  121. list2.Add(ultRow.Cells["MSC_STYLE"].Value.ToString());
  122. list2.Add(ultRow.Cells["USER_COUNT"].Value.ToString() == "" ? "1" : ultRow.Cells["USER_COUNT"].Value.ToString());
  123. list2.Add(ultRow.Cells["ALLOW_NK"].Value.ToString() == "" ? "1" : ultRow.Cells["ALLOW_NK"].Value.ToString());
  124. list2.Add(ultRow.Cells["MSC_SEQ"].Value.ToString());
  125. list2.Add(""); //引用冶金规范码描述
  126. list2.Add(frm.UserInfo.GetUserName());
  127. list2.Add(ultRow.Cells["MEMO"].Value.ToString());
  128. list2.Add(ultRow.GetValue("PRODUC_HEAD"));
  129. list2.Add(ultRow.GetValue("JUDGEFLAG"));
  130. list2.Add(pscGrid.ActiveRow.Cells["PRODUCCODE"].Value.ToString());
  131. list2.Add(pscGrid.ActiveRow.Cells["PRODUCNAME"].Value.ToString());
  132. list2.Add(pscGrid.ActiveRow.Cells["STD_CODE"].Value.ToString());
  133. list2.Add(pscGrid.ActiveRow.Cells["STD_NAME"].Value.ToString());
  134. list2.Add(pscGrid.ActiveRow.Cells["STEELCODE"].Value.ToString());
  135. list2.Add(pscGrid.ActiveRow.Cells["STEELNAME"].Value.ToString());
  136. list2.Add(pscGrid.ActiveRow.Cells["STD_STYLE"].Value.ToString());
  137. list2.Add(pscGrid.ActiveRow.Cells["STD_STYLE_DESC"].Value.ToString());
  138. list2.Add(pscGrid.ActiveRow.Cells["NEW_PROC_CODE"].Value.ToString());
  139. list2.Add(pscGrid.ActiveRow.Cells["NEW_PROC_DESC"].Value.ToString());
  140. list2.Add(pscGrid.ActiveRow.Cells["PSC"].Value.ToString());
  141. list2.Add(pscGrid.ActiveRow.Cells["PSC_DESC"].Value.ToString());
  142. //复制冶金规范下面的数据。
  143. //list4.Add(strMaxMscCode);
  144. //list4.Add(ultRow.Cells["MSC_SEQ"].Value.ToString());
  145. //list4.Add(ultRow.Cells["OLD_MSC_SEQ"].Value.ToString());
  146. //list4.Add(frm.UserInfo.GetUserName());
  147. try
  148. {
  149. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.insertComPscRMsc",
  150. new object[] { list, list2, list4 }, frm.ob);
  151. }
  152. catch
  153. {
  154. return false;
  155. }
  156. return true;
  157. }
  158. protected bool Modify()
  159. {
  160. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  161. frm.ultraGrid1.UpdateData();
  162. _controlMsc.GridMsc.UpdateData();
  163. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  164. new string[] { "CHK" }, new string[] { "True" });
  165. ArrayList list = new ArrayList();
  166. ArrayList list2 = new ArrayList();
  167. ArrayList list3 = new ArrayList();
  168. if (ultRows.Length > 0)
  169. {
  170. UltraGridRow ultRow = ultRows[0];
  171. list.Add(ultRow.Cells["MSC_DESC"].Value.ToString());
  172. list.Add(ultRow.Cells["USE_CODE"].Value.ToString());
  173. list.Add(ultRow.Cells["USE_DESC"].Value.ToString());
  174. list.Add(ultRow.Cells["DEPARTMENT_CODE"].Value.ToString());
  175. list.Add(ultRow.Cells["DEPARTMENT_CODE"].Text);
  176. list.Add(ultRow.Cells["UNIT_CODE"].Value.ToString());
  177. list.Add(ultRow.Cells["UNIT_CODE"].Text);
  178. list.Add(ultRow.GetValue("UNIT_CODE_PROCESS"));
  179. list.Add(ultRow.GetText("UNIT_CODE_PROCESS"));
  180. list.Add(ultRow.Cells["MSC_STYLE"].Value.ToString());
  181. list.Add(ultRow.Cells["USER_COUNT"].Value.ToString() == "" ? "1" : ultRow.Cells["USER_COUNT"].Value.ToString());
  182. list.Add(ultRow.Cells["ALLOW_NK"].Value.ToString());
  183. list.Add(ultRow.Cells["MSC_SEQ"].Value.ToString());
  184. list.Add(""); //引用冶金规范码描述
  185. list.Add(frm.UserInfo.GetUserName());
  186. list.Add(ultRow.Cells["MEMO"].Value.ToString());
  187. list.Add(ultRow.GetValue("PRODUC_HEAD"));
  188. list.Add(ultRow.GetValue("JUDGEFLAG"));
  189. list.Add(frm.ultraGrid1.ActiveRow.Cells["PRODUCCODE"].Value.ToString());
  190. list.Add(frm.ultraGrid1.ActiveRow.Cells["PRODUCNAME"].Value.ToString());
  191. list.Add(frm.ultraGrid1.ActiveRow.Cells["STD_CODE"].Value.ToString());
  192. list.Add(frm.ultraGrid1.ActiveRow.Cells["STD_NAME"].Value.ToString());
  193. list.Add(frm.ultraGrid1.ActiveRow.Cells["STEELCODE"].Value.ToString());
  194. list.Add(frm.ultraGrid1.ActiveRow.Cells["STEELNAME"].Value.ToString());
  195. list.Add(frm.ultraGrid1.ActiveRow.Cells["STD_STYLE"].Value.ToString());
  196. list.Add(frm.ultraGrid1.ActiveRow.Cells["STD_STYLE_DESC"].Value.ToString());
  197. list.Add(frm.ultraGrid1.ActiveRow.Cells["NEW_PROC_CODE"].Value.ToString());
  198. list.Add(frm.ultraGrid1.ActiveRow.Cells["NEW_PROC_DESC"].Value.ToString());
  199. list.Add(ultRow.Cells["MSC"].Value.ToString());
  200. }
  201. //复制冶金规范下面的数据。
  202. //list3.Add(ultRow.Cells["MSC"].Value.ToString());
  203. //list3.Add(ultRow.Cells["MSC_SEQ"].Value.ToString());
  204. //list3.Add(ultRow.Cells["OLD_MSC_SEQ"].Value.ToString());
  205. //list3.Add(frm.UserInfo.GetUserName());
  206. try
  207. {
  208. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.updateMsc",
  209. new object[] { list, list3 }, frm.ob);
  210. }
  211. catch
  212. {
  213. return false;
  214. }
  215. return true;
  216. }
  217. protected bool Group()
  218. {
  219. throw new NotImplementedException();
  220. }
  221. protected bool Save()
  222. {
  223. throw new NotImplementedException();
  224. }
  225. protected bool Delete()
  226. {
  227. return ChangeMscState(ActionType.Delete);
  228. }
  229. protected bool Resume()
  230. {
  231. return ChangeMscState(ActionType.Resume);
  232. }
  233. protected bool SubMitAudit()
  234. {
  235. return ChangeMscState(ActionType.SubMitAudit);
  236. }
  237. protected bool Audit()
  238. {
  239. return ChangeMscState(ActionType.Audit);
  240. }
  241. private bool SubMitModify()
  242. {
  243. return ChangeMscState(ActionType.SubMitModify);
  244. }
  245. private bool SubMitAuditNk()
  246. {
  247. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  248. new string[] { "CHK" }, new string[] { "True" });
  249. string msc = ultRows[0].GetValue("MSC");
  250. ArrayList list = new ArrayList();
  251. list.AddRange("B", "NoValue", "", "NoValue", msc);
  252. return ChangeMscNkState(list);
  253. }
  254. public bool AuditNk()
  255. {
  256. try
  257. {
  258. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  259. _controlMsc.GridMsc.UpdateData();
  260. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  261. new string[] { "CHK" }, new string[] { "True" });
  262. ArrayList list = new ArrayList();
  263. if (ultRows.Length > 0)
  264. {
  265. UltraGridRow ultRow = ultRows[0];
  266. string currentValidFlag = ultRow.GetValue("VALIDFLAG_NK");
  267. string msc = ultRow.GetValue("MSC");
  268. if (currentValidFlag != "B" && currentValidFlag != "E")
  269. {
  270. MessageUtil.ShowWarning("只能审核处于审核状态或者申请修改状态的冶金规范码!");
  271. return false;
  272. }
  273. PopupAudit popupAudit = new PopupAudit(ultRow.GetValue("REMARK_NK"));
  274. DialogResult result = popupAudit.ShowDialog();
  275. if (result == DialogResult.OK)
  276. {
  277. string validFlag = "A";
  278. if (popupAudit.CmbAuditType.Text == "审核通过")
  279. {
  280. if (currentValidFlag == "B")
  281. {
  282. validFlag = "C";
  283. }
  284. else
  285. {
  286. validFlag = "A";
  287. }
  288. }
  289. else
  290. {
  291. if (currentValidFlag == "B")
  292. {
  293. validFlag = "A";
  294. }
  295. else
  296. {
  297. validFlag = "C";
  298. }
  299. }
  300. list.Add(validFlag);
  301. list.Add(frm.UserInfo.GetUserName());
  302. list.Add("1");
  303. list.Add(popupAudit.TxtMemo.Text.Trim());
  304. list.Add(msc);
  305. }
  306. else
  307. {
  308. return false;
  309. }
  310. }
  311. else
  312. {
  313. MessageUtil.ShowWarning("请选择一条记录后再进行操作!");
  314. }
  315. ChangeMscNkState(list);
  316. }
  317. catch { return false; }
  318. //MessageUtil.ShowTips("审核成功!");
  319. return true;
  320. }
  321. private bool SubMitModifyNk()
  322. {
  323. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  324. new string[] { "CHK" }, new string[] { "True" });
  325. string msc = ultRows[0].GetValue("MSC");
  326. ArrayList list = new ArrayList();
  327. list.AddRange("E", "NoValue", "", "NoValue", msc);
  328. return ChangeMscNkState(list);
  329. }
  330. protected override bool CheckData(ActionType actionType, out ArrayList parm, out string msg)
  331. {
  332. parm = new ArrayList();
  333. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  334. bool checkResult = CheckMscData(actionType, out msg);
  335. if (checkResult == false) return false;
  336. return true;
  337. }
  338. protected ArrayList[] GetParms(ActionType actionType)
  339. {
  340. return new ArrayList[1];
  341. }
  342. protected override bool IsSelectData(ActionType actionType, out string msg)
  343. {
  344. msg = "";
  345. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  346. _controlMsc.GridMsc.UpdateData();
  347. UltraGridRow[] rows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  348. new string[] { "CHK" }, new string[] { "True" });
  349. if (actionType == ActionType.Add || actionType == ActionType.SubMitAudit
  350. || actionType == ActionType.Audit || actionType == ActionType.SubMitModify
  351. || actionType == ActionType.SubMitAudit2 || actionType == ActionType.SubMitModify2)
  352. {
  353. if (rows.Length == 0)
  354. {
  355. msg = "请勾选一条冶金规范后,再进行操作!";
  356. return false;
  357. }
  358. }
  359. else if (actionType == ActionType.Modify || actionType == ActionType.Delete || actionType == ActionType.Resume)
  360. {
  361. if (rows.Length == 0)
  362. {
  363. return false;
  364. }
  365. }
  366. return true;
  367. }
  368. private bool ChangeMscState(ActionType actionType)
  369. {
  370. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  371. _controlMsc.GridMsc.UpdateData();
  372. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  373. new string[] { "CHK" }, new string[] { "True" });
  374. string validFlag = "";
  375. string strActionType = Enum.GetName(typeof(ActionType), actionType);
  376. switch (actionType)
  377. {
  378. case ActionType.Delete:
  379. validFlag = "D";
  380. break;
  381. case ActionType.Resume:
  382. validFlag = "A";
  383. break;
  384. case ActionType.SubMitAudit:
  385. validFlag = "B";
  386. break;
  387. case ActionType.Audit:
  388. validFlag = "C";
  389. break;
  390. case ActionType.SubMitModify:
  391. validFlag = "E";
  392. break;
  393. }
  394. ArrayList list = new ArrayList();
  395. ArrayList list3 = new ArrayList();
  396. if (ultRows.Length > 0)
  397. {
  398. UltraGridRow ultRow = ultRows[0];
  399. list.Add(validFlag);
  400. list.Add(ultRow.Cells["MSC"].Value.ToString());
  401. list.Add(frm.UserInfo.GetUserName());
  402. list.Add(strActionType);
  403. }
  404. try
  405. {
  406. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.deleteOrResumeMsc",
  407. new object[] { list, list3 }, frm.ob);
  408. }
  409. catch
  410. {
  411. return false;
  412. }
  413. return true;
  414. }
  415. public bool Audit2()
  416. {
  417. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  418. _controlMsc.GridMsc.UpdateData();
  419. UltraGridRow[] ultRows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc,
  420. new string[] { "CHK" }, new string[] { "True" });
  421. ArrayList list = new ArrayList();
  422. ArrayList list3 = new ArrayList();
  423. if (ultRows.Length > 0)
  424. {
  425. UltraGridRow ultRow = ultRows[0];
  426. string currentValidFlag = ultRow.GetValue("VALIDFLAG");
  427. if (currentValidFlag != "B" && currentValidFlag != "E")
  428. {
  429. MessageUtil.ShowWarning("只能审核处于审核状态或者申请修改状态的冶金规范码!");
  430. return false;
  431. }
  432. PopupAudit popupAudit = new PopupAudit(ultRow.GetValue("REMARK"));
  433. DialogResult result = popupAudit.ShowDialog();
  434. if (result == DialogResult.OK)
  435. {
  436. string msc = ultRow.GetValue("MSC");
  437. string validFlag = "A";
  438. if (popupAudit.CmbAuditType.Text == "审核通过")
  439. {
  440. if (currentValidFlag == "B")
  441. {
  442. validFlag = "C";
  443. }
  444. else
  445. {
  446. validFlag = "A";
  447. }
  448. }
  449. else
  450. {
  451. if (currentValidFlag == "B")
  452. {
  453. validFlag = "A";
  454. }
  455. else
  456. {
  457. validFlag = "C";
  458. }
  459. }
  460. list.Add(validFlag);
  461. list.Add(msc);
  462. list.Add(frm.UserInfo.GetUserName());
  463. list.Add("Audit");
  464. list3.Add(popupAudit.TxtMemo.Text.Trim());
  465. list3.Add(msc);
  466. }
  467. else
  468. {
  469. return false;
  470. }
  471. }
  472. else
  473. {
  474. MessageUtil.ShowWarning("请选择一条记录后再进行操作!");
  475. }
  476. try
  477. {
  478. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.deleteOrResumeMsc",
  479. new object[] { list, list3 }, frm.ob);
  480. }
  481. catch
  482. {
  483. return false;
  484. }
  485. //MessageUtil.ShowTips("审核成功!");
  486. return true;
  487. }
  488. private bool ChangeMscNkState(ArrayList list)
  489. {
  490. try
  491. {
  492. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.updateMscNkFlg",
  493. new object[] { list }, _controlMsc.FrmProPscMsc2.ob);
  494. }
  495. catch { return false; }
  496. return true;
  497. }
  498. private bool CheckMscData(ActionType actionType, out string msg)
  499. {
  500. msg = "";
  501. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  502. UltraGridRow[] rows = GridHelper.GetRowsWithKey(_controlMsc.GridMsc, new string[] { "CHK" }, new string[] { "True" });
  503. if (rows.Length == 0)
  504. {
  505. return true;
  506. }
  507. string msc = rows[0].GetValue("MSC");
  508. string psc = frm.ultraGrid1.GetActiveRowValue("PSC");
  509. string alpha = rows[0].GetValue("USE_CODE");
  510. string alphaDesc = rows[0].GetValue("USE_DESC");
  511. string oldAlpha = rows[0].GetValue("OLD_USE_CODE");
  512. string allowNk = rows[0].GetValue("ALLOW_NK");
  513. if (actionType == ActionType.Add && msc != "")
  514. {
  515. msg = "系统已存在该冶金规范码[" + msc + "],请确认后再进行操作!";
  516. //MessageUtil.ShowWarning();
  517. rows[0].Cells["MSC"].Activate();
  518. return false;
  519. }
  520. if (actionType == ActionType.Modify && msc == "")
  521. {
  522. //MessageUtil.ShowWarning("系统不存在该记录,请确认后再进行操作!");
  523. msg = "系统不存在该记录,请确认后再进行操作!";
  524. rows[0].Activate();
  525. return false;
  526. }
  527. //管理员和制造部标准科的人有所有权限,技术中心科技协调部的人员有指派技术中心对应的科室的权限。 其他都
  528. //只能操作自己科室的数据。
  529. if (actionType == ActionType.Modify && rows[0].GetValue("UNIT_CODE") != CoreUserInfo.UserInfo.GetDeptid()
  530. && CoreUserInfo.UserInfo.GetDeptid() != "002001001004" && CoreUserInfo.UserInfo.GetUserID() != "admin"
  531. && CoreUserInfo.UserInfo.GetUserID() != "99999999")
  532. {
  533. //if (rows[0].GetValue("DEPARTMENT_CODE") != "002001007" || CoreUserInfo.UserInfo.GetDeptid() != "002001007006")
  534. //{
  535. // msg = "该冶金规范是[" + rows[0].GetText("UNIT_CODE") + "]科室维护的,您没有权限!";
  536. // rows[0].Activate();
  537. // return false;
  538. //}
  539. }
  540. //DataRow mscRow = GetComMscByPk(msc);
  541. //if (mscRow != null)
  542. //{
  543. // if (allowNk != mscRow["ALLOW_NK"].ToString() && CoreUserInfo.UserInfo.GetUserID() != "admin" && CoreUserInfo.UserInfo.GetUserID() != "99999999")
  544. // {
  545. // msg = "您没有修改是否内控的权限!";
  546. // rows[0].Cells["ALLOW_NK"].Activate();
  547. // return false;
  548. // }
  549. //}
  550. //if (actionType == ActionType.Modify && rows[0].Cells["OLD_USE_CODE"].Value.ToString() == ""
  551. // && alpha != "")
  552. //{
  553. // //MessageUtil.ShowWarning("标准冶金规范不能修改为Alpha冶金规范!");
  554. // msg = "标准冶金规范不能修改为Alpha冶金规范!";
  555. // rows[0].Activate();
  556. // return false;
  557. //}
  558. if ((actionType == ActionType.Add || actionType == ActionType.Modify)
  559. && oldAlpha != alpha && isExistAlpha(frm, psc, alpha))
  560. {
  561. msg = "该产品规范中已包含用途码[" + alphaDesc + "]!";
  562. rows[0].SetCellActive("USE_DESC");
  563. return false;
  564. }
  565. if (actionType == ActionType.Delete && msc == "")
  566. {
  567. //MessageUtil.ShowWarning("系统不存在该记录,请确认后再进行操作!");
  568. msg = "系统不存在该记录,请确认后再进行操作!";
  569. rows[0].Activate();
  570. return false;
  571. }
  572. if (actionType == ActionType.Resume && msc == "")
  573. {
  574. //MessageUtil.ShowWarning("系统不存在该记录,请确认后再进行操作!");
  575. msg = "系统不存在该记录,请确认后再进行操作!";
  576. rows[0].Activate();
  577. return false;
  578. }
  579. if (rows[0].Cells["MSC_STYLE"].Value.ToString() == "")
  580. {
  581. //MessageUtil.ShowWarning("规范类型不能为空!");
  582. msg = "规范类型不能为空!";
  583. rows[0].Cells["MSC_STYLE"].Activate();
  584. return false;
  585. }
  586. if (rows[0].GetValue("USER_COUNT").ToString() != "-1"
  587. && rows[0].GetValue("USER_COUNT").ToString() != "0"
  588. && rows[0].GetValue("USER_COUNT").ToString() != "1")
  589. {
  590. msg = "冶金规范使用次数只能是-1、0、1这三种情况!";
  591. rows[0].Cells["USER_COUNT"].Activate();
  592. return false;
  593. }
  594. if (alpha == ""
  595. && rows[0].Cells["MSC_SEQ"].Value.ToString() != "")
  596. {
  597. //MessageUtil.ShowWarning("不带Alpha项的冶金规范,不能引用标准冶金规范!");
  598. msg = "请选择一条用途码!";
  599. rows[0].Cells["USE_DESC"].Activate();
  600. return false;
  601. }
  602. if (actionType == ActionType.Add)
  603. {
  604. int stdMscCount = _controlMsc.GridMsc.Rows.AsQueryable().Where("MSC = '" + psc.PadRight(13, '0').Replace('P', 'M') + "'").Count();
  605. if (stdMscCount != 0 && rows[0].Cells["MSC_SEQ"].Value.ToString() == "")
  606. {
  607. //MessageUtil.ShowWarning("没有有效状态的标准冶金规范可以引用,维护带Alpha项冶金规范失败!");
  608. msg = "没有有效状态的标准冶金规范可以引用,维护冶金规范失败!";
  609. rows[0].Cells["MSC_SEQ"].Activate();
  610. return false;
  611. }
  612. }
  613. if (actionType == (ActionType.Add | ActionType.Modify))
  614. {
  615. if (rows[0].GetValue("DEPARTMENT_CODE") == "")
  616. {
  617. MessageUtil.ShowWarning("请选择管理部门!");
  618. rows[0].SetCellActive("DEPARTMENT_CODE");
  619. return false;
  620. }
  621. else if (rows[0].GetValue("UNIT_CODE") == "")
  622. {
  623. MessageUtil.ShowWarning("请选择交付标准管理科室!");
  624. rows[0].SetCellActive("UNIT_CODE");
  625. return false;
  626. }
  627. else if (rows[0].GetValue("UNIT_CODE_PROCESS") == "")
  628. {
  629. MessageUtil.ShowWarning("请选择工艺标准管理科室!");
  630. rows[0].SetCellActive("UNIT_CODE_PROCESS");
  631. return false;
  632. }
  633. }
  634. if (rows[0].Cells["USE_CODE"].Value.ToString() == "")
  635. {
  636. int count = 0;
  637. foreach (UltraGridRow row in _controlMsc.GridMsc.Rows)
  638. {
  639. if (row.Cells["MSC"].Value.ToString() == rows[0].Cells["MSC"].Value.ToString()) continue;
  640. if (row.Cells["MSC"].Value.ToString() != "" && row.Cells["OLD_USE_CODE"].Value.ToString() == "")
  641. {
  642. count++;
  643. }
  644. }
  645. if (count > 0)
  646. {
  647. //MessageUtil.ShowWarning("产品规范下只能维护一条标准冶金规范!");
  648. msg = "产品规范下只能维护一条标准冶金规范!";
  649. rows[0].Activate();
  650. return false;
  651. }
  652. }
  653. if (actionType == ActionType.Resume)
  654. {
  655. if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "B")
  656. {
  657. //MessageUtil.ShowWarning("审核状态下的记录不能进行恢复操作!");
  658. msg = "审核状态下的记录不能进行恢复操作!";
  659. rows[0].Activate();
  660. return false;
  661. }
  662. else if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "C")
  663. {
  664. //MessageUtil.ShowWarning("已生效的记录不能进行恢复操作!");
  665. msg = "已生效的记录不能进行恢复操作!";
  666. rows[0].Activate();
  667. return false;
  668. }
  669. }
  670. if (actionType == ActionType.SubMitAudit)
  671. {
  672. if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "D")
  673. {
  674. //MessageUtil.ShowWarning("请先恢复后再进行操作!");
  675. msg = "请先恢复后再进行操作!";
  676. rows[0].Activate();
  677. return false;
  678. }
  679. else if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "C")
  680. {
  681. //MessageUtil.ShowWarning("已生效的记录不能进行提交审核操作!");
  682. msg = "已生效的记录不能进行提交审核操作!";
  683. rows[0].Activate();
  684. return false;
  685. }
  686. else if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "E")
  687. {
  688. msg = "申请修改的记录不能进行提交审核操作!";
  689. rows[0].Activate();
  690. return false;
  691. }
  692. }
  693. if (actionType == ActionType.SubMitModify)
  694. {
  695. if (rows[0].GetValue("VALIDFLAG") != "C")
  696. {
  697. msg = "只能申请修改已生效的数据!";
  698. rows[0].Activate();
  699. return false;
  700. }
  701. }
  702. if (actionType == ActionType.Audit)
  703. {
  704. if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "A")
  705. {
  706. //MessageUtil.ShowWarning("请先提交审核后再进行审核操作!");
  707. msg = "请先提交审核后再进行审核操作!";
  708. rows[0].Activate();
  709. return false;
  710. }
  711. else if (rows[0].Cells["VALIDFLAG"].Value.ToString() == "D")
  712. {
  713. //MessageUtil.ShowWarning("请先恢复后再进行操作!");
  714. msg = "请先恢复后再进行操作!";
  715. rows[0].Activate();
  716. return false;
  717. }
  718. }
  719. if (actionType == ActionType.SubMitModify2)
  720. {
  721. if (rows[0].GetValue("VALIDFLAG_NK") != "C")
  722. {
  723. msg = "只能申请修改已生效的数据!";
  724. rows[0].Activate();
  725. return false;
  726. }
  727. }
  728. if (actionType == ActionType.SubMitAudit2)
  729. {
  730. if (rows[0].GetValue("VALIDFLAG_NK") != "A")
  731. {
  732. msg = "只能提交审核录入状态的数据!";
  733. rows[0].Activate();
  734. return false;
  735. }
  736. }
  737. //if (actionType == ActionType.Delete)
  738. //{
  739. // //string isDeleteMscMsg = IsDeleteMsc(msc);
  740. // //if (isDeleteMscMsg != "")
  741. // //{
  742. // // msg = isDeleteMscMsg;
  743. // // rows[0].Activate();
  744. // // return false;
  745. // //}
  746. //}
  747. string departmentCode = ClsBaseInfo.GetDepartIdBySectionId(
  748. CoreFS.SA06.CoreUserInfo.UserInfo.GetDeptid(), frm.ob);
  749. if (departmentCode == "002001007" && rows[0].Cells["DEPARTMENT_CODE"].Value.ToString() != "002001007")
  750. {
  751. msg = "技术中心所属人员,不能修改管理部门!";
  752. rows[0].SetCellActive("DEPARTMENT_CODE");
  753. return false;
  754. }
  755. string mscStyle = rows[0].GetValue("MSC_STYLE");
  756. if (actionType == ActionType.SubMitAudit && IsCompleteMsc(msc, mscStyle, out msg) == false)
  757. {
  758. return false;
  759. }
  760. return true;
  761. }
  762. private void QueryMscRJg()
  763. {
  764. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  765. string psc = frm.ultraGrid1.ActiveRow.Cells["PSC"].Value.ToString();
  766. ArrayList list = new ArrayList();
  767. list.Add(_controlMsc.Msc);
  768. list.Add(psc);
  769. list.Add(_controlMsc.FrmProPscMsc2.ckbDeleteFilter.Checked ? "A" : "D");
  770. list.Add(frm.txtMsc.Text.Trim());
  771. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryJG", new object[] { list }, frm.ob);
  772. GridHelper.CopyDataToDatatable(dt, _controlMsc.DataTableMscRJg, true);
  773. GridHelper.RefreshAndAutoSize(_controlMsc.GridMsc);
  774. }
  775. private static string GetMaxMscCode(string psc, string useCode, string mscSeq, OpeBase ob)
  776. {
  777. ArrayList list = new ArrayList();
  778. DataTable dt = null;
  779. list.Add(psc);
  780. list.Add(psc);
  781. list.Add(psc);
  782. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMaxMscCode",
  783. new object[] { list }, ob);
  784. //if (useCode == "")
  785. //{
  786. // list.Add(psc);
  787. // list.Add(psc);
  788. // list.Add(psc);
  789. // dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMaxMscCode",
  790. // new object[] { list }, ob);
  791. //}
  792. //else
  793. //{
  794. // list.Add(mscSeq);
  795. // list.Add(mscSeq);
  796. // list.Add(mscSeq);
  797. // dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMscAlphaCode",
  798. // new object[] { list }, ob);
  799. //}
  800. if (dt == null)
  801. {
  802. return "";
  803. }
  804. else
  805. {
  806. return dt.Rows[0][0].ToString();
  807. }
  808. }
  809. private bool IsCompleteMsc(string msc, string mscStyle, out string msg)
  810. {
  811. // 4 12
  812. msg = "";
  813. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  814. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isCompleteMsc",
  815. new object[] { msc }, frm.ob);
  816. DataTable dt2 = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isCompleteMsc2",
  817. new object[] { msc }, frm.ob);
  818. DataRow[] drs = dt.Select("CNT = '0'");
  819. DataRow[] drs2 = dt2.Select("CNT = '0'");
  820. if (mscStyle == "A" || mscStyle == "B")
  821. {
  822. if (drs.Length > 0)
  823. {
  824. msg = "冶金规范不完整,请维护" + drs[0]["TYPE"].ToString();
  825. return false;
  826. }
  827. else if (drs2.Length > 0)
  828. {
  829. msg = "冶金规范不完整,请维护" + drs2[0]["TYPE"].ToString();
  830. return false;
  831. }
  832. }
  833. else
  834. {
  835. if (drs.Length > 0)
  836. {
  837. if (mscStyle != "D" || drs[0]["TYPE"].ToString() != "钢种")
  838. {
  839. msg = "冶金规范不完整,请维护" + drs[0]["TYPE"].ToString();
  840. return false;
  841. }
  842. }
  843. }
  844. return true;
  845. }
  846. private bool isExistAlpha(FrmProPSCMSC2 frm, string psc, string alpha)
  847. {
  848. ArrayList list = new ArrayList();
  849. list.AddRange(psc, alpha);
  850. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isExistAlpha",
  851. new object[] { list }, frm.ob);
  852. if (dt.Rows[0][0].ToString() == "0")
  853. {
  854. return false;
  855. }
  856. return true;
  857. }
  858. private string IsDeleteMsc(string msc)
  859. {
  860. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  861. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isDeleteMsc",
  862. new object[] { msc }, frm.ob);
  863. foreach (DataRow dr in dt.Rows)
  864. {
  865. if (dr["CNT"].ToString() != "0")
  866. {
  867. return "请先作废冶金规范下面的" + dr["NAME"].ToString() + "后再进行操作!";
  868. }
  869. }
  870. return "";
  871. }
  872. public string GetProductName()
  873. {
  874. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  875. string productCode = frm.ultraGrid1.GetActiveRowValue("PRODUCCODE");
  876. ArrayList list = new ArrayList();
  877. list.Add(productCode);
  878. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryProductType",
  879. new object[] { list }, frm.ob);
  880. if (dt.Rows.Count == 0)
  881. {
  882. MessageUtil.ShowWarning("未找到产品码中的品名,带出规范类型失败!");
  883. return null;
  884. }
  885. else
  886. {
  887. return dt.Rows[0]["PRODUC_TYPE"].ToString();
  888. }
  889. }
  890. public void SaveImgPath(string path)
  891. {
  892. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  893. string msc = _controlMsc.ultraGrid2.GetActiveRowValue("MSC");
  894. ArrayList list = new ArrayList();
  895. list.AddRange(path, msc);
  896. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.saveMscImg", new object[] { list }, frm.ob);
  897. }
  898. public string QueryImgPath(string msc)
  899. {
  900. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  901. ArrayList list = new ArrayList();
  902. list.Add(msc);
  903. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMscImg",
  904. new object[] { list }, frm.ob);
  905. return dt.Rows[0][0].ToString();
  906. }
  907. public string[] QueryUnitCodeByPsc(string psc)
  908. {
  909. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  910. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryUnitCodeByPsc",
  911. new object[] { psc }, frm.ob);
  912. string[] strs = new string[] { "", "" };
  913. if (dt.Rows.Count > 0)
  914. {
  915. strs[0] = dt.Rows[0]["UNIT_CODE"].ToString();
  916. strs[1] = dt.Rows[0]["DEPARTMENT_CODE"].ToString();
  917. }
  918. return strs;
  919. }
  920. public bool IsExistStdMsc(string psc)
  921. {
  922. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  923. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryIsExistStdMsc",
  924. new object[] { psc }, frm.ob);
  925. if (dt.Rows[0][0].ToString() != "0")
  926. {
  927. return true;
  928. }
  929. return false;
  930. }
  931. public string GetStdStyle(string psc)
  932. {
  933. FrmProPSCMSC2 frm = _controlMsc.FrmProPscMsc2;
  934. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getStdStyle",
  935. new object[] { psc }, frm.ob);
  936. if (dt.Rows.Count > 0)
  937. {
  938. return dt.Rows[0][0].ToString();
  939. }
  940. else
  941. {
  942. return "G";
  943. }
  944. }
  945. public DataRow GetComMsc0(string psc)
  946. {
  947. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMsc0",
  948. new object[] { psc }, _controlMsc.FrmProPscMsc2.ob);
  949. if (dt.Rows.Count > 0)
  950. {
  951. return dt.Rows[0];
  952. }
  953. else
  954. {
  955. return null;
  956. }
  957. }
  958. public DataRow GetComMscByPk(string msc)
  959. {
  960. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByPk",
  961. new object[] { msc }, _controlMsc.FrmProPscMsc2.ob);
  962. if (dt.Rows.Count > 0)
  963. {
  964. return dt.Rows[0];
  965. }
  966. else
  967. {
  968. return null;
  969. }
  970. }
  971. /// <summary>
  972. /// 删除制程向下钢种
  973. /// </summary>
  974. /// <param name="msc"></param>
  975. /// <param name="mscPline"></param>
  976. /// <param name="grade"></param>
  977. public static void DeletePlineGrade(string msc, string mscPline, string grade, OpeBase ob)
  978. {
  979. ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.deletePlineGrade",
  980. new object[] { msc, mscPline, grade }, ob);
  981. }
  982. }
  983. }