FrmChangeBomDp.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  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 System.Collections;
  10. using CoreFS.CA06;
  11. using Core.Mes.Client.Comm.Tool;
  12. using com.steering.pss.plnsaleord.order.model;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Server;
  15. using Core.Mes.Client.Comm;
  16. using com.steering.pss.plnsaleord.ordAmCal.model;
  17. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  18. namespace Core.StlMes.Client.PlnSaleOrd.PopupWindow
  19. {
  20. public partial class FrmChangeBomDp : FrmBase
  21. {
  22. /// <summary>
  23. /// 全程产线号
  24. /// </summary>
  25. private string mscPline = "";
  26. /// <summary>
  27. /// 轧管产线代码
  28. /// </summary>
  29. private string plinCode = "";
  30. /// <summary>
  31. /// Bom
  32. /// </summary>
  33. private string bom = "";
  34. /// <summary>
  35. /// 交货行pk
  36. /// </summary>
  37. private string ordLnDlyPk = "";
  38. /// <summary>
  39. /// 排产流水号
  40. /// </summary>
  41. private string plnDivideId = "";
  42. /// <summary>
  43. /// DESGiN_KEY
  44. /// </summary>
  45. private string desginKey = "";
  46. /// <summary>
  47. /// 物料编码
  48. /// </summary>
  49. private string materialNo = "";
  50. /// <summary>
  51. /// 冶金规范码
  52. /// </summary>
  53. private string msc = "";
  54. /// <summary>
  55. /// 冶金规范类型
  56. /// </summary>
  57. private string mscStyle = "";
  58. /// <summary>
  59. /// 产品码
  60. /// </summary>
  61. private string psc = "";
  62. /// <summary>
  63. /// 成品外径
  64. /// </summary>
  65. private string outdiameter = "";
  66. /// <summary>
  67. /// 成品壁厚
  68. /// </summary>
  69. private string wallthick = "";
  70. /// <summary>
  71. /// 成品规格代码
  72. /// </summary>
  73. private string specCode = "";
  74. /// <summary>
  75. /// 成品规格描述
  76. /// </summary>
  77. private string specName = "";
  78. /// <summary>
  79. /// 品名代码
  80. /// </summary>
  81. private string producCode = "";
  82. /// <summary>
  83. /// 品名
  84. /// </summary>
  85. private string producName = "";
  86. /// <summary>
  87. /// 扣型代码
  88. /// </summary>
  89. private string modelCode = "";
  90. /// <summary>
  91. /// 扣型
  92. /// </summary>
  93. private string modelName = "";
  94. /// <summary>
  95. /// 外购坯
  96. /// </summary>
  97. private string outsBilletFl = "";
  98. /// <summary>
  99. /// 外购管
  100. /// </summary>
  101. private string outsStlPipeFl = "";
  102. /// <summary>
  103. /// 最终用户代码
  104. /// </summary>
  105. private string finalUser = "";
  106. /// <summary>
  107. /// 分类
  108. /// </summary>
  109. private string custom = "";
  110. /// <summary>
  111. /// 分类
  112. /// </summary>
  113. public string Custom
  114. {
  115. get { return custom; }
  116. set { custom = value; }
  117. }
  118. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  119. {
  120. switch (e.Tool.Key)
  121. {
  122. case "Query":
  123. DoQuery();
  124. break;
  125. case "Save":
  126. DoSave();
  127. break;
  128. case "AddEspec":
  129. DoAddEspec();
  130. break;
  131. case "Colse":
  132. this.Close();
  133. break;
  134. }
  135. }
  136. public FrmChangeBomDp(string _ordLnDlyPk, string _plnDivideId, OpeBase baseOb)
  137. {
  138. this.IsLoadUserView = true;
  139. this.ob = baseOb;
  140. ordLnDlyPk = _ordLnDlyPk;
  141. plnDivideId = _plnDivideId;
  142. InitializeComponent();
  143. EntityHelper.ShowGridCaption<SlmOrdDesignBomEntity>(ultraGridBom.DisplayLayout.Bands[0]);
  144. EntityHelper.ShowGridCaption<SlmBaseMaterialDPlEntity>(this.ultraGridDPine.DisplayLayout.Bands[0]);
  145. }
  146. private void FrmChangeBomDp_Load(object sender, EventArgs e)
  147. {
  148. Init();
  149. DoQuery();
  150. }
  151. private void Init()
  152. {
  153. if (!this.custom.Equals("Dbk") && !this.custom.Equals(""))
  154. {
  155. ultraToolbarsManager1.Tools.Remove(ultraToolbarsManager1.Tools["AddEspec"]);
  156. }
  157. if (!this.custom.Equals("Zg") && !this.custom.Equals(""))
  158. {
  159. splitContainer1.Panel2Collapsed = true;
  160. }
  161. }
  162. /// <summary>
  163. /// 刷新
  164. /// </summary>
  165. //private void RefresDate()
  166. //{
  167. // DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
  168. // new object[] { ordLnDlyPk, plnDivideId }, this.ob);
  169. // if (dt != null && dt.Rows.Count > 0)
  170. // {
  171. // DataRow dr = dt.Rows[0];
  172. // desginKey = dr["DESGIN_KEY"].ToString();
  173. // msc = dr["MSC"].ToString();
  174. // mscStyle = dr["MSC_STYLE"].ToString();//冶金规范描述
  175. // psc = dr["PSC"].ToString();//产品码
  176. // outdiameter = dr["OUTDIAMETER"].ToString();
  177. // wallthick = dr["WALLTHICK"].ToString();
  178. // specCode = dr["SPEC_CODE"].ToString();//规格
  179. // specName = dr["SPEC_NAME"].ToString();
  180. // modelCode = dr["MODEL_CODE"].ToString();//扣型
  181. // modelName = dr["MODEL_DESC"].ToString();
  182. // producCode = dr["PRODUCCODE"].ToString();//品名
  183. // producName = dr["PRODUCNAME"].ToString();
  184. // outsBilletFl = dr["OUTS_BILLET_FL"].ToString();//外购坯(COM_BASE_INFO:1218)
  185. // outsStlPipeFl = dr["OUTS_STL_PIPE_FL"].ToString();//外购管(COM_BASE_INFO:1219)
  186. // materialNo = dr["MATERIAL_NO"].ToString();//外购管(COM_BASE_INFO:1219)
  187. // finalUser = dr["FINAL_USER"].ToString();//外购管(COM_BASE_INFO:1219)
  188. // }
  189. //}
  190. /// <summary>
  191. /// 查询
  192. /// </summary>
  193. private void DoQuery()
  194. {
  195. //ArrayList param = new ArrayList();
  196. List<SlmOrdDesignBomEntity> listSource = null;
  197. string checkDbk = "";
  198. string checkZgPline = "";
  199. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
  200. new object[] { ordLnDlyPk, plnDivideId }, this.ob);
  201. if (dt == null || dt.Rows.Count <= 0)
  202. {
  203. MessageUtil.ShowError("找不到合同信息!");
  204. this.Close();
  205. return;
  206. }
  207. DataRow dr = dt.Rows[0];
  208. desginKey = dr["DESGIN_KEY"].ToString();
  209. msc = dr["MSC"].ToString();
  210. mscStyle = dr["MSC_STYLE"].ToString();//冶金规范描述
  211. psc = dr["PSC"].ToString();//产品码
  212. outdiameter = dr["OUTDIAMETER"].ToString();
  213. wallthick = dr["WALLTHICK"].ToString();
  214. specCode = dr["SPEC_CODE"].ToString();//规格
  215. specName = dr["SPEC_NAME"].ToString();
  216. modelCode = dr["MODEL_CODE"].ToString();//扣型
  217. modelName = dr["MODEL_DESC"].ToString();
  218. producCode = dr["PRODUCCODE"].ToString();//品名
  219. producName = dr["PRODUCNAME"].ToString();
  220. outsBilletFl = dr["OUTS_BILLET_FL"].ToString();//外购坯(COM_BASE_INFO:1218)
  221. outsStlPipeFl = dr["OUTS_STL_PIPE_FL"].ToString();//外购管(COM_BASE_INFO:1219)
  222. materialNo = dr["MATERIAL_NO"].ToString();//外购管(COM_BASE_INFO:1219)
  223. finalUser = dr["FINAL_USER"].ToString();//外购管(COM_BASE_INFO:1219)
  224. mscPline = dr["INDEX_SEQ"].ToString();
  225. plinCode = dr["GROUP_ROLL"].ToString();
  226. bom = dr["BOM"].ToString();
  227. if (!this.custom.Equals("Dbk" ) && !this.custom.Equals(""))
  228. {
  229. if (dr["E_IS_OK"].ToString().Trim().Equals("1"))
  230. {
  231. checkDbk = dr["E_IN_MATERIAL_NO"].ToString();
  232. }
  233. if (!this.custom.Equals("Zg"))
  234. {
  235. if (dr["D_IS_OK"].ToString().Trim().Equals("1"))
  236. {
  237. checkZgPline = dr["GROUP_ROLL"].ToString();
  238. }
  239. }
  240. }
  241. //param.Add(mscPline);
  242. //param.Add(msc);
  243. //param.Add(materialNo);
  244. //param.Add(dr["PROCESS_SEQ"].ToString());
  245. //listSource = EntityHelper.GetData<SlmOrdDesignBomEntity>(
  246. // "com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdDesignBom", new object[] {
  247. // param, checkDbk, checkZgPline }, this.ob);
  248. listSource = EntityHelper.GetData<SlmOrdDesignBomEntity>(
  249. "com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineDesignBom", new object[] {
  250. desginKey, checkDbk, checkZgPline }, this.ob);
  251. slmOrdDesignBomEntityBindingSource.DataSource = listSource;
  252. PlanComm.setGridActivation(ultraGridBom.DisplayLayout.Bands[0], "CHC");
  253. ultraGridBom.Update();
  254. IQueryable<UltraGridRow> checkRows = ultraGridBom.Rows.AsQueryable().Where(" Bom = '" + bom + "' ");
  255. if (checkRows.Count() == 0)
  256. {
  257. return;
  258. }
  259. checkRows.First<UltraGridRow>().Cells["CHC"].Value = true;
  260. ultraGridBom.ActiveRow = checkRows.First<UltraGridRow>();
  261. }
  262. /// <summary>
  263. /// 查询 可选产线
  264. /// </summary>
  265. /// <param name="inMaterialNo"></param>
  266. /// <param name="outMaterialNo"></param>
  267. private void DoQueryPline(string inMaterialNo, string outMaterialNo)
  268. {
  269. ArrayList param = new ArrayList();
  270. param.Add(inMaterialNo);
  271. param.Add(outMaterialNo);
  272. param.Add(desginKey);
  273. param.Add(mscPline);
  274. param.Add(finalUser);
  275. param.Add(producCode);
  276. List<SlmBaseMaterialDPlEntity> listSource = EntityHelper.GetData<SlmBaseMaterialDPlEntity>(
  277. "com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.getBomMaterialDpl", new object[] { param }, this.ob);
  278. this.slmBaseMaterialDPlEntitybindingSource.DataSource = listSource;
  279. PlanComm.setGridActivation(this.ultraGridDPine.DisplayLayout.Bands[0], "CHC");
  280. ultraGridDPine.Update();
  281. IQueryable<UltraGridRow> checkRows = ultraGridDPine.Rows.AsQueryable().Where(" PlineCode = '" + plinCode + "' ");
  282. if (checkRows.Count() == 0)
  283. {
  284. return;
  285. }
  286. checkRows.First<UltraGridRow>().Cells["CHC"].Value = true;
  287. ultraGridDPine.ActiveRow = checkRows.First<UltraGridRow>();
  288. }
  289. /// <summary>
  290. /// 新增镦拔扩规格
  291. /// </summary>
  292. private void DoAddEspec()
  293. {
  294. ultraGridBom.UpdateData();
  295. IQueryable<UltraGridRow> checkRows = ultraGridBom.Rows.AsQueryable().Where(" CHC = 'True' ");
  296. if (checkRows.Count() == 0)
  297. {
  298. MessageUtil.ShowTips("未指定钢种!");
  299. return;
  300. }
  301. UltraGridRow ugr = checkRows.First<UltraGridRow>();
  302. FrmAddEinSpec addSpec = new FrmAddEinSpec(this.ob);
  303. ArrayList param = new ArrayList();
  304. param.Add(desginKey);
  305. param.Add(ugr.Cells["MscPline"].Value.ToString());
  306. DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
  307. new object[] { param }, this.ob);
  308. if (dtProcess != null && dtProcess.Rows.Count > 0)
  309. {
  310. string bjType = "";
  311. foreach (DataRow dr in dtProcess.Rows)
  312. {
  313. if (dr["PROCESS_CODE"].ToString().Equals("E"))
  314. {
  315. bjType = dr["PROCESS_CODE_C"].ToString();
  316. }
  317. }
  318. if (bjType.Equals(""))
  319. {
  320. MessageUtil.ShowError("未找到镦拔扩二级工序!");
  321. return;
  322. }
  323. addSpec.Prolineinfo = bjType;
  324. addSpec.Gztype = ugr.Cells["Gradecode"].Value.ToString();
  325. addSpec.BjOutdiameter = outdiameter;
  326. addSpec.BjWallthick = wallthick;
  327. addSpec.ShowDialog();
  328. if (addSpec.isModify)
  329. {
  330. ArrayList listMscPline = new ArrayList();
  331. ArrayList listwholeBacklog = new ArrayList();
  332. ArrayList listParam = new ArrayList();
  333. listMscPline.Add(ugr.Cells["MscPline"].Value.ToString());
  334. listwholeBacklog.Add(ugr.Cells["wholeBacklog"].Value.ToString());
  335. listParam.Add(desginKey);
  336. listParam.Add(msc);
  337. listParam.Add(mscStyle);
  338. listParam.Add(psc);//产品码
  339. listParam.Add(outdiameter);
  340. listParam.Add(wallthick);
  341. listParam.Add(specCode);//规格
  342. listParam.Add(specName);
  343. listParam.Add(modelCode);//扣型
  344. listParam.Add(modelName);
  345. listParam.Add(producCode);//品名
  346. listParam.Add(producName);
  347. listParam.Add(outsBilletFl);//外购坯(COM_BASE_INFO:1218)
  348. listParam.Add(outsStlPipeFl);//外购管(COM_BASE_INFO:1219)
  349. CoreClientParam ccp = new CoreClientParam();
  350. ccp.ServerName = "com.steering.pss.sale.order.craftDesign.main.CraftDesignStandard";
  351. ccp.MethodName = "checkNewSpec";
  352. //ccp.ServerParams = new object[] { desginKey, msc, listMscPline,
  353. // listwholeBacklog, outdiameter, wallthick, specCode, specName, psc };
  354. ccp.ServerParams = new object[] { listParam, listMscPline, listwholeBacklog };
  355. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  356. if (ccp.ReturnCode != -1)
  357. {
  358. MessageUtil.ShowTips(ccp.ReturnInfo);
  359. }
  360. }
  361. }
  362. DoQuery();
  363. }
  364. /// <summary>
  365. /// 保存更改
  366. /// </summary>
  367. private void DoSave()
  368. {
  369. try
  370. {
  371. ultraGridBom.UpdateData();
  372. ultraGridDPine.UpdateData();
  373. IQueryable<UltraGridRow> checkRows = ultraGridBom.Rows.AsQueryable().Where("CHC = 'True'");
  374. PlnSaleordProcEntity orderPrcEntity = new PlnSaleordProcEntity();
  375. if (checkRows.Count() == 0)
  376. {
  377. MessageUtil.ShowError("未选择任何BOM!");
  378. return;
  379. }
  380. IQueryable<UltraGridRow> checkRows1 = this.ultraGridDPine.Rows.AsQueryable().Where("CHC = 'True'");
  381. DataTable dtSatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
  382. new object[] { ordLnDlyPk, plnDivideId }, this.ob);
  383. if (dtSatus == null || dtSatus.Rows.Count <= 0)
  384. {
  385. MessageUtil.ShowError("找不到合同信息!");
  386. this.Close();
  387. return;
  388. }
  389. string outsStlPipeFl = dtSatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
  390. orderPrcEntity.Bom = checkRows.First<UltraGridRow>().Cells["Bom"].Value.ToString();
  391. DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getDesignBomInf",
  392. new object[] { orderPrcEntity.Bom }, this.ob);
  393. if (dtBom == null || dtBom.Rows.Count <= 0)
  394. {
  395. return;
  396. }
  397. orderPrcEntity.GroupRollAll = dtBom.Rows[0]["D_PLINE"].ToString();
  398. orderPrcEntity.Gradecode = dtBom.Rows[0]["GRADECODE"].ToString();
  399. orderPrcEntity.EInMaterialDesc = dtBom.Rows[0]["E_IN_MATERIAL_DESC"].ToString();
  400. orderPrcEntity.EInMaterialNo = dtBom.Rows[0]["E_IN_MATERIAL_NO"].ToString();
  401. orderPrcEntity.DimaterYlg = dtBom.Rows[0]["DIMATER"].ToString();
  402. orderPrcEntity.HeightYlg = dtBom.Rows[0]["HEIGHT"].ToString();
  403. orderPrcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
  404. dtSatus.Rows[0]["INDEX_SEQ"].ToString(), orderPrcEntity.Bom, this.ob);
  405. orderPrcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
  406. dtSatus.Rows[0]["INDEX_SEQ"].ToString(), orderPrcEntity.Bom, this.ob);
  407. #region 判断坯料的属性
  408. string dinMaterial = "";
  409. ///轧管投入物料(炼钢末工序产出物料)
  410. if (!dtBom.Rows[0]["D_IN_MATERIAL_NO"].ToString().Equals(""))
  411. {
  412. dinMaterial = dtBom.Rows[0]["D_IN_MATERIAL_NO"].ToString();
  413. }
  414. else if (!dtBom.Rows[0]["C_OUT_MATERIAL_NO"].ToString().Equals(""))
  415. {
  416. dinMaterial = dtBom.Rows[0]["C_OUT_MATERIAL_NO"].ToString();
  417. }
  418. else if (!dtBom.Rows[0]["B_OUT_MATERIAL_NO"].ToString().Equals(""))
  419. {
  420. dinMaterial = dtBom.Rows[0]["B_OUT_MATERIAL_NO"].ToString();
  421. }
  422. else
  423. {
  424. dinMaterial = dtBom.Rows[0]["A_OUT_MATERIAL_NO"].ToString();
  425. }
  426. orderPrcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
  427. #endregion
  428. // 轧管去向
  429. orderPrcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dtBom.Rows[0]["WHOLE_BACKLOG"].ToString(), dtBom.Rows[0]["WHOLE_BACKLOG_DESC"].ToString());
  430. #region 确认
  431. if (this.custom.Equals("Dbk"))
  432. {
  433. orderPrcEntity.EIsOk = "1";
  434. orderPrcEntity.DIsOk = dtSatus.Rows[0]["D_IS_OK"].ToString();
  435. orderPrcEntity.GradecodeIsOk = dtSatus.Rows[0]["GRADECODE_IS_OK"].ToString();
  436. if (checkRows1.Count() == 0)
  437. {
  438. if (ultraGridDPine.Rows.Count > 0)
  439. {
  440. orderPrcEntity.GroupRoll = ultraGridDPine.Rows[0].Cells["PlineCode"].Value.ToString();
  441. }
  442. orderPrcEntity.DIsOk = "0";
  443. }
  444. else
  445. {
  446. orderPrcEntity.GroupRoll = checkRows1.First<UltraGridRow>().Cells["PlineCode"].Value.ToString();
  447. }
  448. if (!orderPrcEntity.Bom.Equals(dtSatus.Rows[0]["BOM"].ToString()))
  449. {
  450. orderPrcEntity.GradecodeIsOk = "0";
  451. }
  452. }
  453. else if (this.custom.Equals("Zg"))
  454. {
  455. orderPrcEntity.EIsOk = dtSatus.Rows[0]["E_IS_OK"].ToString();
  456. orderPrcEntity.DIsOk = "1";
  457. orderPrcEntity.GradecodeIsOk = dtSatus.Rows[0]["GRADECODE_IS_OK"].ToString();
  458. if (checkRows1.Count() == 0)
  459. {
  460. MessageUtil.ShowError("未选择任何轧管产线!");
  461. return;
  462. }
  463. orderPrcEntity.GroupRoll = checkRows1.First<UltraGridRow>().Cells["PlineCode"].Value.ToString();
  464. if (!orderPrcEntity.Bom.Equals(dtSatus.Rows[0]["BOM"].ToString()))
  465. {
  466. orderPrcEntity.GradecodeIsOk = "0";
  467. }
  468. }
  469. else if (this.custom.Equals("Grade"))
  470. {
  471. orderPrcEntity.EIsOk = dtSatus.Rows[0]["E_IS_OK"].ToString();
  472. orderPrcEntity.DIsOk = dtSatus.Rows[0]["D_IS_OK"].ToString();
  473. orderPrcEntity.GradecodeIsOk = "1";
  474. if (checkRows1.Count() == 0)
  475. {
  476. if (ultraGridDPine.Rows.Count > 0)
  477. {
  478. orderPrcEntity.GroupRoll = ultraGridDPine.Rows[0].Cells["PlineCode"].Value.ToString();
  479. }
  480. }
  481. else
  482. {
  483. orderPrcEntity.GroupRoll = checkRows1.First<UltraGridRow>().Cells["PlineCode"].Value.ToString();
  484. }
  485. }
  486. else
  487. {
  488. if (checkRows1.Count() == 0)
  489. {
  490. MessageUtil.ShowError("未选择任何轧管产线!");
  491. return;
  492. }
  493. orderPrcEntity.GroupRoll = checkRows1.First<UltraGridRow>().Cells["PlineCode"].Value.ToString();
  494. orderPrcEntity.EIsOk = "1";
  495. orderPrcEntity.DIsOk = "1";
  496. orderPrcEntity.GradecodeIsOk = "1";
  497. }
  498. #endregion
  499. if (dtSatus.Rows[0]["PROCESS_SEQ"].ToString().Contains("D")
  500. && !orderPrcEntity.GroupRoll.Trim().Equals("C072")
  501. && !outsStlPipeFl.Equals("121903")
  502. && !outsStlPipeFl.Equals("121902"))
  503. {
  504. #region 合同量转换
  505. OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
  506. InOrdParamEntity inOrdParam = new InOrdParamEntity();
  507. PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
  508. DateTime date = new DateTime();
  509. string errMessage = "";
  510. double putRate = 1;
  511. if (DateTime.TryParse(dtSatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
  512. {
  513. //投料率
  514. putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
  515. }
  516. inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, dtSatus.Rows[0]["INDEX_SEQ"].ToString(),
  517. ordLnDlyPk, plnDivideId, orderPrcEntity.GroupRoll, orderPrcEntity.Bom,
  518. dtSatus.Rows[0]["CODE_JG"].ToString(), putRate);
  519. if (!ordAmountCal.isRightParam(inOrdParam, desginKey, dtSatus.Rows[0]["CODE_JG"].ToString(),
  520. orderPrcEntity.Bom, orderPrcEntity.GroupRoll, out errMessage))
  521. {
  522. MessageUtil.ShowError(errMessage);
  523. return;
  524. }
  525. ordAmountCal.InEnity = inOrdParam;
  526. outOrdParam = ordAmountCal.getOrdAmount();
  527. if (outOrdParam.ErrCode == -1)
  528. {
  529. MessageUtil.ShowError("合同量转换出错(" + outOrdParam.ErrMessage + ")。");
  530. return;
  531. }
  532. orderPrcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
  533. orderPrcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
  534. orderPrcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
  535. orderPrcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
  536. orderPrcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
  537. orderPrcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
  538. orderPrcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
  539. orderPrcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
  540. orderPrcEntity.CutNumP = outOrdParam.CutNumP.ToString();
  541. orderPrcEntity.RollLength = outOrdParam.RollLength.ToString();
  542. orderPrcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
  543. orderPrcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
  544. orderPrcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
  545. orderPrcEntity.AimOutdiameter = outOrdParam.AimOutdiameter.ToString();
  546. orderPrcEntity.FeedRate = putRate.ToString();
  547. orderPrcEntity.Coefficient = outOrdParam.Coefficient.ToString();
  548. orderPrcEntity.CoefficientMin = outOrdParam.CoefficientMin.ToString();
  549. orderPrcEntity.PlanPMainMin = outOrdParam.PlanPMainMin.ToString();
  550. orderPrcEntity.AimWtEnd = outOrdParam.AimWtEnd.ToString();
  551. orderPrcEntity.WeightKzM = outOrdParam.WeightKzM.ToString();
  552. #endregion
  553. }
  554. orderPrcEntity.OrdLnDlyPk = ordLnDlyPk;
  555. orderPrcEntity.PlnDivideId = plnDivideId;
  556. int succeed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.updateSaleordProcBomDp",
  557. new object[] { orderPrcEntity }, this.ob);
  558. if (succeed > 0)
  559. {
  560. MessageUtil.ShowTips("保存成功。");
  561. }
  562. }
  563. catch (Exception ex)
  564. {
  565. if (!(ex is MESException))
  566. {
  567. MessageUtil.ShowError(ex.Message);
  568. }
  569. }
  570. DoQuery();
  571. }
  572. /// <summary>
  573. /// 查询BOM向下可选产线
  574. /// </summary>
  575. /// <param name="sender"></param>
  576. /// <param name="e"></param>
  577. private void ultraGridBom_AfterRowActivate(object sender, EventArgs e)
  578. {
  579. string inMaterialNo = ultraGridBom.ActiveRow.Cells["DInMaterialNo"].Value.ToString();
  580. string outMaterialNo = ultraGridBom.ActiveRow.Cells["DOutMaterialNo"].Value.ToString();
  581. DoQueryPline(inMaterialNo, outMaterialNo);
  582. }
  583. /// <summary>
  584. /// 控制单选
  585. /// </summary>
  586. /// <param name="sender"></param>
  587. /// <param name="e"></param>
  588. private void ultraGridBom_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  589. {
  590. if (e.Cell.Column.Key.Equals("CHC"))
  591. {
  592. if (Convert.ToBoolean(e.Cell.Row.Cells["CHC"].Text))
  593. {
  594. foreach (UltraGridRow uRow in ultraGridBom.Rows)
  595. {
  596. if (uRow != e.Cell.Row)
  597. {
  598. uRow.Cells["CHC"].Value = false;
  599. }
  600. }
  601. }
  602. else
  603. {
  604. e.Cell.Row.Cells["CHC"].Value = true;
  605. }
  606. }
  607. }
  608. /// <summary>
  609. /// 控制单选
  610. /// </summary>
  611. /// <param name="sender"></param>
  612. /// <param name="e"></param>
  613. private void ultraGridDPine_CellChange(object sender, CellEventArgs e)
  614. {
  615. if (e.Cell.Column.Key.Equals("CHC"))
  616. {
  617. if (Convert.ToBoolean(e.Cell.Row.Cells["CHC"].Text))
  618. {
  619. foreach (UltraGridRow uRow in this.ultraGridDPine.Rows)
  620. {
  621. if (uRow != e.Cell.Row)
  622. {
  623. uRow.Cells["CHC"].Value = false;
  624. }
  625. }
  626. }
  627. else
  628. {
  629. e.Cell.Row.Cells["CHC"].Value = true;
  630. }
  631. }
  632. }
  633. }
  634. }