FrmJgZYPlnEdit.cs 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.IO;
  8. using System.Windows.Forms;
  9. using System.Collections;
  10. using Infragistics.Win;
  11. using Infragistics.Win.UltraWinGrid;
  12. using CoreFS.CA06;
  13. using Core.Mes.Client.Comm;
  14. using Core.Mes.Client.Comm.Server;
  15. using Core.Mes.Client.Comm.Control;
  16. using com.steering.pss.plan.jgtransa.mode;
  17. namespace Core.StlMes.Client.Plan.Order
  18. {
  19. /// <summary>
  20. /// 接箍作业计划编辑
  21. /// </summary>
  22. public partial class FrmJgZYPlnEdit : FrmBase
  23. {
  24. //用于计算可分离容器的大小。
  25. private int _splitterDistance = 0;
  26. private bool _groupBox2ExpandedChanged = false;
  27. /// <summary>
  28. /// 接箍切断作业计划
  29. /// </summary>
  30. private PlnZyJgCutEntity arguments = new PlnZyJgCutEntity();
  31. /// <summary>
  32. /// 接箍加工作业计划
  33. /// </summary>
  34. private List<PlnZyJgProEntity> listJgPro = new List<PlnZyJgProEntity>();
  35. private List<PlnZyJgProEntity> listTes = new List<PlnZyJgProEntity>();
  36. /// <summary>
  37. /// 接箍料米单重(t/m)
  38. /// </summary>
  39. private double jgblWeightOfmi = 0;
  40. public FrmJgZYPlnEdit()
  41. {
  42. InitializeComponent();
  43. }
  44. /// <summary>
  45. /// 构造
  46. /// </summary>
  47. /// <param name="openbase"></param>
  48. public FrmJgZYPlnEdit(OpeBase openbase)
  49. {
  50. this.ob = openbase;
  51. InitializeComponent();
  52. }
  53. private void FrmJgZYPlnEdit_Load(object sender, EventArgs e)
  54. {
  55. init();
  56. }
  57. /// <summary>
  58. /// 初始化加载
  59. /// </summary>
  60. private void init()
  61. {
  62. this.ctrlJGBATCH_ID.Value = arguments.CutBatchId;
  63. this.ultraTimePlanStart.DateTime = DateTime.Parse(arguments.PlanTime);
  64. this.ultraTextBatchNO.Value = arguments.BatchNo;
  65. this.ultraTextStoveNo.Value = arguments.JudgeStoveno;
  66. doQueryJgBl();
  67. if (!arguments.ReqBlid.Equals(""))
  68. {
  69. //this.ctrlJGBL_WEIGHT.Value = Double.Parse(arguments.JgblWeight);
  70. //this.ctrlJGBL_NUM.Value = Int32.Parse(arguments.JgblNum);
  71. this.ultraTextJgGroup.Value = arguments.GroupCut;
  72. this.ultraNumPlanUseTime.Value = Int32.Parse(arguments.PlanUsetime);
  73. foreach (UltraGridRow uRow in ultraGrid1.Rows)
  74. {
  75. if (uRow.Cells["REQ_BL_ID"].Value.ToString().Equals(arguments.ReqBlid))
  76. {
  77. ultraGrid1.ActiveRow = uRow;
  78. }
  79. }
  80. foreach (UltraGridRow uRow in ultraGrid4.Rows)
  81. {
  82. for (int i = 0; i < listJgPro.Count; i++)
  83. {
  84. if (listJgPro[i].JgOrderno.Equals(uRow.Cells["JG_ORDERNO"].Value.ToString()))
  85. {
  86. uRow.Cells["GROUP_JGX"].Value = listJgPro[i].GroupJgx;
  87. if (!listJgPro[i].PlanTime.Equals(""))
  88. {
  89. uRow.Cells["PLAN_TIME"].Value = Convert.ToDateTime(listJgPro[i].PlanTime);
  90. }
  91. uRow.Cells["PLAN_USETIME"].Value = listJgPro[i].PlanUsetime;
  92. uRow.Cells["PLAN_NUM"].Value = listJgPro[i].PlanProcNum;
  93. uRow.Cells["CHECK"].Value = true;
  94. break;
  95. }
  96. }
  97. }
  98. }
  99. DataTable dtMaterial = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryBaseMaterial",
  100. new object[] { }, this.ob);
  101. this.ultraComboMATERIAL_NO.DataSource = dtMaterial;
  102. this.ultraComboMATERIAL_NO.DisplayMember = "MATERIAL_DESC";
  103. this.ultraComboMATERIAL_NO.ValueMember = "MATERIAL_NO";
  104. this.ultraComboMATERIAL_NO.SelectedIndex = 0;
  105. DataTable dtSteelCode = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryBaseSteel",
  106. new object[] { }, this.ob);
  107. this.ultraComboSTEELCODE.DataSource = dtSteelCode;
  108. this.ultraComboSTEELCODE.DisplayMember = "STEELNAME";
  109. this.ultraComboSTEELCODE.ValueMember = "STEELCODE";
  110. this.ultraComboSTEELCODE.SelectedIndex = 0;
  111. }
  112. /// <summary>
  113. /// 接箍切断作业计划
  114. /// </summary>
  115. internal PlnZyJgCutEntity Arguments
  116. {
  117. get { return arguments; }
  118. set { arguments = value; }
  119. }
  120. /// <summary>
  121. /// 接箍加工作业计划
  122. /// </summary>
  123. internal List<PlnZyJgProEntity> ListJgPro
  124. {
  125. get { return listJgPro; }
  126. set { listJgPro = value; }
  127. }
  128. /// <summary>
  129. /// 保存和退出操作
  130. /// </summary>
  131. /// <param name="sender"></param>
  132. /// <param name="e"></param>
  133. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  134. {
  135. switch (e.Tool.Key)
  136. {
  137. case "Update":
  138. doUpdate();
  139. break;
  140. case "Exit":
  141. doExit();
  142. break;
  143. }
  144. }
  145. /// <summary>
  146. /// 查询接箍备料需求
  147. /// </summary>
  148. private void doQueryJgBl()
  149. {
  150. try
  151. {
  152. DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryBlRequire",
  153. new object[] { }, this.ob);
  154. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  155. //GridHelper.RefreshAndAutoSize(ultraGrid1);
  156. }
  157. catch (Exception ex)
  158. {
  159. if (ex is MESException)
  160. {
  161. MessageBox.Show(((MESException)ex).ExceptionInfo);
  162. }
  163. else
  164. {
  165. MessageBox.Show(ex.Message);
  166. }
  167. }
  168. }
  169. private void buttonQueryBl_Click(object sender, EventArgs e)
  170. {
  171. doQueryJgBl();
  172. }
  173. /// <summary>
  174. /// 查询接箍需求对应接箍合同
  175. /// </summary>
  176. /// <param name="sender"></param>
  177. /// <param name="e"></param>
  178. private void ultraGrid1_BeforeRowActivate(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
  179. {
  180. try
  181. {
  182. this.ultraNumJgBlAimlenth.Value = Convert.ToDouble(e.Row.Cells["AIMLENGTH"].Value);
  183. this.ctrlCODE_JG_BL.Value = e.Row.Cells["CODE_JG_BL"].Value.ToString();
  184. ///接箍料米单重
  185. double outdiame = Convert.ToDouble(e.Row.Cells["OUTDIAMETER"].Value);
  186. double wallthick = Convert.ToDouble(e.Row.Cells["WALLTHICK"].Value);
  187. jgblWeightOfmi = PlanComm.WeightOfMi(outdiame, wallthick);
  188. DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryrelation",
  189. new object[] { e.Row.Cells["REQ_BL_ID"].Value.ToString() }, this.ob);
  190. if (dt != null && dt.Rows.Count > 0)
  191. {
  192. string[] arr = new string[] { "CHECK", "GROUP_JGX", "PLAN_TIME", "PLAN_USETIME", "PLAN_NUM" };
  193. GridHelper.CopyDataToDatatable(dt, dataTable4, true);
  194. PlanComm.setGridActivation(ultraGrid4.DisplayLayout.Bands[0], arr);
  195. //GridHelper.RefreshAndAutoSize(ultraGrid4);
  196. this.ctrlAIMLENGTH.Value = Convert.ToDouble(dt.Rows[0]["AIMLENGTH"]);
  197. }
  198. this.checkBoxReqBLID.Checked = true;
  199. this.ultraTextReqBLID.Value = e.Row.Cells["REQ_BL_ID"].Value.ToString();
  200. queryStock();
  201. }
  202. catch (Exception ex)
  203. {
  204. if (ex is MESException)
  205. {
  206. MessageBox.Show(((MESException)ex).ExceptionInfo);
  207. }
  208. else
  209. {
  210. MessageBox.Show(ex.Message);
  211. }
  212. }
  213. }
  214. /// <summary>
  215. /// 保存
  216. /// </summary>
  217. private void doUpdate()
  218. {
  219. try
  220. {
  221. ArrayList paramBl = new ArrayList();
  222. ArrayList paramRel = new ArrayList();
  223. ArrayList paramMat = new ArrayList();
  224. bool isChecked = false;
  225. bool isRelChecked = false;
  226. int Jglnum = 0;
  227. //PlnZyJgCutEntity arguments = new PlnZyJgCutEntity();
  228. //List<PlnZyJgProEntity> listJgPro = new List<PlnZyJgProEntity>();
  229. listTes.Clear();
  230. #region 更新接箍作业计划信息
  231. arguments.PlineCode = "";//接箍产线代码
  232. arguments.PlineName = "";//接箍产线名称
  233. arguments.ReqBlid = ultraGrid1.ActiveRow.Cells["REQ_BL_ID"].Value.ToString();//备料需求号
  234. arguments.JudgeStoveno = this.ultraTextStoveNo.Text.Trim().ToString();//判定炉号
  235. arguments.BatchNo = this.ultraTextBatchNO.Text.Trim().ToString();//性能批号
  236. arguments.WlIdin = "";//投入物料编码
  237. arguments.CodeJgbl = ultraGrid1.ActiveRow.Cells["CODE_JG_BL"].Value.ToString();//接箍备料码
  238. arguments.SteelCode = ultraGrid1.ActiveRow.Cells["STEELCODE"].Value.ToString();//钢级(牌号)代码
  239. arguments.SteelName = ultraGrid1.ActiveRow.Cells["STEELNAME"].Value.ToString();//钢级(牌号)名称
  240. arguments.OutdiAmeterBl = ultraGrid1.ActiveRow.Cells["OUTDIAMETER"].Value.ToString();//接箍料外径
  241. arguments.WallthickBl = ultraGrid1.ActiveRow.Cells["WALLTHICK"].Value.ToString();//接箍料壁厚
  242. arguments.JgblLength = ultraGrid1.ActiveRow.Cells["AIMLENGTH"].Value.ToString();//接箍料长度
  243. arguments.JgLength = ultraGrid4.ActiveRow.Cells["AIMLENGTH"].Value.ToString();//接箍坯料长度
  244. //每支可切接箍坯料
  245. double jgbllen = Convert.ToDouble(arguments.JgblLength);
  246. double jglen = Convert.ToDouble(arguments.JgLength);
  247. if ((jgbllen % (jglen / 1000)) == 0)
  248. {
  249. arguments.CutNumeach = ((int)(jgbllen * 1000 / jglen)).ToString();
  250. }
  251. else
  252. {
  253. arguments.CutNumeach = ((int)(jgbllen * 1000 / jglen) + 1).ToString();
  254. }
  255. arguments.JgblWeight = this.ctrlJGBL_WEIGHT.Value.ToString();//接箍料总重量
  256. arguments.JgblNum = this.ctrlJGBL_NUM.Value.ToString();//接箍料总支数
  257. arguments.CutNumtot = (Convert.ToInt32(arguments.CutNumeach)
  258. * Convert.ToInt32(this.ctrlJGBL_NUM.Value)).ToString();//可切接箍坯料总个数
  259. arguments.GroupCut = this.ultraTextJgGroup.Text.Trim().ToString();//切断加工组
  260. arguments.PlanTime = this.ultraTimePlanStart.Value.ToString();//计划开始时间
  261. arguments.PlanUsetime = this.ultraNumPlanUseTime.Value.ToString();//计划耗时(分)
  262. //arguments.CutBatchId = cutbatch;//切断作业批次号
  263. #endregion
  264. foreach (UltraGridRow uRow in ultraGrid4.Rows)
  265. {
  266. if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
  267. {
  268. if (uRow.Cells["PLAN_NUM"].Value == null || uRow.Cells["PLAN_NUM"].Value.ToString().Equals("0"))
  269. {
  270. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("接箍合同:"+
  271. uRow.Cells["JG_ORDERNO"].Value.ToString() + "计划排接箍个数未知!");
  272. return;
  273. }
  274. PlnZyJgProEntity arguJgPro = new PlnZyJgProEntity();
  275. DataTable dtJgBase = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.queryJgBase",
  276. new object[] { uRow.Cells["CODE_JG"].Value.ToString() }, this.ob);
  277. if (dtJgBase != null && dtJgBase.Rows.Count > 0)
  278. {
  279. #region 新增接箍加工作业计划
  280. arguJgPro.CoupcutBatchId = arguments.CutBatchId;//切断作业批次号
  281. arguJgPro.JgOrderno = uRow.Cells["JG_ORDERNO"].Value.ToString();//接箍合同号
  282. arguJgPro.PlineCode = "";//接箍产线代码
  283. arguJgPro.PlineName = "";//接箍产线名称
  284. arguJgPro.ReqBlid = uRow.Cells["REQ_BL_ID"].Value.ToString();//接箍料需求号
  285. arguJgPro.HeatNo = this.ultraTextStoveNo.Text.Trim().ToString();//坯料来源炉号
  286. arguJgPro.BatchNo = this.ultraTextBatchNO.Text.Trim().ToString();//坯料来源性能批号
  287. arguJgPro.CodeJg = uRow.Cells["CODE_JG"].Value.ToString();//接箍码
  288. arguJgPro.OutDiameter = uRow.Cells["OUTDIAMETER"].Value.ToString();//外径
  289. arguJgPro.WallThick = uRow.Cells["WALLTHICK"].Value.ToString();//壁厚
  290. arguJgPro.AimLength = uRow.Cells["AIMLENGTH"].Value.ToString();//接箍长度
  291. arguJgPro.ModelCode = dtJgBase.Rows[0]["MODEL_CODE"].ToString();//扣型代码
  292. arguJgPro.PrdcrNo = queryPrdcrNo(arguJgPro.CodeJg);//监制编号
  293. if (isMonitor(arguJgPro.PrdcrNo, "H"))
  294. {
  295. //有接箍监制
  296. arguJgPro.IfMonitorJg = "1";
  297. }
  298. else
  299. {
  300. arguJgPro.IfMonitorJg = "0";
  301. }
  302. if (uRow.Cells["PLAN_NUM"].Value != null)
  303. {
  304. arguJgPro.PlanProcNum = uRow.Cells["PLAN_NUM"].Value.ToString();//计划加工个数
  305. }
  306. else
  307. {
  308. arguJgPro.PlanProcNum = "0";
  309. }
  310. arguJgPro.PlanStatus = "0";//计划状态
  311. arguJgPro.GroupJgx = uRow.Cells["GROUP_JGX"].Text.Trim();
  312. if (uRow.Cells["PLAN_TIME"].Value != null)
  313. {
  314. arguJgPro.PlanTime = Convert.ToDateTime(uRow.Cells["PLAN_TIME"].Value).ToString("yyyy-MM-dd HH:mm:ss");
  315. }
  316. if (uRow.Cells["PLAN_USETIME"].Value != null)
  317. {
  318. arguJgPro.PlanUsetime = uRow.Cells["PLAN_USETIME"].Value.ToString();
  319. }
  320. else
  321. {
  322. arguJgPro.PlanUsetime = "0";
  323. }
  324. for (int i = 0; i < listJgPro.Count; i++)
  325. {
  326. if (listJgPro[i].JgOrderno.Equals(arguJgPro.JgOrderno))
  327. {
  328. arguJgPro.CreateName = listJgPro[i].CreateName;
  329. arguJgPro.CreateTime = listJgPro[i].CreateTime;
  330. }
  331. }
  332. arguJgPro.UpdateName = UserInfo.GetUserName();//修改人
  333. arguJgPro.UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//修改时间
  334. listTes.Add(arguJgPro);
  335. #endregion
  336. //接箍料明细表更新
  337. ArrayList param = new ArrayList();
  338. if (uRow.Cells["PLAN_NUM"].Value != null)
  339. {
  340. param.Add(uRow.Cells["PLAN_NUM"].Value.ToString());
  341. }
  342. else
  343. {
  344. param.Add("0");
  345. }
  346. param.Add(uRow.Cells["JG_ORDERNO"].Value.ToString());
  347. param.Add(uRow.Cells["REQ_BL_ID"].Value.ToString());
  348. paramRel.Add(param);
  349. }
  350. isRelChecked = true;
  351. }
  352. }
  353. if (!isRelChecked)
  354. {
  355. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("未指定要排产的接箍合同!");
  356. return;
  357. }
  358. //接箍料需求更新接箍切断计划重量、支数
  359. paramBl.Add(arguments.JgblWeight);
  360. paramBl.Add(arguments.JgblNum);
  361. paramBl.Add(arguments.ReqBlid);
  362. //反写库存表,记录作业批次号
  363. foreach (UltraGridRow uRow in ultraGrid2.Rows)
  364. {
  365. if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
  366. {
  367. ArrayList param = new ArrayList();
  368. if (!uRow.Cells["ACT_DIMATER"].Value.ToString().Equals(arguments.OutdiAmeterBl)
  369. || !uRow.Cells["ACT_HEIGHT"].Value.ToString().Equals(arguments.WallthickBl))
  370. {
  371. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("选取的库存管:"
  372. + uRow.Cells["MAT_NO"].Value.ToString() + "与接箍料需求的管外径、壁厚不同!");
  373. return;
  374. }
  375. param.Add(ultraGrid1.ActiveRow.Cells["REQ_BL_ID"].Value.ToString());
  376. param.Add("1");
  377. param.Add(arguments.CutBatchId);
  378. param.Add(uRow.Cells["MAT_NO"].Value.ToString());
  379. paramMat.Add(param);
  380. isChecked = true;
  381. Jglnum++;
  382. }
  383. }
  384. if (isChecked)
  385. {
  386. if (Jglnum < Convert.ToInt32(this.ctrlJGBL_NUM.Value))
  387. {
  388. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("库存管选取支数少于接箍切断计划支数!");
  389. return;
  390. }
  391. int isSucceed = ServerHelper.SetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.updateJgCutplan",
  392. new object[] { arguments, listTes, paramBl, paramRel, paramMat }, this.ob);
  393. if (isSucceed > 0)
  394. {
  395. this.Close();
  396. }
  397. else
  398. {
  399. Core.Mes.Client.Comm.Tool.MessageUtil.ShowError("保存失败!");
  400. }
  401. }
  402. else
  403. {
  404. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请选择炉批号!");
  405. return;
  406. }
  407. }
  408. catch (Exception ex)
  409. {
  410. if (ex is MESException)
  411. {
  412. MessageBox.Show(((MESException)ex).ExceptionInfo);
  413. }
  414. else
  415. {
  416. MessageBox.Show(ex.Message);
  417. }
  418. }
  419. }
  420. /// <summary>
  421. /// 取消并退出
  422. /// </summary>
  423. private void doExit()
  424. {
  425. try
  426. {
  427. if (Core.Mes.Client.Comm.Tool.MessageUtil.ShowYesNoAndWarning(
  428. "是否确认删除计划!").ToString().Equals("No"))
  429. {
  430. return;
  431. }
  432. ArrayList param = new ArrayList();
  433. param.Add(arguments.CutBatchId);
  434. int isDel = ServerHelper.SetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.deleteJgCutPln",
  435. new object[] { param }, this.ob);
  436. if (isDel > 0)
  437. {
  438. this.Close();
  439. }
  440. else
  441. {
  442. Core.Mes.Client.Comm.Tool.MessageUtil.ShowError("删除作业计划失败!");
  443. }
  444. }
  445. catch (Exception ex)
  446. {
  447. if (ex is MESException)
  448. {
  449. MessageBox.Show(((MESException)ex).ExceptionInfo);
  450. }
  451. else
  452. {
  453. MessageBox.Show(ex.Message);
  454. }
  455. }
  456. }
  457. /// <summary>
  458. /// 获取计划排接箍的个数
  459. /// </summary>
  460. /// <returns></returns>
  461. private int getPlanJgNum()
  462. {
  463. int planNum = 0;
  464. foreach (UltraGridRow uRow in ultraGrid4.Rows)
  465. {
  466. if (Convert.ToBoolean(uRow.Cells["CHECK"].Text)
  467. && uRow.Cells["PLAN_NUM"].Value != null)
  468. {
  469. int planJgNum = 0;
  470. int.TryParse(uRow.Cells["PLAN_NUM"].Value.ToString(), out planJgNum);
  471. planNum = planNum + planJgNum;
  472. }
  473. }
  474. return planNum;
  475. }
  476. /// <summary>
  477. /// 获取接箍料支数
  478. /// </summary>
  479. /// <returns></returns>
  480. private int getJgbl_Num()
  481. {
  482. double JgblAimlenth = Convert.ToDouble(this.ultraNumJgBlAimlenth.Value);//接箍料目标长度(m)
  483. double Aimlenth = Convert.ToDouble(this.ctrlAIMLENGTH.Value) / 1000; //接箍坯料长度(m)
  484. double LenJgSum = getPlanJgNum() * Aimlenth;
  485. if (LenJgSum % JgblAimlenth == 0)
  486. {
  487. return (int)(LenJgSum / JgblAimlenth);
  488. }
  489. else
  490. {
  491. return (int)(LenJgSum / JgblAimlenth) + 1;
  492. }
  493. }
  494. /// <summary>
  495. /// 接箍与接箍料关系表全选
  496. /// </summary>
  497. /// <param name="sender"></param>
  498. /// <param name="e"></param>
  499. private void ultraGrid4_BeforeHeaderCheckStateChanged(object sender, BeforeHeaderCheckStateChangedEventArgs e)
  500. {
  501. if (e.Column.Key.Equals("CHECK") && ultraGrid1.Rows.Count > 0)
  502. {
  503. int JgblNum = 0;
  504. JgblNum = getJgbl_Num();
  505. if (JgblNum >= 0)
  506. {
  507. this.ctrlJGBL_NUM.Value = JgblNum;
  508. this.ctrlJGBL_WEIGHT.Value = JgblNum * jgblWeightOfmi * Convert.ToDouble(this.ultraNumJgBlAimlenth.Value);
  509. }
  510. }
  511. }
  512. /// <summary>
  513. /// 接箍与接箍料关系表单选
  514. /// </summary>
  515. /// <param name="sender"></param>
  516. /// <param name="e"></param>
  517. private void ultraGrid4_CellChange(object sender, CellEventArgs e)
  518. {
  519. if (e.Cell.Column.Key.Equals("CHECK"))
  520. {
  521. if (Convert.ToBoolean(e.Cell.Row.Cells["CHECK"].Text))
  522. {
  523. int jgplan_num = 0;
  524. int num_jg = 0;
  525. if (e.Cell.Row.Cells["JGPLAN_NUM"].Value != null)
  526. {
  527. int.TryParse(e.Cell.Row.Cells["JGPLAN_NUM"].Value.ToString(), out jgplan_num);
  528. }
  529. if (e.Cell.Row.Cells["NUM_JG"].Value != null)
  530. {
  531. int.TryParse(e.Cell.Row.Cells["NUM_JG"].Value.ToString(), out num_jg);
  532. }
  533. if (num_jg > jgplan_num)
  534. {
  535. e.Cell.Row.Cells["PLAN_NUM"].Value = num_jg - jgplan_num;
  536. }
  537. else
  538. {
  539. e.Cell.Row.Cells["PLAN_NUM"].Value = 0;
  540. }
  541. }
  542. else
  543. {
  544. e.Cell.Row.Cells["PLAN_NUM"].Value = 0;
  545. }
  546. int JgblNum = getJgbl_Num();
  547. this.ctrlJGBL_NUM.Value = JgblNum;
  548. this.ctrlJGBL_WEIGHT.Value = JgblNum * jgblWeightOfmi * Convert.ToDouble(this.ultraNumJgBlAimlenth.Value);
  549. }
  550. }
  551. /// <summary>
  552. /// 接箍与接箍料关系表计划排个数变化时
  553. /// </summary>
  554. /// <param name="sender"></param>
  555. /// <param name="e"></param>
  556. private void ultraGrid4_AfterCellUpdate(object sender, CellEventArgs e)
  557. {
  558. if (e.Cell.Column.Key.Equals("PLAN_NUM") && Convert.ToBoolean(e.Cell.Row.Cells["CHECK"].Text))
  559. {
  560. int JgblNum = getJgbl_Num();
  561. this.ctrlJGBL_NUM.Value = JgblNum;
  562. this.ctrlJGBL_WEIGHT.Value = JgblNum * jgblWeightOfmi * Convert.ToDouble(this.ultraNumJgBlAimlenth.Value);
  563. }
  564. }
  565. /// <summary>
  566. /// 查询对应合同监制编号
  567. /// </summary>
  568. /// <param name="codeJg">接箍码</param>
  569. /// <returns></returns>
  570. private string queryPrdcrNo(string codeJg)
  571. {
  572. //查询接箍加工对应接箍合同
  573. DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryJgOrder",
  574. new object[] { codeJg }, this.ob);
  575. if (dt != null && dt.Rows.Count > 0)
  576. {
  577. ArrayList param = new ArrayList();
  578. param.Add(dt.Rows[0]["ORDER_NO"].ToString());
  579. param.Add(dt.Rows[0]["ORDER_SEQ"].ToString());
  580. param.Add(dt.Rows[0]["DELIVERY_NO"].ToString());
  581. DataTable dtSale = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.querySaleByPrimary",
  582. new object[] { param }, this.ob);
  583. if (dtSale != null && dtSale.Rows.Count > 0)
  584. {
  585. return dtSale.Rows[0]["PRDCR_NO"].ToString();
  586. }
  587. }
  588. return "";
  589. }
  590. /// <summary>
  591. /// 工序是否需要监制
  592. /// </summary>
  593. /// <param name="procrNo">监制编号</param>
  594. /// <param name="proCode">工序代码</param>
  595. /// <returns></returns>
  596. private bool isMonitor(string procrNo, string proCode)
  597. {
  598. bool ismonitor = false;
  599. DataTable dt = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.queryOrderPrdcr",
  600. new object[] { procrNo }, this.ob);
  601. if (dt != null && dt.Rows.Count > 0)
  602. {
  603. foreach (DataRow dr in dt.Rows)
  604. {
  605. if (dr["PROCESS_CDOE"].ToString().Equals(proCode))
  606. {
  607. ismonitor = true;
  608. }
  609. }
  610. }
  611. return ismonitor;
  612. }
  613. /// <summary>
  614. /// 查询物流库存表
  615. /// </summary>
  616. /// <param name="sender"></param>
  617. /// <param name="e"></param>
  618. private void button2_Click(object sender, EventArgs e)
  619. {
  620. queryStock();
  621. }
  622. /// <summary>
  623. /// 查询库存信息
  624. /// </summary>
  625. private void queryStock()
  626. {
  627. try
  628. {
  629. ArrayList param = new ArrayList();
  630. string strReqBLID = ""; //备料需求编号
  631. string strBATCH_NO = ""; //炉批号
  632. string strMATERIAL_NO = ""; //物料码
  633. string strSTOVE_NO = ""; //熔炼炉号
  634. string strSTEELCODE = ""; //钢级编码
  635. string strACT_DIMATER = ""; //实际外径
  636. string strACT_HEIGHT = ""; //实际壁厚
  637. if (checkBoxReqBLID.Checked)
  638. {
  639. strReqBLID = this.ultraTextReqBLID.Text.Trim();
  640. }
  641. if (this.checkBoxBATCH_NO.Checked)
  642. {
  643. strBATCH_NO = this.ultraTextBATCH_NO.Text.Trim();
  644. }
  645. if (this.checkBoxMATERIAL_NO.Checked)
  646. {
  647. strMATERIAL_NO = this.ultraComboMATERIAL_NO.Value.ToString();
  648. }
  649. if (this.checkBoxSTOVE_NO.Checked)
  650. {
  651. strSTOVE_NO = this.ultraTextSTOVE_NO.Text.Trim();
  652. }
  653. if (this.checkBoxSTEELCODE.Checked)
  654. {
  655. strSTEELCODE = this.ultraComboSTEELCODE.Value.ToString();
  656. }
  657. if (this.checkBoxACT_DIMATER.Checked)
  658. {
  659. strACT_DIMATER = this.ultraNumberACT_DIMATER.Value.ToString();
  660. }
  661. if (this.checkBoxACT_HEIGHT.Checked)
  662. {
  663. strACT_HEIGHT = this.ultraNumberACT_HEIGHT.Value.ToString();
  664. }
  665. //查询条件
  666. param.Add(this.ctrlJGBATCH_ID.Text.Trim());
  667. param.Add(strReqBLID);
  668. param.Add(strReqBLID);
  669. param.Add(strReqBLID);
  670. param.Add(strBATCH_NO);
  671. param.Add(strBATCH_NO);
  672. param.Add(strBATCH_NO);
  673. param.Add(strMATERIAL_NO);
  674. param.Add(strMATERIAL_NO);
  675. param.Add(strMATERIAL_NO);
  676. param.Add(strSTOVE_NO);
  677. param.Add(strSTOVE_NO);
  678. param.Add(strSTOVE_NO);
  679. param.Add(strSTEELCODE);
  680. param.Add(strSTEELCODE);
  681. param.Add(strSTEELCODE);
  682. param.Add(strACT_DIMATER);
  683. param.Add(strACT_DIMATER);
  684. param.Add(strACT_DIMATER);
  685. param.Add(strACT_HEIGHT);
  686. param.Add(strACT_HEIGHT);
  687. param.Add(strACT_HEIGHT);
  688. DataTable dt = ServerHelper.GetData("com.steering.pss.plan.jgtransa.CoreJgOperatPln.queryMatzcm",
  689. new object[] { param }, this.ob);
  690. GridHelper.CopyDataToDatatable(dt, dataTable2, true);
  691. PlanComm.setGridActivation(ultraGrid2.DisplayLayout.Bands[0], "CHECK");
  692. foreach (UltraGridRow uRow in ultraGrid2.Rows)
  693. {
  694. if (uRow.Cells["IF_BATCHED_JG"].Value.ToString().Equals("是") &&
  695. uRow.Cells["COUPCUT_BATCH_ID"].Value.ToString().Equals(this.ctrlJGBATCH_ID.Text.Trim()))
  696. {
  697. uRow.Cells["CHECK"].Value = true;
  698. }
  699. }
  700. }
  701. catch (Exception ex)
  702. {
  703. if (ex is MESException)
  704. {
  705. MessageBox.Show(((MESException)ex).ExceptionInfo);
  706. }
  707. else
  708. {
  709. MessageBox.Show(ex.Message);
  710. }
  711. }
  712. }
  713. private void checkBoxReqBLID_CheckedChanged(object sender, EventArgs e)
  714. {
  715. if (this.checkBoxReqBLID.Checked)
  716. {
  717. this.ultraTextReqBLID.Enabled = true;
  718. }
  719. else
  720. {
  721. this.ultraTextReqBLID.Enabled = false;
  722. }
  723. }
  724. private void checkBoxBATCH_NO_CheckedChanged(object sender, EventArgs e)
  725. {
  726. if (this.checkBoxBATCH_NO.Checked)
  727. {
  728. this.ultraTextBATCH_NO.Enabled = true;
  729. }
  730. else
  731. {
  732. this.ultraTextBATCH_NO.Enabled = false;
  733. }
  734. }
  735. private void checkBoxMATERIAL_NO_CheckedChanged(object sender, EventArgs e)
  736. {
  737. if (this.checkBoxMATERIAL_NO.Checked)
  738. {
  739. this.ultraComboMATERIAL_NO.Enabled = true;
  740. }
  741. else
  742. {
  743. this.ultraComboMATERIAL_NO.Enabled = false;
  744. }
  745. }
  746. private void checkBoxSTOVE_NO_CheckedChanged(object sender, EventArgs e)
  747. {
  748. if (this.checkBoxSTOVE_NO.Checked)
  749. {
  750. this.ultraTextSTOVE_NO.Enabled = true;
  751. }
  752. else
  753. {
  754. this.ultraTextSTOVE_NO.Enabled = false;
  755. }
  756. }
  757. private void checkBoxSTEELCODE_CheckedChanged(object sender, EventArgs e)
  758. {
  759. if (this.checkBoxSTEELCODE.Checked)
  760. {
  761. this.ultraComboSTEELCODE.Enabled = true;
  762. }
  763. else
  764. {
  765. this.ultraComboSTEELCODE.Enabled = false;
  766. }
  767. }
  768. private void checkBoxACT_DIMATER_CheckedChanged(object sender, EventArgs e)
  769. {
  770. if (this.checkBoxACT_DIMATER.Checked)
  771. {
  772. this.ultraNumberACT_DIMATER.Enabled = true;
  773. }
  774. else
  775. {
  776. this.ultraNumberACT_DIMATER.Enabled = false;
  777. }
  778. }
  779. private void checkBoxACT_HEIGHT_CheckedChanged(object sender, EventArgs e)
  780. {
  781. if (this.checkBoxACT_HEIGHT.Checked)
  782. {
  783. this.ultraNumberACT_HEIGHT.Enabled = true;
  784. }
  785. else
  786. {
  787. this.ultraNumberACT_HEIGHT.Enabled = false;
  788. }
  789. }
  790. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  791. {
  792. if (e.Cell.Column.Key.Equals("CHECK") && Convert.ToBoolean(e.Cell.Row.Cells["CHECK"].Text))
  793. {
  794. bool isChecked = false;
  795. if (!e.Cell.Row.Cells["COUPCUT_BATCH_ID"].Value.ToString().Equals("")
  796. && !e.Cell.Row.Cells["COUPCUT_BATCH_ID"].Value.ToString().Equals(
  797. this.ctrlJGBATCH_ID.Text.Trim()))
  798. {
  799. e.Cell.Row.Cells["CHECK"].Value = false;
  800. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("该材料已做接箍组批!");
  801. }
  802. foreach (UltraGridRow uRow in ultraGrid2.Rows)
  803. {
  804. if (Convert.ToBoolean(uRow.Cells["CHECK"].Text) && uRow != e.Cell.Row)
  805. {
  806. isChecked = true;
  807. break;
  808. }
  809. }
  810. if (isChecked)
  811. {
  812. //如果不是同一炉号或批号,不让勾选
  813. if (!e.Cell.Row.Cells["STOVE_NO"].Value.ToString().Equals(this.ultraTextStoveNo.Text.Trim()))
  814. {
  815. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("只能选择同一炉号!");
  816. e.Cell.Row.Cells["CHECK"].Value = false;
  817. return;
  818. }
  819. if (!e.Cell.Row.Cells["BATCH_NO"].Value.ToString().Equals(this.ultraTextBatchNO.Text.Trim()))
  820. {
  821. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("只能选择同一批号!");
  822. e.Cell.Row.Cells["CHECK"].Value = false;
  823. return;
  824. }
  825. }
  826. else
  827. {
  828. this.ultraTextBatchNO.Value = e.Cell.Row.Cells["BATCH_NO"].Value.ToString();
  829. this.ultraTextStoveNo.Value = e.Cell.Row.Cells["STOVE_NO"].Value.ToString();
  830. }
  831. }
  832. }
  833. private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e)
  834. {
  835. _groupBox2ExpandedChanged = true;
  836. if (ultraExpandableGroupBox2.Expanded == false)
  837. {
  838. splitContainer1.SplitterDistance = this.Width;
  839. }
  840. else
  841. {
  842. splitContainer1.SplitterDistance = _splitterDistance;
  843. }
  844. _groupBox2ExpandedChanged = false;
  845. }
  846. private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e)
  847. {
  848. if (_groupBox2ExpandedChanged == false)
  849. {
  850. _splitterDistance = splitContainer1.SplitterDistance;
  851. if (splitContainer1.SplitterDistance >= 1)
  852. {
  853. ultraExpandableGroupBox2.Expanded = true;
  854. }
  855. }
  856. if (splitContainer1.Panel2Collapsed)
  857. {
  858. ultraExpandableGroupBox2.Visible = false;
  859. }
  860. }
  861. private void ultraGrid4_CellDataError(object sender, CellDataErrorEventArgs e)
  862. {
  863. e.RaiseErrorEvent = false ;
  864. }
  865. }
  866. }