FrmBlankPrediction.cs 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Windows.Forms;
  6. using Core.Mes.Client.Comm.Control;
  7. using Core.Mes.Client.Comm.Format;
  8. using Core.Mes.Client.Comm.Tool;
  9. using Core.StlMes.Client.LgResMgt.Mcms.entity;
  10. using CoreFS.CA06;
  11. using Infragistics.Win.UltraWinGrid;
  12. using NPOI.SS.UserModel;
  13. using System.Drawing;
  14. namespace Core.StlMes.Client.LgResMgt.Mcms
  15. {
  16. public partial class FrmBlankPrediction : FrmBase
  17. {
  18. public List<ComBaseGradeEntity> Grades;
  19. public FrmBlankPrediction()
  20. {
  21. InitializeComponent();
  22. this.IsLoadUserView = true;
  23. }
  24. protected override void OnLoad(EventArgs e)
  25. {
  26. base.OnLoad(e);
  27. RegStartTime.Value = DateTime.Parse(DateTime.Now.AddDays(-4).ToString("yyyy-MM-dd 07:00:00"));
  28. RegEndTime.Value = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 07:00:00"));
  29. EntityHelper.ShowGridCaption<CmmBlankPredictionEntity>(CrackDetectGrid.DisplayLayout.Bands[0]);
  30. DoQuery();
  31. }
  32. public override void ToolBar_Click(object sender, string ToolbarKey)
  33. {
  34. switch (ToolbarKey)
  35. {
  36. case "DoQuery":
  37. DoQuery();
  38. break;
  39. case "DoUpdate":
  40. DoUpdate();
  41. break;
  42. case "DoAdd":
  43. DoAdd();
  44. break;
  45. case "DoDelete":
  46. DoDelete();
  47. break;
  48. case "DoUpload":
  49. DoUpload();
  50. break;
  51. case "Export":
  52. GridHelper.ulGridToExcel(CrackDetectGrid, "钢坯采购入场预报");
  53. break;
  54. case "DoFinish":
  55. DoFinish();
  56. break;
  57. case "DoClose":
  58. Close();
  59. break;
  60. case "DoUpdateMemo":
  61. DoUpdateMemo();
  62. break;
  63. }
  64. }
  65. private void DoUpload()
  66. {
  67. List<CmmBlankPredictionEntity> list = null;
  68. var openFileDialog = new OpenFileDialog
  69. {
  70. Filter = @"管坯来料清单|*.xls;*.xlsx"
  71. };
  72. if (openFileDialog.ShowDialog() == DialogResult.OK)
  73. {
  74. list = ReadExcelToEntity(openFileDialog.FileName);
  75. if ((list != null) && list.Any())
  76. using (var blankPrediction = new BlankPredictionUpload(ob, list))
  77. {
  78. if (blankPrediction.ShowDialog() == DialogResult.OK)
  79. DoQuery();
  80. }
  81. }
  82. }
  83. public List<CmmBlankPredictionEntity> ReadExcelToEntity(string fileName)
  84. {
  85. var changeGrade = new Dictionary<string, string>();
  86. //定义要返回的datatable对象
  87. var cmmBlankPredictionEntitys = new List<CmmBlankPredictionEntity>();
  88. List<BuyGpOrderEntity> OrderData = new List<BuyGpOrderEntity>();
  89. try
  90. {
  91. if (!File.Exists(fileName))
  92. return null;
  93. //根据指定路径读取文件
  94. using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
  95. {
  96. //根据文件流创建excel数据结构
  97. var workbook = WorkbookFactory.Create(fs);
  98. //IWorkbook workbook = new HSSFWorkbook(fs);
  99. for (var k = 0; k < workbook.NumberOfSheets; k++)
  100. {
  101. var sheet = workbook.GetSheetAt(k);
  102. var columns = new Dictionary<int, string>();
  103. if (sheet != null)
  104. {
  105. var rowCount = sheet.LastRowNum;
  106. var checkShipper = true;
  107. var shipperName = "";
  108. for (var i = 0; i <= rowCount; i++)
  109. {
  110. var row = sheet.GetRow(i);
  111. if (row == null) continue;
  112. if (columns.Any())
  113. {
  114. var valid = false;
  115. var entity = new CmmBlankPredictionEntity
  116. {
  117. CreateName = UserInfo.GetUserName()
  118. };
  119. if (checkShipper && !columns.ContainsValue("ShippersName"))
  120. {
  121. if (Comm.Show(
  122. "Excel未解析出来料厂家!, 是否手动录入", "提示 ",
  123. MessageBoxButtons.YesNo, new[] {"录入", "跳过"}) == DialogResult.Yes)
  124. using (var fractureInfo = new ProjectName("来料厂家"))
  125. {
  126. fractureInfo.ShowDialog();
  127. if (fractureInfo.DialogResult == DialogResult.OK)
  128. shipperName = fractureInfo.ProjectNameStr;
  129. }
  130. checkShipper = false;
  131. }
  132. for (var i1 = row.Cells.Count - 1; i1 >= 0; i1--)
  133. {
  134. var valueStr = GetCellValue(row.Cells[i1]);
  135. if (valueStr.Contains("合计")) continue;
  136. if (columns.ContainsKey(i1) && !string.IsNullOrEmpty(valueStr))
  137. if (columns[i1].ToString2() == "JudgeStoveNo")
  138. {
  139. entity.JudgeStoveNo = valueStr;
  140. valid = true;
  141. }
  142. else if (columns[i1].ToString2() == "Gradename")
  143. {
  144. if ((Grades == null) || !Grades.Any())
  145. Grades = EntityHelper.GetData<ComBaseGradeEntity>(
  146. "com.steering.Mcms.BlankPredictionServer.doQueryGrades",
  147. new object[] {},
  148. ob);
  149. if (changeGrade.ContainsKey(valueStr))
  150. valueStr = changeGrade[valueStr];
  151. var selectGrade = Grades.Where(p => p.Gradename == valueStr).ToList();
  152. if (!selectGrade.Any())
  153. {
  154. var result = Comm.Show(
  155. "导入钢种[" + valueStr + "]在产销系统找不到对应钢种!, 是否手动选择", "提示 ",
  156. MessageBoxButtons.YesNoCancel, new[] {"手动选择", "跳过", "取消导入"});
  157. if (result == DialogResult.Yes)
  158. using (
  159. var gradeSelect = new GradeSelect(ob, Grades,
  160. "导入钢种:" + valueStr))
  161. {
  162. if (gradeSelect.ShowDialog() == DialogResult.OK)
  163. {
  164. entity.Gradename = gradeSelect.SelectRow.Gradename;
  165. entity.Gradecode = gradeSelect.SelectRow.Gradecode;
  166. changeGrade.Add(valueStr, entity.Gradename);
  167. valid = true;
  168. }
  169. }
  170. else if (result == DialogResult.No)
  171. continue;
  172. else if (result == DialogResult.Cancel)
  173. return null;
  174. }
  175. else
  176. {
  177. entity.Gradename = valueStr;
  178. entity.Gradecode = selectGrade[0].Gradecode;
  179. valid = true;
  180. }
  181. }
  182. else if (columns[i1].ToString2() == "ActDimater")
  183. {
  184. decimal value;
  185. if (decimal.TryParse(valueStr, out value))
  186. {
  187. entity.ActDimater = value;
  188. valid = true;
  189. }
  190. }
  191. else if (columns[i1].ToString2() == "ActLen")
  192. {
  193. entity.ActLen = valueStr;
  194. valid = true;
  195. }
  196. else if (columns[i1].ToString2() == "SingleLen")
  197. {
  198. entity.SingleLen = valueStr;
  199. valid = true;
  200. }
  201. else if (columns[i1].ToString2() == "PlanNum")
  202. {
  203. decimal value;
  204. if (decimal.TryParse(valueStr, out value))
  205. {
  206. valid = true;
  207. entity.PlanNum = value;
  208. }
  209. }
  210. else if (columns[i1].ToString2() == "PlanWt")
  211. {
  212. decimal value;
  213. if (decimal.TryParse(valueStr, out value))
  214. {
  215. entity.PlanWt = value;
  216. valid = true;
  217. }
  218. }
  219. else if (columns[i1].ToString2() == "OrderNoSeq")
  220. {
  221. entity.OrderSqe = valueStr;
  222. valid = true;
  223. }
  224. else if (columns[i1].ToString2() == "OrderNo")
  225. {
  226. entity.OrderNo = valueStr;
  227. valid = true;
  228. } else if (columns[i1].ToString2() == "ShippersName")
  229. {
  230. entity.ShippersName = valueStr;
  231. valid = true;
  232. }
  233. else if (columns[i1].ToString2() == "Memo")
  234. {
  235. entity.Memo = valueStr;
  236. valid = true;
  237. }
  238. else if (columns[i1].ToString2() == "InstoreType")
  239. {
  240. if (valueStr == "过磅重量")
  241. {
  242. entity.InstoreType = "1";
  243. }
  244. else if (valueStr == "清单重量")
  245. {
  246. entity.InstoreType = "2";
  247. } else if (valueStr == "随车磅单")
  248. {
  249. entity.InstoreType = "3";
  250. }
  251. else
  252. {
  253. entity.InstoreType = "4";
  254. }
  255. valid = true;
  256. }
  257. }
  258. if (!string.IsNullOrWhiteSpace(shipperName) &&
  259. string.IsNullOrWhiteSpace(entity.ShippersName))
  260. entity.ShippersName = shipperName;
  261. if (!OrderData.Any())
  262. {
  263. OrderData = EntityHelper.GetData<BuyGpOrderEntity>(
  264. "com.steering.Mcms.BlankPredictionServer.doQueryOrder",
  265. new object[] { },
  266. ob);
  267. }
  268. if (valid)
  269. {
  270. var exits =
  271. OrderData.Where(
  272. p =>
  273. p.OrderNo == entity.OrderNo &&
  274. (string.IsNullOrWhiteSpace(entity.OrderSqe) || p.OrderSqe == entity.OrderSqe) &&
  275. p.LenGpSingle.ToString2() == entity.SingleLen.ToString2() &&
  276. p.Gradename == entity.Gradename &&
  277. p.Diameter == entity.ActDimater ).ToList();
  278. if (!exits.Any())
  279. {
  280. exits =
  281. OrderData.Where(
  282. p =>
  283. p.OrderNo == entity.OrderNo &&
  284. p.Gradecode == entity.Gradecode &&
  285. p.Diameter == entity.ActDimater &&
  286. (string.IsNullOrWhiteSpace(entity.OrderSqe) || p.OrderSqe == entity.OrderSqe)).ToList();
  287. }
  288. if (exits.Any())
  289. {
  290. entity.OrdNoPk = exits[0].OrdNoPk;
  291. entity.OrdSqePk = exits[0].OrdSqePk;
  292. entity.OrderNo = exits[0].OrderNo;
  293. entity.OrderSqe = exits[0].OrderSqe;
  294. entity.TypeFlag = exits[0].TypeFlag;
  295. entity.ProOrderNo = entity.OrderNo + "/" + entity.OrderSqe;
  296. }
  297. else
  298. {
  299. var result = Comm.Show(
  300. "导入的合同[" + entity.OrderNo + "] 行号[ " + entity.OrderSqe + "] 钢种["+ entity.Gradename+"] 直径["+entity.ActDimater+"] 单倍长[" + entity.SingleLen + "] 长度[" +
  301. entity.ActLen + "] 在产销系统找不到对应合同信息!, 是否手动选择", "提示 ",
  302. MessageBoxButtons.YesNoCancel, new[] {"手动选择", "跳过", "取消导入"});
  303. if (result == DialogResult.Yes)
  304. using (
  305. var orderSelect = new OrderSelect(ob, OrderData))
  306. {
  307. if (orderSelect.ShowDialog() == DialogResult.OK)
  308. {
  309. entity.OrdNoPk = orderSelect.SelectRow.OrdNoPk;
  310. entity.OrdSqePk = orderSelect.SelectRow.OrdSqePk;
  311. entity.OrderNo = orderSelect.SelectRow.OrderNo;
  312. entity.OrderSqe = orderSelect.SelectRow.OrderSqe;
  313. entity.TypeFlag = orderSelect.SelectRow.TypeFlag;
  314. entity.ProOrderNo = orderSelect.SelectRow.ProOrderNo;
  315. }
  316. else
  317. {
  318. continue;
  319. }
  320. }
  321. else if (result == DialogResult.No)
  322. continue;
  323. else if (result == DialogResult.Cancel)
  324. return null;
  325. }
  326. cmmBlankPredictionEntitys.Add(entity);
  327. }
  328. }
  329. else
  330. {
  331. if (!row.Cells.Any()) continue;
  332. if (row.Cells[0].IsMergedCell) continue;
  333. for (var i1 = 0; i1 < row.Cells.Count; i1++)
  334. if (row.GetCell(i1).ToString2().Contains("炉号"))
  335. columns.Add(i1, "JudgeStoveNo");
  336. else if (row.GetCell(i1).ToString2().Contains("钢种"))
  337. columns.Add(i1, "Gradename");
  338. else if (row.GetCell(i1).ToString2().Contains("外径"))
  339. columns.Add(i1, "ActDimater");
  340. else if (row.GetCell(i1).ToString2().Contains("长度") &&
  341. !row.GetCell(i1).ToString2().Contains("单倍"))
  342. columns.Add(i1, "ActLen");
  343. else if (row.GetCell(i1).ToString2().Contains("单倍"))
  344. columns.Add(i1, "SingleLen");
  345. else if (row.GetCell(i1).ToString2().Contains("支数"))
  346. columns.Add(i1, "PlanNum");
  347. else if (row.GetCell(i1).ToString2().Contains("入库重量类型"))
  348. columns.Add(i1, "InstoreType");
  349. else if (row.GetCell(i1).ToString2().Contains("重量"))
  350. columns.Add(i1, "PlanWt");
  351. else if (row.GetCell(i1).ToString2().Contains("厂家"))
  352. columns.Add(i1, "ShippersName");
  353. else if (row.GetCell(i1).ToString2().Contains("合同行号"))
  354. columns.Add(i1, "OrderNoSeq");
  355. else if (row.GetCell(i1).ToString2().Contains("合同"))
  356. columns.Add(i1, "OrderNo");
  357. else if (row.GetCell(i1).ToString2().Contains("备注"))
  358. columns.Add(i1, "Memo");
  359. }
  360. }
  361. }
  362. }
  363. }
  364. return cmmBlankPredictionEntitys;
  365. }
  366. catch (Exception ex)
  367. {
  368. MessageBox.Show(@"EXCEL格式错误:" + ex.Message);
  369. return null;
  370. }
  371. }
  372. private string GetCellValue(ICell cell)
  373. {
  374. if (cell == null) return "";
  375. var value = "";
  376. switch (cell.CellType)
  377. {
  378. case CellType.Blank:
  379. value = "";
  380. break;
  381. case CellType.Numeric:
  382. var format = cell.CellStyle.DataFormat;
  383. value = cell.NumericCellValue.ToString2();
  384. break;
  385. case CellType.String:
  386. value = cell.StringCellValue;
  387. break;
  388. }
  389. return value;
  390. }
  391. private void DoFinish()
  392. {
  393. List<string> list;
  394. if ((CrackDetectGrid.Selected.Rows.Count <= 0) && (CrackDetectGrid.ActiveRow == null))
  395. {
  396. MessageBox.Show("请选择需要强制完成的数据!");
  397. return;
  398. }
  399. if (CrackDetectGrid.Selected.Rows.Count <= 0)
  400. list = new List<string>
  401. {
  402. (CrackDetectGrid.ActiveRow.ListObject as CmmBlankPredictionEntity).PredictionId
  403. };
  404. else
  405. list = (from UltraGridRow p in CrackDetectGrid.Selected.Rows
  406. select p.ListObject as CmmBlankPredictionEntity).Select(p => p.PredictionId).ToList();
  407. var ccp = new CoreClientParam();
  408. ccp.ServerName = "com.steering.Mcms.BlankPredictionServer";
  409. ccp.MethodName = "DoFinish";
  410. ccp.ServerParams = new object[]
  411. {
  412. list, UserInfo.GetUserName()
  413. };
  414. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  415. if (ccp.ReturnCode != -1)
  416. {
  417. MessageUtil.ShowTips(ccp.ReturnInfo);
  418. if (ccp.ReturnInfo.Contains("成功!"))
  419. DoQuery();
  420. }
  421. }
  422. private void DoDelete()
  423. {
  424. List<string> list;
  425. if ((CrackDetectGrid.Selected.Rows.Count <= 0) && (CrackDetectGrid.ActiveRow == null))
  426. {
  427. MessageBox.Show("请选择需要删除的数据!");
  428. return;
  429. }
  430. if (CrackDetectGrid.Selected.Rows.Count <= 0)
  431. list = new List<string>
  432. {
  433. (CrackDetectGrid.ActiveRow.ListObject as CmmBlankPredictionEntity).PredictionId
  434. };
  435. else
  436. list = (from UltraGridRow p in CrackDetectGrid.Selected.Rows
  437. select p.ListObject as CmmBlankPredictionEntity).Select(p => p.PredictionId).ToList();
  438. var ccp = new CoreClientParam();
  439. ccp.ServerName = "com.steering.Mcms.BlankPredictionServer";
  440. ccp.MethodName = "DoDelete";
  441. ccp.ServerParams = new object[]
  442. {
  443. list, UserInfo.GetUserName()
  444. };
  445. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  446. if (ccp.ReturnCode != -1)
  447. {
  448. MessageUtil.ShowTips(ccp.ReturnInfo);
  449. if (ccp.ReturnInfo.Contains("成功!"))
  450. DoQuery();
  451. }
  452. }
  453. private void DoAdd()
  454. {
  455. CmmBlankPredictionEntity entity = GetEntity(true);
  456. var ccp = new CoreClientParam();
  457. ccp.ServerName = "com.steering.Mcms.BlankPredictionServer";
  458. ccp.MethodName = "DoAdd";
  459. ccp.ServerParams = new object[]
  460. {
  461. JSONFormat.Format(entity)
  462. };
  463. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  464. if (ccp.ReturnCode != -1)
  465. {
  466. MessageUtil.ShowTips(ccp.ReturnInfo);
  467. if (ccp.ReturnInfo.Contains("成功!"))
  468. DoQuery();
  469. }
  470. }
  471. private void DoUpdate()
  472. {
  473. CmmBlankPredictionEntity entity = GetEntity(false);
  474. var ccp = new CoreClientParam();
  475. ccp.ServerName = "com.steering.Mcms.BlankPredictionServer";
  476. ccp.MethodName = "DoUpdate";
  477. ccp.ServerParams = new object[]
  478. {
  479. JSONFormat.Format(entity)
  480. };
  481. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  482. if (ccp.ReturnCode != -1)
  483. {
  484. MessageUtil.ShowTips(ccp.ReturnInfo);
  485. if (ccp.ReturnInfo.Contains("成功!"))
  486. DoQuery();
  487. }
  488. }
  489. private void DoQuery()
  490. {
  491. var dic = new Dictionary<string, object>();
  492. if (chkJudgeStove.Checked) dic.Add("judgeStoveNo", txtJudgeStove.Text);
  493. if (chkOrderNo.Checked) dic.Add("proOrderNo", txtOrderNo.Text);
  494. if (chkShippersName.Checked) dic.Add("shippersName", uteShippersName.Text);
  495. if (chkTim.Checked)
  496. {
  497. dic.Add("time", RegStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  498. dic.Add("time1", RegEndTime.Value.ToString("yyy-MM-dd HH:mm:ss"));
  499. }
  500. if (chkStatus.Checked && cboStatus.CheckedItems.Count>0)
  501. {
  502. dic.Add("validflag", cboStatus.CheckedItems.Select(p => p.DataValue.ToString()).ToList());
  503. }
  504. else
  505. {
  506. dic.Add("validflag", new List<string>() { "1","2","3"});
  507. }
  508. cmmBlankPredictionEntityBindingSource.DataSource = EntityHelper.GetData<CmmBlankPredictionEntity>(
  509. "com.steering.Mcms.BlankPredictionServer.doQuery",
  510. new object[] {dic},
  511. ob);
  512. Comm.RefreshAndAutoSize(CrackDetectGrid);
  513. }
  514. private void CrackDetectGrid_AfterRowActivate(object sender, EventArgs e)
  515. {
  516. CmmBlankPredictionEntity entity = CrackDetectGrid.ActiveRow.ListObject as CmmBlankPredictionEntity;
  517. if(entity==null) return;
  518. uteShippersNameE.Text = entity.ShippersName;
  519. uteGradnameE.Text = entity.Gradename;
  520. uteGradnameE.Tag = entity.Gradecode;
  521. uteProOrderNoE.Text = entity.ProOrderNo;
  522. uteJudgeStoveNo.Text = entity.JudgeStoveNo;
  523. uteMemo.Text = entity.Memo;
  524. uteId.Text = entity.PredictionId;
  525. uteOrdPk.Text = entity.OrdNoPk;
  526. uteOrderSeqPk.Text = entity.OrdSqePk;
  527. uteOrderNo.Text = entity.OrderNo;
  528. uteOrderSeq.Text = entity.OrderSqe;
  529. uceEditType.Value = entity.TypeFlag;
  530. txbPipememo.Text = entity.Pipememo;
  531. uneActLen.Value = null;
  532. int len;
  533. if (int.TryParse(entity.ActLen, out len))
  534. uneActLen.Value = len;
  535. uneSingleLen.Value = null;
  536. int singleLen;
  537. if (int.TryParse(entity.SingleLen, out singleLen))
  538. uneSingleLen.Value = singleLen;
  539. uneActDimater.Value = null;
  540. int dimater;
  541. if (int.TryParse(entity.ActDimater.ToString2(), out dimater))
  542. uneActDimater.Value = dimater;
  543. unePlanNum.Value = null;
  544. int num;
  545. if (int.TryParse(entity.PlanNum.ToString2(), out num))
  546. unePlanNum.Value = num;
  547. unePlanWt.Value = null;
  548. double wt;
  549. if (double.TryParse(entity.PlanWt.ToString2(), out wt))
  550. unePlanWt.Value = wt;
  551. editType.Value = entity.InstoreType;
  552. }
  553. private CmmBlankPredictionEntity GetEntity(bool isNew)
  554. {
  555. CmmBlankPredictionEntity entity = new CmmBlankPredictionEntity()
  556. {
  557. ShippersName = uteShippersNameE.Text,
  558. Gradename = uteGradnameE.Text,
  559. Gradecode = uteGradnameE.Tag.ToString2(),
  560. ProOrderNo = uteProOrderNoE.Text,
  561. JudgeStoveNo = uteJudgeStoveNo.Text,
  562. PredictionId = isNew ? "" : uteId.Text,
  563. ActLen = uneActLen.Value.ToString2(),
  564. SingleLen = uneSingleLen.Value.ToString2(),
  565. Memo = uteMemo.Text,
  566. OrdNoPk = uteOrdPk.Text,
  567. OrdSqePk = uteOrderSeqPk.Text,
  568. OrderNo = uteOrderNo.Text,
  569. OrderSqe = uteOrderSeq.Text,
  570. TypeFlag = uceEditType.Value.ToString3(),
  571. InstoreType = editType.Value.ToString2(),
  572. Pipememo = txbPipememo.Text.ToString2()
  573. };
  574. decimal dimater;
  575. if (decimal.TryParse(uneActDimater.Value.ToString2(), out dimater))
  576. entity.ActDimater = dimater;
  577. decimal num;
  578. if (decimal.TryParse(unePlanNum.Value.ToString2(), out num))
  579. entity.PlanNum = num;
  580. decimal wt;
  581. if (decimal.TryParse(unePlanWt.Value.ToString2(), out wt))
  582. entity.PlanWt = wt;
  583. if (isNew)
  584. {
  585. entity.CreateName = this.UserInfo.GetUserName();
  586. }
  587. else
  588. {
  589. entity.UpdateName = this.UserInfo.GetUserName();
  590. }
  591. return entity;
  592. }
  593. private void uteGradnameE_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  594. {
  595. using (
  596. var gradeSelect = new GradeSelect(ob, null,
  597. string.IsNullOrWhiteSpace(uteGradnameE.Text)
  598. ? ""
  599. : "原钢种:" + uteGradnameE.Text))
  600. {
  601. if (gradeSelect.ShowDialog() == DialogResult.OK)
  602. {
  603. uteGradnameE.Text = gradeSelect.SelectRow.Gradename;
  604. uteGradnameE.Tag = gradeSelect.SelectRow.Gradecode;
  605. }
  606. }
  607. }
  608. private void btnMemo_Click(object sender, EventArgs e)
  609. {
  610. uteMemo.Text = "双经销合同坯料";
  611. }
  612. private void uteProOrderNoE_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  613. {
  614. using (
  615. var orderSelect = new OrderSelect(ob, null))
  616. {
  617. if (orderSelect.ShowDialog() == DialogResult.OK)
  618. {
  619. uteProOrderNoE.Text = orderSelect.SelectRow.ProOrderNo;
  620. uteOrdPk.Text = orderSelect.SelectRow.OrdNoPk;
  621. uteOrderSeqPk.Text = orderSelect.SelectRow.OrdSqePk;
  622. uteOrderNo.Text = orderSelect.SelectRow.OrderNo;
  623. uteOrderSeq.Text = orderSelect.SelectRow.OrderSqe;
  624. uteGradnameE.Text = orderSelect.SelectRow.Gradename;
  625. uteGradnameE.Tag = orderSelect.SelectRow.Gradecode;
  626. uneActLen.Text = orderSelect.SelectRow.Length.ToString2();
  627. uneActDimater.Text = orderSelect.SelectRow.Diameter.ToString2();
  628. uteShippersNameE.Text = orderSelect.SelectRow.SuppCode;
  629. uneSingleLen.Text = orderSelect.SelectRow.LenGpSingle.ToString2();
  630. uceEditType.Value = orderSelect.SelectRow.TypeFlag ;
  631. if (orderSelect.SelectRow.TypeFlag == "1")
  632. {
  633. uceInType.Value = "0";
  634. }
  635. }
  636. }
  637. }
  638. private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e)
  639. {
  640. try
  641. {
  642. CmmBlankPredictionEntity entity = e.Row.ListObject as CmmBlankPredictionEntity;
  643. if (entity == null) return;
  644. if (!string.IsNullOrWhiteSpace(entity.UnPoundNum))
  645. {
  646. if (int.Parse(entity.UnPoundNum) > 0)
  647. {
  648. e.Row.Cells["UnPoundNum"].Appearance.BackColor = Color.Yellow;
  649. }
  650. else if (int.Parse(entity.UnPoundNum) < 0)
  651. {
  652. e.Row.Cells["UnPoundNum"].Appearance.BackColor = Color.Red;
  653. }
  654. }
  655. if (!string.IsNullOrWhiteSpace(entity.UnInstoreNum))
  656. {
  657. if (int.Parse(entity.UnInstoreNum) > 0)
  658. {
  659. e.Row.Cells["UnInstoreNum"].Appearance.BackColor = Color.Yellow;
  660. }
  661. else if (int.Parse(entity.UnInstoreNum) <= 0 && double.Parse(entity.UnInstoreWt) > 0)
  662. {
  663. e.Row.Cells["UnInstoreWt"].Appearance.BackColor = Color.Red;
  664. }
  665. }
  666. int num = 0;
  667. int poundnum = 0;
  668. int.TryParse(entity.PlanNum.ToString3(), out num);
  669. int.TryParse(entity.PoundNum.ToString3(), out poundnum);
  670. if (poundnum > num)
  671. {
  672. e.Row.Cells["PoundNum"].Appearance.BackColor = Color.Red;
  673. }
  674. if (!string.IsNullOrWhiteSpace(entity.OrderFlag) && "0" == entity.OrderFlag)
  675. {
  676. e.Row.Cells["OrderNo"].Appearance.BackColor = Color.Red;
  677. }
  678. }catch(Exception ex){
  679. }
  680. }
  681. private void uteQueryPound_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  682. {
  683. CmmBlankPredictionEntity entity = CrackDetectGrid.ActiveRow.ListObject as CmmBlankPredictionEntity;
  684. if (entity == null) return;
  685. FrmPoundInfo FrmPoundInfo = new FrmPoundInfo(entity.PredictionId, ob);
  686. FrmPoundInfo.ShowDialog();
  687. }
  688. private void uteQueryInstore_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  689. {
  690. CmmBlankPredictionEntity entity = CrackDetectGrid.ActiveRow.ListObject as CmmBlankPredictionEntity;
  691. if (entity == null) return;
  692. FrmInstoreInfo FrmInstoreInfo = new FrmInstoreInfo(entity.PredictionId, ob);
  693. FrmInstoreInfo.ShowDialog();
  694. }
  695. private void DoUpdateMemo()
  696. {
  697. List<string> lst = new List<string>();
  698. IQueryable<UltraGridRow> checkMagRows = this.CrackDetectGrid.Rows.AsQueryable().Where(" Chk = 'True'");
  699. foreach (UltraGridRow p in checkMagRows)
  700. {
  701. CmmBlankPredictionEntity entity = p.ListObject as CmmBlankPredictionEntity;
  702. lst.Add(entity.PredictionId);
  703. }
  704. var ccp = new CoreClientParam
  705. {
  706. ServerName = "com.steering.Mcms.BlankPredictionServer",
  707. MethodName = "DoUpdateMemo",
  708. ServerParams = new object[]
  709. {
  710. lst,
  711. txbPipememo.Text.ToString(),
  712. txtMemo.Text.ToString()
  713. }
  714. };
  715. ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  716. if (ccp.ReturnCode != -1)
  717. {
  718. MessageUtil.ShowTips(ccp.ReturnInfo);
  719. if (ccp.ReturnInfo.Contains("成功!"))
  720. DoQuery();
  721. }
  722. }
  723. private void chkMemo_CheckedChanged(object sender, EventArgs e)
  724. {
  725. if (chkMemo.Checked == true)
  726. {
  727. foreach (var ultraGridRow in CrackDetectGrid.Rows)
  728. {
  729. if (ultraGridRow.VisibleIndex>-1)
  730. ultraGridRow.Cells["Chk"].Value = true;
  731. }
  732. }
  733. else
  734. {
  735. foreach (var ultraGridRow in CrackDetectGrid.Rows)
  736. {
  737. if (ultraGridRow.VisibleIndex >-1)
  738. ultraGridRow.Cells["Chk"].Value = false;
  739. }
  740. }
  741. Comm.RefreshAndAutoSize(CrackDetectGrid);
  742. }
  743. }
  744. }