FrmQADefect.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Server;
  11. using Core.Mes.Client.Comm.Control;
  12. using Infragistics.Win.UltraWinGrid;
  13. using Infragistics.Win;
  14. using com.steering.mes.zgmil.entity;
  15. using System.Collections;
  16. using Core.Mes.Client.Comm.Tool;
  17. using Core.Mes.Client.Comm.Format;
  18. using Core.StlMes.Client.ZGMil.Common;
  19. namespace Core.StlMes.Client.ZGMil.Popup
  20. {
  21. public partial class FrmQADefect : FrmBase
  22. {
  23. OpeBase _ob = null;
  24. private string _JudgeStoveNo = "";
  25. private string _proPlanId = "";//轧管订单编号
  26. private string _gxPlanNo = "";//工序排产序号
  27. private string _ResultNo = "";
  28. private string _LotNo = "";
  29. private int _OffLineFlag = 0; //下线 反线标识
  30. int _QAFlag = 0;
  31. private string ColUser = "";
  32. private string ColGroup = "";
  33. private string ColShift = "";
  34. private int _MatNum = 0;
  35. private double _Diameter = 0; //外径
  36. private double _Thickness = 0; //壁厚
  37. private double _Length = 0; //长度
  38. private double _HeightRate = 1; //重量系数
  39. private int _OffLineNum = 0; //下线支
  40. private int _WasteNum = 0; //废品支
  41. private double _DBHeight = 0; //单支管重量 = (外径 - 壁厚)* 壁厚 * 0.02466 * 长度 * 重量系数
  42. private string _plineCode = ""; //产线
  43. private string backPlanflag = "";//是否为正常计划
  44. public string _ScrapNum //废品支数 用于传值到参数设定界面
  45. {
  46. get { return umeScrapNum.Value.ToString(); }
  47. }
  48. public string _OffLineNumF //下线品支数 用于传值到参数设定界面
  49. {
  50. get { return umeOffLineNum.Value.ToString(); }
  51. }
  52. public string _ZLXS //重量系数 用于传值到参数设定界面
  53. {
  54. get { return this.uneZL.Value.ToString(); }
  55. }
  56. public FrmQADefect(string JudgeStoveNo, string ResultNo, string proPlanId, string gxPlanNo, string LotNo, int MatNum, double Diameter, double Thickness, double Length, int QaFlag, int OffLineFlag, string plineCode, string backFlag, OpeBase ob)
  57. {
  58. _JudgeStoveNo = JudgeStoveNo;
  59. _ResultNo = ResultNo;
  60. _proPlanId = proPlanId;
  61. _gxPlanNo = gxPlanNo;
  62. _LotNo = LotNo;
  63. _ob = ob;
  64. _Diameter = Diameter;
  65. _Thickness = Thickness;
  66. _Length = Length;
  67. _MatNum = MatNum;
  68. _QAFlag = QaFlag;
  69. _OffLineFlag = OffLineFlag;
  70. _plineCode = plineCode;
  71. backPlanflag = backFlag;
  72. InitializeComponent();
  73. InitCol();
  74. }
  75. /// <summary>
  76. /// 初始化
  77. /// </summary>
  78. private void InitCol()
  79. {
  80. ultraGrid2.ClickCellButton += new CellEventHandler(ultraGrid2_ClickCellButton); //添加缺陷项
  81. //ultraGrid1.ClickCellButton += new CellEventHandler(ultraGrid1_ClickCellButton); //删除缺陷项
  82. dtItem.Clear();
  83. cmbItemLevel.Items.Add("", " ");
  84. cmbItemLevel.Items.Add(0, "常用");
  85. cmbItemLevel.Items.Add(1, "不常用");
  86. txtItemCode.Text = "";
  87. txtItemName.Text = "";
  88. GetResult(); //查询已抽检过的废品支 下线支 重量系数
  89. GetDefectItem(); //查询已登记的缺陷项
  90. txtHeatNo.Text = BaseMethod.getJudgeStoveNo(_JudgeStoveNo);
  91. txtLotNo.Text = _LotNo;
  92. ColUser = UserInfo.GetUserName();
  93. ColGroup = UserInfo.GetUserGroup();
  94. ColShift = UserInfo.GetUserOrder();
  95. uneZL.Value = _HeightRate;
  96. _DBHeight = (_Diameter - _Thickness) * _Thickness * 0.02466 * _Length * double.Parse(uneZL.Value.ToString());
  97. umeScrapTon.Value = _DBHeight * int.Parse(umeScrapNum.Value.ToString());
  98. GetDefectAll();
  99. }
  100. /// <summary>
  101. /// 查询实绩参数 如果是质检过的 带来质检数据 重量系数 下线支 废品支
  102. /// </summary>
  103. private void GetResult()
  104. {
  105. //查询该炉重量系数 下线支 废品支
  106. DataTable dtZLXS = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.GetQAResult", new object[] { _JudgeStoveNo, _ResultNo, _proPlanId, _gxPlanNo }, this._ob);
  107. if (dtZLXS.Rows.Count > 0)
  108. {
  109. //重量系数
  110. if (!string.IsNullOrEmpty(dtZLXS.Rows[0]["HEIGHT_RATE"].ToString()))
  111. {
  112. _HeightRate = double.Parse(dtZLXS.Rows[0]["HEIGHT_RATE"].ToString());
  113. }
  114. //if (_QAFlag == 1)
  115. //{
  116. // //下线支
  117. // if (!string.IsNullOrEmpty(dtZLXS.Rows[0]["OFFLINE_QUANTITY_F"].ToString()))
  118. // {
  119. // _OffLineNum = int.Parse(dtZLXS.Rows[0]["OFFLINE_QUANTITY_F"].ToString());
  120. // }
  121. // //废品支
  122. // if (!string.IsNullOrEmpty(dtZLXS.Rows[0]["WASTE_QUANTITY_F"].ToString()))
  123. // {
  124. // _WasteNum = int.Parse(dtZLXS.Rows[0]["WASTE_QUANTITY_F"].ToString());
  125. // }
  126. //}
  127. //else
  128. //{
  129. // //下线支
  130. // if (!string.IsNullOrEmpty(dtZLXS.Rows[0]["OFFLINE_QUANTITY_S"].ToString()))
  131. // {
  132. // _OffLineNum = int.Parse(dtZLXS.Rows[0]["OFFLINE_QUANTITY_S"].ToString());
  133. // }
  134. // //废品支
  135. // if (!string.IsNullOrEmpty(dtZLXS.Rows[0]["WASTE_QUANTITY_S"].ToString()))
  136. // {
  137. // _WasteNum = int.Parse(dtZLXS.Rows[0]["WASTE_QUANTITY_S"].ToString());
  138. // }
  139. //}
  140. }
  141. umeScrapNum.Value = _WasteNum;
  142. umeOffLineNum.Value = _OffLineNum;
  143. }
  144. /// <summary>
  145. /// chk事件
  146. /// </summary>
  147. /// <param name="sender"></param>
  148. /// <param name="e"></param>
  149. private void chkItemLevel_CheckedChanged(object sender, EventArgs e)
  150. {
  151. if (this.chkItemLevel.Checked)
  152. {
  153. cmbItemLevel.Enabled = true;
  154. }
  155. else
  156. {
  157. cmbItemLevel.Enabled = false;
  158. }
  159. if (chkItemCode.Checked)
  160. {
  161. txtItemCode.Enabled = true;
  162. }
  163. else
  164. {
  165. txtItemCode.Enabled = false;
  166. }
  167. if (chkItemName.Checked)
  168. {
  169. txtItemName.Enabled = true;
  170. }
  171. else
  172. {
  173. txtItemName.Enabled = false;
  174. }
  175. }
  176. /// <summary>
  177. /// 查询当前炉次已有缺陷项
  178. /// </summary>
  179. private void GetDefectItem()
  180. {
  181. string ItemName = "";
  182. string Offline = "";
  183. string WasteBrach = "";
  184. string defectCode = "";
  185. string jugeNo = "";
  186. this.dtDefect.Clear();
  187. int scarpNumTal = 0;
  188. int offlineTal = 0;
  189. double scrapTon = 0.0;
  190. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.checkedDefectItemQuery", new object[] { _JudgeStoveNo, _ResultNo, _QAFlag }, this._ob);
  191. if (dt.Rows.Count > 0)
  192. {
  193. for (int i = 0; i < dt.Rows.Count; i++)
  194. {
  195. ItemName = dt.Rows[i]["DEFECT_ITEM"].ToString();
  196. WasteBrach = dt.Rows[i]["WASTE_BRANCH"].ToString();
  197. Offline = dt.Rows[i]["OFFLINE_PRODUCT"].ToString();
  198. defectCode = dt.Rows[i]["DEFECT_CODE"].ToString();
  199. jugeNo = dt.Rows[i]["JUDGE_STOVE_NO"].ToString();
  200. DataRow dr1 = dtDefect.NewRow();
  201. dr1["DEFECT_ITEM"] = ItemName;
  202. dr1["WASTE_BRANCH"] = WasteBrach;
  203. dr1["OFFLINE_PRODUCT"] = Offline;
  204. dr1["DEFECT_CODE"] = defectCode;
  205. dr1["DELETE_ITEM"] = "移除";
  206. dr1["JUDGE_STOVE_NO"] = jugeNo;
  207. dtDefect.Rows.Add(dr1);
  208. scarpNumTal = scarpNumTal + int.Parse(dt.Rows[i]["TWASTE_BRANCH"].ToString());
  209. offlineTal = offlineTal + int.Parse(dt.Rows[i]["TOFFLINE_PRODUCT"].ToString());
  210. scrapTon = scrapTon + double.Parse(dt.Rows[i]["TWASTE_TONS"].ToString());
  211. }
  212. ultraGrid2.DataBind();
  213. this.umeScrapNum.Value = scarpNumTal;
  214. this.umeScrapTon.Value = scrapTon;
  215. this.umeOffLineNum.Value = offlineTal;
  216. }
  217. else
  218. {
  219. this.umeScrapNum.Value = "0";
  220. this.umeScrapTon.Value = "0.000";
  221. this.umeOffLineNum.Value = "0";
  222. }
  223. }
  224. private void GetDefectAll()
  225. {
  226. string ItemName = "";
  227. string ItemLevel = "";
  228. if (this.chkItemLevel.Checked)
  229. {
  230. ItemLevel = cmbItemLevel.Value.ToString();
  231. }
  232. else
  233. {
  234. ItemLevel = "";
  235. }
  236. //if (chkItemCode.Checked)
  237. //{
  238. // ItemCode = txtItemCode.Text.ToUpper();
  239. //}
  240. //else
  241. //{
  242. // ItemCode = "";
  243. //}
  244. if (chkItemName.Checked)
  245. {
  246. ItemName = txtItemName.Text;
  247. }
  248. else
  249. {
  250. ItemName = "";
  251. }
  252. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.defectItemQuery", new object[] { ItemLevel, ItemName }, this._ob);
  253. GridHelper.CopyDataToDatatable(ref dt, ref dtItem, true);
  254. }
  255. /// <summary>
  256. /// 缺陷项查询条件
  257. /// </summary>
  258. /// <param name="sender"></param>
  259. /// <param name="e"></param>
  260. private void ultraButton2_Click(object sender, EventArgs e)
  261. {
  262. GetDefectAll();
  263. }
  264. /// <summary>
  265. /// 添加缺陷项
  266. /// </summary>
  267. /// <param name="sender"></param>
  268. /// <param name="e"></param>
  269. void ultraGrid2_ClickCellButton(object sender, CellEventArgs e)
  270. {
  271. if (e.Cell.Column.Key == "ADD_ITEM")
  272. {
  273. string ItemCode = e.Cell.Row.Cells["BASECODE"].Value.ToString();
  274. string ItemName = e.Cell.Row.Cells["BASENAME"].Value.ToString();
  275. foreach (DataRow dr in dtDefect.Rows)
  276. {
  277. if (dr["DEFECT_CODE"].ToString() == ItemCode)
  278. {
  279. MessageUtil.ShowWarning("缺陷项【" + ItemName + "】已添加");
  280. return;
  281. }
  282. }
  283. DataRow dr1 = dtDefect.NewRow();
  284. dr1["DEFECT_ITEM"] = ItemName;
  285. dr1["DEFECT_CODE"] = ItemCode;
  286. dr1["DELETE_ITEM"] = "移除";
  287. dtDefect.Rows.Add(dr1);
  288. ultraGrid2.DataBind();
  289. }
  290. // throw new NotImplementedException();
  291. }
  292. private string StrNullTo0(string str)
  293. {
  294. return string.IsNullOrEmpty(str) ? "0" : str;
  295. }
  296. /// <summary>
  297. /// 数据检验
  298. /// </summary>
  299. /// <returns></returns>
  300. private bool DateCheck()
  301. {
  302. bool Check = true;
  303. int DefectScrapNumTotal = 0; //缺陷项总剔除支数
  304. int DefectOffNumTotal = 0; //缺陷项总下线支数
  305. if (_QAFlag == 1)
  306. {
  307. //废品支 下线支数据检验
  308. if (string.IsNullOrEmpty(umeScrapNum.Value.ToString()))
  309. {
  310. MessageBox.Show("废品支不能为空!");
  311. umeScrapNum.Focus();
  312. return Check = false;
  313. }
  314. if (int.Parse(umeScrapNum.Value.ToString()) > _MatNum)
  315. {
  316. MessageBox.Show("废品支不能为大于现有炉次总支数!");
  317. umeScrapNum.Focus();
  318. return Check = false;
  319. }
  320. if (string.IsNullOrEmpty(this.umeOffLineNum.Value.ToString()))
  321. {
  322. MessageBox.Show("下线支不能为空!");
  323. umeOffLineNum.Focus();
  324. return Check = false;
  325. }
  326. if (int.Parse(umeScrapNum.Value.ToString()) > _MatNum)
  327. {
  328. MessageBox.Show("下线支不能为大于现有炉次总支数!");
  329. umeOffLineNum.Focus();
  330. return Check = false;
  331. }
  332. }
  333. else
  334. {
  335. //查询该炉一次抽检下线支
  336. DataTable dtQAOffNum = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.GetQAResult", new object[] { _JudgeStoveNo, _ResultNo, _proPlanId, _gxPlanNo }, this._ob);
  337. int OffNum = int.Parse(dtQAOffNum.Rows[0]["OFFLINE_QUANTITY_F"].ToString());
  338. //废品支 下线支数据检验
  339. if (string.IsNullOrEmpty(umeScrapNum.Value.ToString()))
  340. {
  341. MessageBox.Show("废品支不能为空!");
  342. umeScrapNum.Focus();
  343. return Check = false;
  344. }
  345. if (string.IsNullOrEmpty(this.umeOffLineNum.Value.ToString()))
  346. {
  347. MessageBox.Show("下线支不能为空!");
  348. umeOffLineNum.Focus();
  349. return Check = false;
  350. }
  351. if ((int.Parse(umeScrapNum.Value.ToString()) + int.Parse(umeScrapNum.Value.ToString()) > OffNum))
  352. {
  353. MessageBox.Show("废品支数和下线支数总和不能大于一检下线支数!一检下线支数:" + OffNum + "");
  354. umeOffLineNum.Focus();
  355. return Check = false;
  356. }
  357. }
  358. //缺陷项记录检验
  359. //缺陷项废品支不能大于总废品支,缺陷项下线支不能大于总下线支
  360. //所有缺陷项下线品/废品支之和需要大于下线总支数/废品总支数
  361. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  362. {
  363. if (string.IsNullOrEmpty(ultraGrid1.Rows[i].Cells["WASTE_BRANCH"].Value.ToString()))
  364. {
  365. MessageBox.Show("");
  366. ultraGrid1.Rows[i].Cells["WASTE_BRANCH"].Activated = true;
  367. return Check = false;
  368. }
  369. else
  370. {
  371. if (int.Parse(ultraGrid1.Rows[i].Cells["WASTE_BRANCH"].Value.ToString()) > int.Parse(umeScrapNum.Value.ToString()))
  372. {
  373. MessageBox.Show("缺陷项废品支不能大于总废品支!!!");
  374. ultraGrid1.Rows[i].Cells["WASTE_BRANCH"].Activated = true;
  375. return Check = false;
  376. }
  377. else
  378. {
  379. DefectScrapNumTotal += int.Parse(ultraGrid1.Rows[i].Cells["WASTE_BRANCH"].Value.ToString());
  380. }
  381. }
  382. if (string.IsNullOrEmpty(ultraGrid1.Rows[i].Cells["OFFLINE_PRODUCT"].Value.ToString()))
  383. {
  384. MessageBox.Show("");
  385. ultraGrid1.Rows[i].Cells["OFFLINE_PRODUCT"].Activated = true;
  386. return Check = false;
  387. }
  388. else
  389. {
  390. if (int.Parse(ultraGrid1.Rows[i].Cells["OFFLINE_PRODUCT"].Value.ToString()) > int.Parse(umeOffLineNum.Value.ToString()))
  391. {
  392. MessageBox.Show("缺陷项下线支不能大于总下线支!!!");
  393. ultraGrid1.Rows[i].Cells["OFFLINE_PRODUCT"].Activated = true;
  394. return Check = false;
  395. }
  396. else
  397. {
  398. DefectOffNumTotal += int.Parse(ultraGrid1.Rows[i].Cells["OFFLINE_PRODUCT"].Value.ToString());
  399. }
  400. }
  401. }
  402. if (DefectScrapNumTotal < int.Parse(umeScrapNum.Value.ToString()))
  403. {
  404. MessageBox.Show("缺陷项废品总支数小于管号废品总支数!!");
  405. return Check = false;
  406. }
  407. if (DefectOffNumTotal < int.Parse(umeOffLineNum.Value.ToString()))
  408. {
  409. MessageBox.Show("缺陷项下线总支数小于管号下线总支数!!");
  410. return Check = false;
  411. }
  412. return Check;
  413. }
  414. /// <summary>
  415. /// 确认按钮
  416. /// </summary>
  417. /// <param name="sender"></param>
  418. /// <param name="e"></param>
  419. private void btnOK_Click(object sender, EventArgs e)
  420. {
  421. //if (!DateCheck())
  422. //{
  423. // return;
  424. //}
  425. string strInbound = "800707";//入库类型
  426. string strInMemo = "";
  427. this.ultraGrid1.UpdateData();
  428. int scrapNum = 0;//废品总支
  429. int offLineNum = 0;//下线总支
  430. int xxOfflineNum = 0; //交库点离线的支数
  431. UltraGridRow uRow = this.ultraGrid1.ActiveRow;
  432. if (uRow == null) return;
  433. //IQueryable<UltraGridRow> checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'");
  434. //if (checkMagRows.Count() == 0)
  435. //{
  436. // MessageUtil.ShowTips("请勾选需要保存的缺陷项!");
  437. // return;
  438. //}
  439. foreach (UltraGridRow inputRow in this.ultraGrid1.Rows)
  440. {
  441. if (StrNullTo0(inputRow.Cells["WASTE_BRANCH"].Value.ToString()).Equals("0") && StrNullTo0(inputRow.Cells["OFFLINE_PRODUCT"].Value.ToString()).Equals("0"))
  442. {
  443. MessageUtil.ShowTips("废品支数和下线支数同时为空的缺陷项,不允许登记!");
  444. return;
  445. }
  446. }
  447. DataTable dtMemo = PipeManageClass.getComTypeInfo(strInbound, _ob);
  448. if (dtMemo.Rows.Count >= 1)
  449. {
  450. strInMemo = dtMemo.Rows[0]["MEMO"].ToString();
  451. }
  452. DataTable sd = getStoreNo(_plineCode);
  453. if (sd == null)
  454. {
  455. MessageUtil.ShowTips("无轧管在线库基础信息,请维护!");
  456. return;
  457. }
  458. ArrayList list = new ArrayList();
  459. list.Add(sd.Rows[0]["STORAGE_NO"].ToString());
  460. list.Add(sd.Rows[0]["STORAGE_NO"].ToString() + "10101");
  461. list.Add(sd.Rows[0]["STORAGE_TYPE_NO"].ToString());
  462. list.Add(sd.Rows[0]["STORAGE_TYPE_NAME"].ToString());
  463. list.Add(this.UserInfo.GetDeptid());
  464. list.Add(this.UserInfo.GetDepartment());
  465. list.Add(this.UserInfo.GetDeptid());
  466. list.Add(this.UserInfo.GetDepartment());
  467. list.Add(this.UserInfo.GetUserOrder());
  468. list.Add(this.UserInfo.GetUserGroup());
  469. //list.Add(PipeManageClass.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this._ob));
  470. //list.Add(PipeManageClass.GetDepartBySectionId(this.UserInfo.GetDeptid(), this._ob));
  471. ArrayList ListCehckSize = new ArrayList();
  472. foreach (UltraGridRow row in this.ultraGrid1.Rows)
  473. {
  474. MilCheckDeatilEntity CheckDetailSave = new MilCheckDeatilEntity();
  475. CheckDetailSave.JudgeStoveNo = _JudgeStoveNo;
  476. CheckDetailSave.ResultNo = _ResultNo;
  477. CheckDetailSave.DefectCode = row.Cells["DEFECT_CODE"].Value.ToString();
  478. CheckDetailSave.DefectItem = row.Cells["DEFECT_ITEM"].Value.ToString();
  479. CheckDetailSave.WasteBranch = StrNullTo0(row.Cells["WASTE_BRANCH"].Value.ToString());
  480. CheckDetailSave.OfflineProduct = StrNullTo0(row.Cells["OFFLINE_PRODUCT"].Value.ToString());
  481. //CheckDetailSave.Flag = _QAFlag;
  482. string ss = JSONFormat.Format(CheckDetailSave);
  483. ListCehckSize.Add(ss);
  484. scrapNum = scrapNum + int.Parse(StrNullTo0(row.Cells["WASTE_BRANCH"].Value.ToString()));
  485. offLineNum = offLineNum + int.Parse(StrNullTo0(row.Cells["OFFLINE_PRODUCT"].Value.ToString()));
  486. }
  487. DataTable ds = new DataTable();
  488. DataTable dt = new DataTable();
  489. //if (backPlanflag == "0"||backPlanflag == "8")
  490. //{
  491. // ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.doQueryTestResult", new object[] { _ResultNo, _plineCode }, _ob);
  492. //}
  493. //else if (backPlanflag == "9")
  494. //{
  495. // ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.doQueryPlanBratch", new object[] { _ResultNo, _plineCode }, _ob);
  496. //}
  497. ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.doQueryPort", new object[] { _ResultNo, _plineCode }, _ob);
  498. if (scrapNum + offLineNum >int.Parse(ds.Rows[0]["QUALIFIED_NUM"].ToString3()))
  499. {
  500. MessageUtil.ShowTips("质检缺陷项登记的总支数不能大于现有合格状态并且未交库的支数!");
  501. return;
  502. }
  503. dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmOffLine.doQueryXxOfflinNum", new object[] { _JudgeStoveNo, _plineCode, _proPlanId, _gxPlanNo }, _ob);
  504. if (dt.Rows.Count > 0)
  505. {
  506. xxOfflineNum = int.Parse(dt.Rows[0]["OFFLINE_NUM"].ToString3());
  507. if (scrapNum + offLineNum + xxOfflineNum > int.Parse(ds.Rows[0]["QUALIFIED_NUM"].ToString3()))
  508. {
  509. MessageBox.Show("交库点已交库和离线了" + xxOfflineNum + "支,请确认数据再做离线!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  510. return;
  511. }
  512. }
  513. CoreClientParam ccp = new CoreClientParam();
  514. ccp.ServerName = "com.steering.mes.zgmil.coup.SurfaceInspectionResult";
  515. ccp.MethodName = "doInsetDefectData";
  516. ccp.ServerParams = new object[] { ListCehckSize, scrapNum.ToString(), offLineNum.ToString(), this.UserInfo.GetUserName(), this.UserInfo.GetUserGroup(), this.UserInfo.GetUserOrder(), list, strInbound, strInMemo, _plineCode, _proPlanId, _gxPlanNo };
  517. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  518. if (ccp.ReturnCode != -1)
  519. {
  520. if (ccp.ReturnInfo.Equals("缺陷项登记成功!"))
  521. {
  522. GetDefectItem();
  523. MessageUtil.ShowTips(ccp.ReturnInfo);
  524. }
  525. else
  526. {
  527. MessageUtil.ShowTips(ccp.ReturnInfo);
  528. }
  529. }
  530. ////插入炉次对应缺陷项下线支、废品支
  531. //int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.insertDefectData", new object[] { ListCehckSize, _JudgeStoveNo, _ResultNo, _QAFlag }, this._ob);
  532. //Random Ran = new Random();
  533. //int ScrapRanSeq = _MatNum - int.Parse(_OffLineNumF) - int.Parse(_ScrapNum) + 1;
  534. ////int ScrapRanSeq = Ran.Next(1, _MatNum - int.Parse(umeScrapNum.Value.ToString()) - int.Parse(umeOffLineNum.Value.ToString())); //废品随机起始支 下线品起始支=废品起始支+废品总支数
  535. ////1-删除缺陷管号 2-修改管号状态 最终下线-正常、剔除-正常 3-删除管号剔除表记录
  536. //int count3 = ServerHelper.SetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.deleteDefectMat", new object[] { _JudgeStoveNo, _ResultNo, _QAFlag }, this._ob);
  537. ////1-插入缺陷管号 2-修改管号一次下线状态 正常-一次下线、正常-剔除 3-新增管号剔除表记录
  538. //int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.insertDefectMat", new object[] { _JudgeStoveNo, _ResultNo, ScrapRanSeq, int.Parse(umeScrapNum.Value.ToString()), int.Parse(umeOffLineNum.Value.ToString()), ColUser, ColShift, ColGroup, _QAFlag }, this._ob);
  539. ////管号插入缺陷项
  540. //int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.inserDefectCheck", new object[] { _JudgeStoveNo, _ResultNo, ScrapRanSeq, int.Parse(umeScrapNum.Value.ToString()), int.Parse(umeOffLineNum.Value.ToString()), _QAFlag }, this._ob);
  541. this.DialogResult = DialogResult.OK;
  542. }
  543. /// <summary>
  544. /// 查询仓库信息
  545. /// </summary>
  546. /// <param name="plineCode"></param>
  547. /// <returns></returns>
  548. private DataTable getStoreNo(string plineCode)
  549. {
  550. DataTable ds = ServerHelper.GetData("com.steering.mes.signature.FrmInOnlineStore.doQueryStoreNo", new object[] { plineCode }, _ob);
  551. if (ds.Rows.Count > 0)
  552. {
  553. return ds;
  554. }
  555. else
  556. {
  557. return null;
  558. }
  559. }
  560. /// <summary>
  561. /// 根据重量系数 剔除支数算出废品吨
  562. /// </summary>
  563. /// <param name="sender"></param>
  564. /// <param name="e"></param>
  565. private void umeScrapNum_ValueChanged(object sender, EventArgs e)
  566. {
  567. _DBHeight = (_Diameter - _Thickness) * _Thickness * 0.02466 * _Length * double.Parse(uneZL.Value.ToString());
  568. umeScrapTon.Value = _DBHeight * int.Parse(umeScrapNum.Value.ToString());
  569. }
  570. private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
  571. {
  572. if (e.Cell.Column.Key == "DELETE_ITEM")
  573. {
  574. //for (int i = 0; i < dtDefect.Rows.Count; i++)
  575. //{
  576. // if (dtDefect.Rows[i]["CHK"].ToString() == "True")
  577. // {
  578. // if (dtDefect.Rows[i]["DEFECT_ITEM"].ToString() == e.Cell.Row.Cells["DEFECT_ITEM"].Value.ToString())
  579. // {
  580. // dtDefect.Rows.RemoveAt(i);
  581. // i--;
  582. // break;
  583. // //this.ultraGrid1.Rows[0].Delete();
  584. // }
  585. // }
  586. //}
  587. //for (int i = 0; i < this.ultraGrid1.Rows.Count;i++ )
  588. //{
  589. // if (this.ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True")
  590. // {
  591. // this.ultraGrid1.Rows[i].Delete();
  592. // i--;
  593. // break;
  594. // }
  595. //}
  596. DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.SurfaceInspectionResult.getCheckDetail", new object[] { _JudgeStoveNo, this.ultraGrid1.ActiveRow.Cells["DEFECT_CODE"].Value.ToString2() }, _ob);
  597. if (ds.Rows.Count > 0)
  598. {
  599. doDeleteDefect();
  600. }
  601. if (this.ultraGrid1.ActiveRow == null) return;
  602. this.ultraGrid1.ActiveRow.Delete();
  603. GetDefectItem();
  604. }
  605. }
  606. /// <summary>
  607. /// 删除缺陷项
  608. /// </summary>
  609. private void doDeleteDefect()
  610. {
  611. this.ultraGrid1.UpdateData();
  612. UltraGridRow uRow = this.ultraGrid1.ActiveRow;
  613. if (uRow == null) return;
  614. ArrayList parm = new ArrayList();
  615. parm.Add(uRow.Cells["JUDGE_STOVE_NO"].Value.ToString());
  616. parm.Add(uRow.Cells["DEFECT_CODE"].Value.ToString());
  617. parm.Add(string.IsNullOrEmpty(uRow.Cells["OFFLINE_PRODUCT"].Value.ToString()) ? "0" : uRow.Cells["OFFLINE_PRODUCT"].Value.ToString());
  618. parm.Add(string.IsNullOrEmpty(uRow.Cells["WASTE_BRANCH"].Value.ToString()) ? "0" : uRow.Cells["WASTE_BRANCH"].Value.ToString());
  619. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除此缺陷项?") == DialogResult.No) return;
  620. CoreClientParam ccp = new CoreClientParam();
  621. ccp.ServerName = "com.steering.mes.zgmil.coup.SurfaceInspectionResult";
  622. ccp.MethodName = "doDeleteDefect";
  623. ccp.ServerParams = new object[] { parm };
  624. ccp = _ob.ExecuteNonQuery(ccp,CoreInvokeType.Internal);
  625. if (ccp.ReturnCode != -1)
  626. {
  627. if (ccp.ReturnInfo.Equals("缺陷项删除成功!"))
  628. {
  629. //GetDefectItem();
  630. MessageUtil.ShowTips(ccp.ReturnInfo);
  631. }
  632. else
  633. {
  634. MessageUtil.ShowTips(ccp.ReturnInfo);
  635. }
  636. }
  637. }
  638. private void FrmQADefect_FormClosed(object sender, FormClosedEventArgs e)
  639. {
  640. this.DialogResult = DialogResult.OK;
  641. }
  642. }
  643. }