FrmSteelHandOver.cs 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using Core.Mes.Client.Comm.Control;
  11. using Core.Mes.Client.Comm.Format;
  12. using Core.Mes.Client.Comm.Server;
  13. using Core.Mes.Client.Comm.Tool;
  14. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  15. using Core.StlMes.Client.PlnSaleOrd.工序排产;
  16. using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity;
  17. using CoreFS.CA06;
  18. using Infragistics.Win;
  19. using Infragistics.Win.UltraWinGrid;
  20. using Microsoft.Office.Interop.Excel;
  21. using DataTable = System.Data.DataTable;
  22. namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划
  23. {
  24. public partial class FrmSteelHandOver : FrmBase
  25. {
  26. public PlnSteelforfurnaceNewEntity PlnSteelforfurnaceNewEntity { get; private set; }
  27. private DataTable targerTable;
  28. private DataRow CurrentChem
  29. {
  30. get { return ucChemicalComposition.CurrentChem; }
  31. }
  32. public List<String> ShowEfPline
  33. {
  34. get
  35. {
  36. if (PlnSteelforfurnaceNewEntity == null) return new List<string>() { "" }; ;
  37. switch (PlnSteelforfurnaceNewEntity.EfPlineCode)
  38. {
  39. case "C001":
  40. return new List<string>(){"C001"};
  41. case "C003":
  42. case "C006":
  43. return new List<string>() { "C003", "C006" };
  44. default:
  45. return new List<string>() { PlnSteelforfurnaceNewEntity.EfPlineCode };
  46. }
  47. }
  48. }
  49. public FrmSteelHandOver(PlnSteelforfurnaceNewEntity plnSteelforfurnaceNewEntity, OpeBase Ob)
  50. {
  51. PlnSteelforfurnaceNewEntity = plnSteelforfurnaceNewEntity;
  52. InitializeComponent();
  53. ob = Ob;
  54. }
  55. private void FrmSteelHandOver_Load(object sender, EventArgs e)
  56. {
  57. EntityHelper.ShowGridCaption<PlnSteelforfurnaceNewEntityPlus>(ugStove.DisplayLayout.Bands[0]);
  58. EntityHelper.ShowGridCaption<CraftLg2CicEntity>(ugStove.DisplayLayout.Bands[1]);
  59. BaseHelper.setOtherColumnReadOnly(ugStove, new[] { "Check" });
  60. //绑定Valuelist 根据实体类值显示
  61. var list = SteelManagementHelper.GetValuelistLogic();
  62. SteelManagementHelper.SetGridValuelist(ref ugStove, "IfMonitorLg", ref list);
  63. list = SteelManagementHelper.GetValuelistLogic();
  64. SteelManagementHelper.SetGridValuelist(ref ugStove, "Status", ref list);
  65. list = SteelManagementHelper.GetBofType();
  66. SteelManagementHelper.SetGridValuelist(ref ugStove, "BofType", ref list);
  67. EntityHelper.ShowGridCaption<PlnSteelforOrdNewEntity>(ugOrder.DisplayLayout.Bands[0]);
  68. BaseHelper.setOtherColumnReadOnly(ugOrder, new[] { "Check" });
  69. list = SteelManagementHelper.GetValuelistLogic();
  70. SteelManagementHelper.SetGridValuelist(ref ugOrder, "IfSurplusAlloted", ref list);
  71. list = SteelManagementHelper.GetStatus();
  72. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Status", ref list);
  73. list = SteelManagementHelper.GetValuelistLogic();
  74. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Surplusflag", ref list);
  75. list = SteelManagementHelper.GetSurplusType();
  76. SteelManagementHelper.SetGridValuelist(ref ugOrder, "SurplusType", ref list);
  77. list = SteelManagementHelper.GetCastingtype();
  78. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Castingtype", ref list);
  79. list = SteelManagementHelper.GetSurplusflag();
  80. SteelManagementHelper.SetGridValuelist(ref ugOrder, "GetSurplusflag", ref list);
  81. BaseHelper.MergedCell(ugOrder, new[] { "CastNo", "CastSeq", "Furnaceno", "FurnacenoSeq" });
  82. EntityHelper.ShowGridCaption<PlnSteelforOrdNewEntity>(ugOrder1.DisplayLayout.Bands[0]);
  83. BaseHelper.setOtherColumnReadOnly(ugOrder1, new[] { "Check", "ChangeNum", "ChangeWeight" });
  84. list = SteelManagementHelper.GetValuelistLogic();
  85. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "IfSurplusAlloted", ref list);
  86. list = SteelManagementHelper.GetStatus();
  87. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "Status", ref list);
  88. list = SteelManagementHelper.GetValuelistLogic();
  89. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "Surplusflag", ref list);
  90. list = SteelManagementHelper.GetSurplusType();
  91. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "SurplusType", ref list);
  92. list = SteelManagementHelper.GetCastingtype();
  93. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "Castingtype", ref list);
  94. list = SteelManagementHelper.GetSurplusflag();
  95. SteelManagementHelper.SetGridValuelist(ref ugOrder1, "GetSurplusflag", ref list);
  96. BaseHelper.MergedCell(ugOrder1, new[] { "CastNo", "CastSeq", "Furnaceno", "FurnacenoSeq" });
  97. PlanComm.setGridActivation(ultraGridZgMs.DisplayLayout.Bands[0], "CHC", "NumberRule");
  98. PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 2,
  99. "DIAMETER_GP", "LENGTH_GP", "ROLL_LENGTH", "DIAMETER_MANDREL", "AIMOUTDIAMETER", "AIMWALLTHICK",
  100. "LEN_GP_SINGLE", "AIMLENGTH", "OUTDIAMETER_ZG", "WALLTHICK_ZG");
  101. PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 3,
  102. "WEIGTH_S", "WEIGTH_S_MIN", "GPREQ_WEIGHT", "MATCH_WT_IN", "ALLOWANCE", "FurnNum", "LjNum", "OUT_NUM", "Reall_NUM");
  103. PlanComm.setGridDigitalCol(ultraGridZgMs.DisplayLayout.Bands[0], 5, 0,
  104. "NUM_S", "OUTNUM_CUT", "MULTIPLE_NUM", "PLAN_USETIME", "GPREQ_NUM", "PLANS_NUM", "MATCH_NUM_IN", "FurnWt", "LjWeight", "OUT_WT", "Reall_WT");
  105. BaseHelper.GridColumnCount(ultraGridZgMs, new string[] { "MATCH_NUM_IN", "GPREQ_NUM", "Reall_NUM" });
  106. BaseHelper.GridColumnSum(ultraGridZgMs, new string[] { "MATCH_WT_IN", "GPREQ_WEIGHT", "Reall_WT" });
  107. PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[0], "CHC", "NumberRule");
  108. PlanComm.setGridDigitalCol(ultraGrid1.DisplayLayout.Bands[0], 5, 2,
  109. "DIAMETER_GP", "LENGTH_GP", "ROLL_LENGTH", "DIAMETER_MANDREL", "AIMOUTDIAMETER", "AIMWALLTHICK",
  110. "LEN_GP_SINGLE", "AIMLENGTH", "OUTDIAMETER_ZG", "WALLTHICK_ZG");
  111. PlanComm.setGridDigitalCol(ultraGrid1.DisplayLayout.Bands[0], 5, 3,
  112. "WEIGTH_S", "WEIGTH_S_MIN", "GPREQ_WEIGHT", "MATCH_WT_IN", "ALLOWANCE", "FurnNum", "LjNum", "OUT_NUM", "Reall_NUM");
  113. PlanComm.setGridDigitalCol(ultraGrid1.DisplayLayout.Bands[0], 5, 0,
  114. "NUM_S", "OUTNUM_CUT", "MULTIPLE_NUM", "PLAN_USETIME", "GPREQ_NUM", "PLANS_NUM", "MATCH_NUM_IN", "FurnWt", "LjWeight", "OUT_WT", "Reall_WT");
  115. BaseHelper.GridColumnCount(ultraGrid1, new string[] { "MATCH_NUM_IN", "GPREQ_NUM", "Reall_NUM" });
  116. BaseHelper.GridColumnSum(ultraGrid1, new string[] { "MATCH_WT_IN", "GPREQ_WEIGHT", "Reall_WT" });
  117. //设置列头名称
  118. EntityHelper.ShowGridCaption<PlnOrderCastSEntity>(ultraGridCast.DisplayLayout.Bands[0]);
  119. BaseHelper.setOtherColumnReadOnly(ultraGridCast, new string[] { "CHC", "CanNum", "PlineCode", "PlineCodeA", "PlanTimeB", "PlanUsetime", "RepairType", "Memo", "ProgyMemo", "ManualNum", "CraftNo", "CutNumGp" });
  120. BaseHelper.InitCellPosition(ultraGridCast, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "PlanWtS", "PlanNumS", "PlanUsetime", "GxProSeq", "PlnDivideId", "DiameterLz", "LenGpSingle", "CutNumGp", "CutLoseLen", "LengthLz", "WtCastOne", "CastNumCalc", "FurnaceNumCalc", "FurnaceWt", "PlanedWt", "PlanedNum", "Finishweight", "FinishNum", "CastNum", "FurnaceNum", "AddWtBegin", "AddWtEnd", "AddWtAhead", "AddWtNext", "CanWgt", "CanNum", "GradeSort", "ProcessingCostA", "TotalCostA", "ProcessingCostB", "TotalCostB", "ManualNum" });
  121. BaseHelper.GridColumnSum(ultraGridCast, new string[] { "PlanWtS", "CanWgt" });
  122. BaseHelper.GridColumnCount(ultraGridCast, new string[] { "PlanNumS", "CanNum" });
  123. BaseHelper.setUltraGridColumnMaxInput(ultraGridCast, new string[] { "PlanWtS", "CanWgt", "PlanedWt" });
  124. BaseHelper.setUltraGridColumnBits(ultraGridCast, new string[] { "PlanNumS", "CanNum", "PlanedNum", "ManualNum" });
  125. PlanHelper.InitRepairType(ultraGridCast, this);
  126. BaseHelper.ForbidSort(ultraGridCast);
  127. Refresh();
  128. }
  129. private void utmMain_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  130. {
  131. switch (e.Tool.Key)
  132. {
  133. case "Close": // ButtonTool
  134. // Place code here
  135. this.DialogResult = DialogResult.Cancel;
  136. break;
  137. case "HandOver": // ButtonTool
  138. // Place code here
  139. /* if (TabData.TabIndex == 2)
  140. {*/
  141. if (ugStove.ActiveRow == null)
  142. {
  143. MessageUtil.ShowWarning("请选择转交的炉计划!");
  144. return;
  145. }
  146. PlnSteelforfurnaceNewEntityPlus ActivePlnSteelforfurnaceNewEntity =
  147. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntityPlus;
  148. if (ActivePlnSteelforfurnaceNewEntity == null)
  149. {
  150. MessageUtil.ShowWarning("请选择转交的炉计划!");
  151. return;
  152. }
  153. if (MessageUtil.ShowYesNoAndQuestion("是否转交给当前炉计划!") ==
  154. DialogResult.No)
  155. return;
  156. if (!ActivePlnSteelforfurnaceNewEntity.OK)
  157. {
  158. if (MessageUtil.ShowYesNoAndQuestion("当前炉号的成分信息不满足当前选中炉计划的内控成分范围,请再次确认是否转交!") ==
  159. DialogResult.No)
  160. return;
  161. }
  162. var param =
  163. SteelHelper.SetData(
  164. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.HandOver",
  165. new object[]
  166. {
  167. PlnSteelforfurnaceNewEntity.Furnaceno, ActivePlnSteelforfurnaceNewEntity.Furnaceno,
  168. UserInfo.GetUserName()
  169. }, ob);
  170. if (param != null)
  171. DialogResult = DialogResult.OK;
  172. /* }
  173. else if (TabData.TabIndex == 3)
  174. {
  175. var Data= ultraGridCast.Rows.Where(p =>
  176. {
  177. int temp = 0;
  178. return p.Cells["ChangeNum"].Value != null &&
  179. int.TryParse(p.Cells["ChangeNum"].Value.ToString(), out temp);
  180. }).Select(p =>
  181. {
  182. PlnOrderCastSEntity PlnOrderCastSEntity = p.ListObject as PlnOrderCastSEntity;
  183. PlnOrderCastSEntity.PlanNumS = p.Cells["ChangeNum"].Value as decimal?;
  184. return PlnOrderCastSEntity;
  185. }).ToList();
  186. if (!Data.Any())
  187. {
  188. MessageUtil.ShowWarning("请输入转交的铸造订单转入支数或重量!");
  189. return;
  190. }
  191. var Orders = ugOrder1.Rows.Select(p =>
  192. {
  193. PlnSteelforOrdNewEntity PlnSteelforOrdNewEntity = (p.ListObject as PlnSteelforOrdNewEntity).Clone() as PlnSteelforOrdNewEntity;
  194. PlnSteelforOrdNewEntity.TotMumM = p.Cells["ChangeNum"].Value as long?;
  195. return PlnSteelforOrdNewEntity;
  196. }).ToList();
  197. if (MessageUtil.ShowYesNoAndQuestion("是否将铸造订单替换当前炉计划铸造计划!") ==
  198. DialogResult.No)
  199. return;
  200. var param =
  201. SteelHelper.SetData(
  202. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.ChangeOrderPlan",
  203. new object[]
  204. {
  205. PlnSteelforfurnaceNewEntity.Furnaceno,
  206. UserInfo.GetUserName(),
  207. Orders.Select(JSONFormat.Format).ToList(),
  208. Data.Select(JSONFormat.Format).ToList()
  209. }, ob);
  210. if (param != null)
  211. DialogResult = DialogResult.OK;
  212. }*/
  213. break;
  214. case "Refresh": // ButtonTool
  215. // Place code here
  216. Refresh();
  217. break;
  218. }
  219. }
  220. private void Refresh()
  221. {
  222. ucChemicalComposition.RefreshCurrentChemical(ob, PlnSteelforfurnaceNewEntity.CraftNo, PlnSteelforfurnaceNewEntity.StoveNo);
  223. RefreshOrderPlan();
  224. RefreshOtherFurnacePlan();
  225. //QueryZgS();
  226. //RefrshCastS();
  227. }
  228. private void RefrshCastS()
  229. {
  230. List<PlnOrderCastSEntity> listSource2 = EntityHelper.GetData<PlnOrderCastSEntity>
  231. ("com.steering.pss.plnsaleord.steelMarkingPlan.ControlOrderPlan.getOrderBInfoByContion",
  232. new object[]
  233. {
  234. new string[] {}, new string[] {"C001", "C003", "C006"}, PlnSteelforfurnaceNewEntity.Gradecode,
  235. "", "1", "1", new string[] {"0", "1", "", ""}, new string[] {PlnSteelforfurnaceNewEntity.PlineCode}, "0"
  236. }, ob);
  237. plnOrderCastSEntityBindingSource.DataSource =
  238. listSource2.Where(
  239. p =>
  240. (PlnSteelforfurnaceNewEntity.Diameter == "" ||
  241. p.DiameterLz == PlnSteelforfurnaceNewEntity.Diameter) && p.CanWgt > 0).ToList();
  242. GridHelper.RefreshAndAutoSize(ultraGridCast);
  243. }
  244. private void RefreshOrderPlan()
  245. {
  246. List<PlnSteelforOrdNewEntity> listSource = EntityHelper.GetData<PlnSteelforOrdNewEntity>
  247. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforOrdEntityByfurnaceno",
  248. new object[]
  249. {
  250. PlnSteelforfurnaceNewEntity.Furnaceno
  251. },
  252. ob);
  253. plnSteelforOrdNewEntityBindingSource.DataSource = listSource;
  254. GridHelper.RefreshAndAutoSize(ugOrder);
  255. GridHelper.RefreshAndAutoSize(ugOrder1);
  256. string[] ProPlanId = listSource.SelectMany(p => p.ProPlanId.Split(',')).Where(p => !string.IsNullOrEmpty(p)).ToArray();
  257. if (ProPlanId.Length <= 0)
  258. {
  259. return;
  260. }
  261. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.StlChemical.GetChemicalStd",
  262. new object[] { ProPlanId }, ob);
  263. ugStd.DataSource = dt;
  264. ugStd.DisplayLayout.Bands[0].Columns[0].MergedCellStyle = MergedCellStyle.Always;
  265. ugStd.DisplayLayout.Bands[0].Columns[1].MergedCellStyle = MergedCellStyle.Always;
  266. }
  267. private void RefreshOtherFurnacePlan()
  268. {
  269. List<PlnSteelforfurnaceNewEntityPlus> listSource = EntityHelper.GetData<PlnSteelforfurnaceNewEntityPlus>
  270. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforfurnaceEntity",
  271. new object[]
  272. {
  273. ShowEfPline, PlnSteelforfurnaceNewEntity.Gradecode,
  274. new List<String>() {PlnSteelforfurnaceNewEntity.Furnaceno}, new List<string>() {"10"},
  275. PlnSteelforfurnaceNewEntity.Furnaceno
  276. },
  277. ob);
  278. List<CraftLg2CicEntity> listSource1 = EntityHelper.GetData<CraftLg2CicEntity>
  279. ("com.steering.pss.plnsaleord.steelMarkingPlan.StlChemical.GetStlChemicalStd",
  280. new object[]
  281. {
  282. listSource.Select(p=>p.CicGid).Where(p=>!string.IsNullOrEmpty(p)).Distinct().ToArray()
  283. },
  284. ob);
  285. foreach (PlnSteelforfurnaceNewEntityPlus data in listSource)
  286. {
  287. data.CraftLg2CicEntity = listSource1.Where(p => p.CicGid == data.CicGid).ToList();
  288. }
  289. plnSteelforfurnaceNewEntityPlusBindingSource.DataSource = listSource;
  290. GridHelper.RefreshAndAutoSize(ugStove);
  291. }
  292. private void QueryZgS()
  293. {
  294. // dtlz = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryLZDataZg", new object[] { }, ob);
  295. Query();
  296. QueryGp();
  297. QueryOrder();
  298. }
  299. DataTable dtlz = new DataTable();
  300. private DataTable _data1;
  301. private void Query()
  302. {
  303. DataTable dtZg = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelPlnZg.selectPlnOrderZgS", new object[] { "", PlnSteelforfurnaceNewEntity.PlanRoute, PlnSteelforfurnaceNewEntity.Gradecode, PlnSteelforfurnaceNewEntity.Diameter, "0" }, ob);
  304. GridHelper.CopyDataToDatatable(dtZg, dataTable1, true);
  305. //GridHelper.RefreshAndAutoSize(ultraGridZgMs);
  306. #region 赋值LJ,装炉,出库
  307. foreach (UltraGridRow ugr in ultraGridZgMs.Rows)
  308. {
  309. int numz = 0;
  310. double wtz = 0;
  311. int numLj = 0;
  312. double wtLj = 0;
  313. int batNum = 0;
  314. double batWt = 0;
  315. if (dtlz.Rows.Count > 0)
  316. {
  317. DataRow[] drs = dtlz.Select("订单号 ='" + ugr.Cells["PRO_PLAN_ID"].Value.ToString() + "' AND 序号='" + ugr.Cells["GX_PLAN_NO"].Value.ToString() + "'");
  318. if (drs != null && drs.Length > 0)
  319. {
  320. if (!drs[0]["装炉支"].ToString().Equals(""))
  321. {
  322. ugr.Cells["FurnNum"].Value = drs[0]["装炉支"].ToString();
  323. ugr.Cells["FurnWt"].Value = drs[0]["装炉吨"].ToString();
  324. numz = int.Parse(ugr.Cells["FurnNum"].Value.ToString());
  325. wtz = double.Parse(ugr.Cells["FurnWt"].Value.ToString());
  326. }
  327. else
  328. {
  329. numz = 0;
  330. wtz = 0;
  331. }
  332. if (!drs[0]["LJ支"].ToString().Equals(""))
  333. {
  334. ugr.Cells["LjNum"].Value = drs[0]["LJ支"].ToString();
  335. ugr.Cells["LjWeight"].Value = drs[0]["LJ吨"].ToString();
  336. numLj = int.Parse(ugr.Cells["LjNum"].Value.ToString());
  337. wtLj = double.Parse(ugr.Cells["LjWeight"].Value.ToString());
  338. }
  339. else
  340. {
  341. numLj = 0;
  342. wtLj = 0;
  343. }
  344. if (!drs[0]["出库支"].ToString().Equals(""))
  345. {
  346. ugr.Cells["OUT_NUM"].Value = drs[0]["出库支"].ToString();
  347. ugr.Cells["OUT_WT"].Value = drs[0]["出库吨"].ToString();
  348. batNum = int.Parse(ugr.Cells["OUT_NUM"].Value.ToString());
  349. batWt = double.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  350. }
  351. else
  352. {
  353. batNum = 0;
  354. batWt = 0;
  355. }
  356. }
  357. }
  358. //if (ugr.Cells["BATCHED_NUM"].Text.Equals(""))
  359. //{
  360. // batNum = 0;
  361. // batWt = 0;
  362. //}
  363. //else
  364. //{
  365. // batNum = int.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  366. // batWt = double.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  367. //}
  368. int gpNum = 0;
  369. double gpWt = 0;
  370. double gpWtMin = 0;
  371. if (ugr.Cells["GPREQ_NUM"].Text.Equals(""))
  372. {
  373. gpNum = 0;
  374. gpWt = 0;
  375. gpWtMin = 0;
  376. }
  377. else
  378. {
  379. gpNum = int.Parse(ugr.Cells["GPREQ_NUM"].Value.ToString());
  380. gpWt = double.Parse(ugr.Cells["GPREQ_WEIGHT"].Value.ToString());
  381. //gpWtMin = double.Parse(ugr.Cells["GPREQ_WEIGHT_MIN"].Value.ToString());
  382. }
  383. double matcInWt = double.Parse(ugr.Cells["MATCH_WT_IN"].Value.ToString());
  384. int matcInNum = int.Parse(ugr.Cells["MATCH_NUM_IN"].Value.ToString());
  385. if (gpNum - batNum - numz - numLj - matcInNum < 0)
  386. {
  387. ugr.Cells["Reall_NUM"].Value = "0";
  388. ugr.Cells["Reall_WT"].Value = "0";
  389. //ugr.Cells["Reall_WT_MIN"].Value = 0;
  390. }
  391. else
  392. {
  393. ugr.Cells["Reall_NUM"].Value = (gpNum - batNum - numz - numLj - matcInNum).ToString();
  394. ugr.Cells["Reall_WT"].Value = (gpWt - batWt - wtz - wtLj - matcInWt).ToString();
  395. //ugr.Cells["Reall_WT_MIN"].Value = (gpWtMin - batWt - wtz - wtLj - matcInWt).ToString();
  396. }
  397. }
  398. #endregion
  399. //}
  400. ultraGridZgMs.UpdateData();
  401. dataTable1.DefaultView.RowFilter = "Reall_NUM >0 ";
  402. DataTable dt = dataTable1.DefaultView.ToTable();
  403. _data1 = dataTable1.Copy();
  404. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  405. }
  406. /// <summary>
  407. /// 查询有管坯需求轧管订单
  408. /// </summary>
  409. private void QueryGp()
  410. {
  411. DataTable dtZg = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelPlnZg.selectPlnOrderZgS", new object[] { "", PlnSteelforfurnaceNewEntity.PlanRoute, PlnSteelforfurnaceNewEntity.Gradecode, PlnSteelforfurnaceNewEntity.Diameter, "1" }, ob);
  412. GridHelper.CopyDataToDatatable(dtZg, dataTable2, true);
  413. //GridHelper.RefreshAndAutoSize(ultraGridZgMs);
  414. #region 赋值LJ,装炉,出库
  415. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  416. {
  417. int numz = 0;
  418. double wtz = 0;
  419. int numLj = 0;
  420. double wtLj = 0;
  421. int batNum = 0;
  422. double batWt = 0;
  423. if (dtlz.Rows.Count > 0)
  424. {
  425. DataRow[] drs = dtlz.Select("订单号 ='" + ugr.Cells["PRO_PLAN_ID"].Value.ToString() + "' AND 序号='" + ugr.Cells["GX_PLAN_NO"].Value.ToString() + "'");
  426. if (drs != null && drs.Length > 0)
  427. {
  428. if (!drs[0]["装炉支"].ToString().Equals(""))
  429. {
  430. ugr.Cells["FurnNum"].Value = drs[0]["装炉支"].ToString();
  431. ugr.Cells["FurnWt"].Value = drs[0]["装炉吨"].ToString();
  432. numz = int.Parse(ugr.Cells["FurnNum"].Value.ToString());
  433. wtz = double.Parse(ugr.Cells["FurnWt"].Value.ToString());
  434. }
  435. else
  436. {
  437. numz = 0;
  438. wtz = 0;
  439. }
  440. if (!drs[0]["LJ支"].ToString().Equals(""))
  441. {
  442. ugr.Cells["LjNum"].Value = drs[0]["LJ支"].ToString();
  443. ugr.Cells["LjWeight"].Value = drs[0]["LJ吨"].ToString();
  444. numLj = int.Parse(ugr.Cells["LjNum"].Value.ToString());
  445. wtLj = double.Parse(ugr.Cells["LjWeight"].Value.ToString());
  446. }
  447. else
  448. {
  449. numLj = 0;
  450. wtLj = 0;
  451. }
  452. if (!drs[0]["出库支"].ToString().Equals(""))
  453. {
  454. ugr.Cells["OUT_NUM"].Value = drs[0]["出库支"].ToString();
  455. ugr.Cells["OUT_WT"].Value = drs[0]["出库吨"].ToString();
  456. batNum = int.Parse(ugr.Cells["OUT_NUM"].Value.ToString());
  457. batWt = double.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  458. }
  459. else
  460. {
  461. batNum = 0;
  462. batWt = 0;
  463. }
  464. }
  465. }
  466. //if (ugr.Cells["BATCHED_NUM"].Text.Equals(""))
  467. //{
  468. // batNum = 0;
  469. // batWt = 0;
  470. //}
  471. //else
  472. //{
  473. // batNum = int.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  474. // batWt = double.Parse(ugr.Cells["OUT_WT"].Value.ToString());
  475. //}
  476. int gpNum = 0;
  477. double gpWt = 0;
  478. double gpWtMin = 0;
  479. if (ugr.Cells["GPREQ_NUM"].Text.Equals(""))
  480. {
  481. gpNum = 0;
  482. gpWt = 0;
  483. gpWtMin = 0;
  484. }
  485. else
  486. {
  487. gpNum = int.Parse(ugr.Cells["GPREQ_NUM"].Value.ToString());
  488. gpWt = double.Parse(ugr.Cells["GPREQ_WEIGHT"].Value.ToString());
  489. //gpWtMin = double.Parse(ugr.Cells["GPREQ_WEIGHT_MIN"].Value.ToString());
  490. }
  491. double matcInWt = double.Parse(ugr.Cells["MATCH_WT_IN"].Value.ToString());
  492. int matcInNum = int.Parse(ugr.Cells["MATCH_NUM_IN"].Value.ToString());
  493. if (gpNum - batNum - numz - numLj - matcInNum < 0)
  494. {
  495. ugr.Cells["Reall_NUM"].Value = "0";
  496. ugr.Cells["Reall_WT"].Value = "0";
  497. //ugr.Cells["Reall_WT_MIN"].Value = 0;
  498. }
  499. else
  500. {
  501. ugr.Cells["Reall_NUM"].Value = (gpNum - batNum - numz - numLj - matcInNum).ToString();
  502. ugr.Cells["Reall_WT"].Value = (gpWt - batWt - wtz - wtLj - matcInWt).ToString();
  503. //ugr.Cells["Reall_WT_MIN"].Value = (gpWtMin - batWt - wtz - wtLj - matcInWt).ToString();
  504. }
  505. }
  506. #endregion
  507. //}
  508. ultraGrid1.UpdateData();
  509. //if (radioButton1.Checked)
  510. //{
  511. dataTable2.DefaultView.RowFilter = "Reall_NUM >0 ";
  512. DataTable dt = dataTable2.DefaultView.ToTable();
  513. //_data2 = dataTable2.Copy();
  514. GridHelper.CopyDataToDatatable(dt, dataTable2, true);
  515. //}
  516. }
  517. private void QueryOrder()
  518. {
  519. List<PlnOrderCastSEntity> listSourceCast = EntityHelper.GetData<PlnOrderCastSEntity>
  520. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelPlnZg.getOrderBInfoByContion", new object[] { "", PlnSteelforfurnaceNewEntity.PlanRoute, PlnSteelforfurnaceNewEntity.Gradecode, PlnSteelforfurnaceNewEntity.Diameter, PlnSteelforfurnaceNewEntity.PlineCode }, ob);
  521. plnOrderCastSEntityBindingSource.DataSource = listSourceCast;
  522. }
  523. private void ugStd_InitializeRow(object sender, InitializeRowEventArgs e)
  524. {
  525. try
  526. {
  527. if (CurrentChem == null) return;
  528. string ChemName = e.Row.Cells["化学元素"].Value.ToString();
  529. string CurrentValue = CurrentChem[ChemName].ToString();
  530. if (SteelManagementHelper.CompareChem(CurrentValue, e.Row.Cells["上限"].Value, null) != 0)
  531. e.Row.Cells["上限"].Appearance.BackColor = Color.Red;
  532. else
  533. e.Row.Cells["上限"].Appearance.BackColor = Color.LightGreen;
  534. if (SteelManagementHelper.CompareChem(CurrentValue, null, e.Row.Cells["下限"].Value) != 0)
  535. e.Row.Cells["下限"].Appearance.BackColor = Color.Yellow;
  536. else
  537. e.Row.Cells["下限"].Appearance.BackColor = Color.LightGreen;
  538. }
  539. catch (Exception)
  540. {
  541. }
  542. }
  543. private void ugStove_InitializeRow(object sender, InitializeRowEventArgs e)
  544. {
  545. if(!e.Row.HasChild()) return;
  546. if (CurrentChem == null) return;
  547. var PlnSteelforfurnaceNewEntityPlus = e.Row.ListObject as PlnSteelforfurnaceNewEntityPlus;
  548. if (PlnSteelforfurnaceNewEntityPlus==null) return;
  549. PlnSteelforfurnaceNewEntityPlus.OK = true;
  550. foreach (UltraGridRow row in e.Row.ChildBands[0].Rows)
  551. {
  552. try
  553. {
  554. var CraftLg2CicEntity = row.ListObject as CraftLg2CicEntity;
  555. if (CraftLg2CicEntity==null) continue;
  556. string CurrentValue = CurrentChem[CraftLg2CicEntity.ChemName].ToString();
  557. if (
  558. SteelManagementHelper.CompareChem(CurrentValue, CraftLg2CicEntity.StdmaxSign + CraftLg2CicEntity.Stdmax,
  559. null
  560. ) !=0)
  561. {
  562. row.Cells["Stdmax"].Appearance.BackColor = Color.Red;
  563. PlnSteelforfurnaceNewEntityPlus.OK = false;
  564. }
  565. else
  566. {
  567. row.Cells["Stdmax"].Appearance.BackColor = Color.LightGreen;
  568. }
  569. if (
  570. SteelManagementHelper.CompareChem(CurrentValue, null,
  571. CraftLg2CicEntity.StdminSign + CraftLg2CicEntity.Stdmin)!=0)
  572. {
  573. row.Cells["Stdmin"].Appearance.BackColor = Color.Yellow;
  574. PlnSteelforfurnaceNewEntityPlus.OK = false;
  575. }
  576. else
  577. row.Cells["Stdmin"].Appearance.BackColor = Color.LightGreen;
  578. }
  579. catch (Exception)
  580. {
  581. }
  582. }
  583. if (!PlnSteelforfurnaceNewEntityPlus.OK) e.Row.Cells["OK"].Appearance.BackColor = Color.Red;
  584. }
  585. private void ugOrder1_CellChange(object sender, CellEventArgs e)
  586. {
  587. try
  588. {
  589. ugOrder1.UpdateData();
  590. if (e.Cell.Column.Key.Equals("ChangeNum"))
  591. {
  592. if (e.Cell.Value == e.Cell.Row.Cells["TotMumM"])
  593. {
  594. e.Cell.Row.Cells["ChangeWeight"].Value = e.Cell.Row.Cells["TotWeightM"].Value;
  595. }
  596. else
  597. {
  598. if (e.Cell.Value == null || e.Cell.Value.ToString() == "")
  599. {
  600. e.Cell.Row.Cells["ChangeWeight"].Value = null;
  601. }
  602. else
  603. {
  604. e.Cell.Row.Cells["ChangeWeight"].Value = double.Parse(e.Cell.Value.ToString())*
  605. double.Parse(
  606. e.Cell.Row.Cells["WeightM"].Value.ToString());
  607. }
  608. }
  609. }
  610. if (e.Cell.Column.Key.Equals("ChangeWeight"))
  611. {
  612. if (e.Cell.Value == e.Cell.Row.Cells["TotWeightM"])
  613. {
  614. e.Cell.Row.Cells["ChangeNum"].Value = e.Cell.Row.Cells["TotMumM"].Value;
  615. }
  616. else
  617. {
  618. if (e.Cell.Value == null || e.Cell.Value.ToString() == "")
  619. {
  620. e.Cell.Row.Cells["ChangeNum"].Value = null;
  621. }
  622. else
  623. {
  624. e.Cell.Row.Cells["ChangeNum"].Value = Math.Ceiling(double.Parse(e.Cell.Value.ToString())/
  625. double.Parse(
  626. e.Cell.Row.Cells["WeightM"].Value
  627. .ToString()));
  628. }
  629. }
  630. }
  631. }
  632. catch (Exception)
  633. {
  634. }
  635. }
  636. private void ultraGridCast_CellChange(object sender, CellEventArgs e)
  637. {
  638. try
  639. {
  640. ultraGridCast.UpdateData();
  641. if (e.Cell.Column.Key.Equals("ChangeNum"))
  642. {
  643. if (e.Cell.Value == e.Cell.Row.Cells["CanNum"])
  644. {
  645. e.Cell.Row.Cells["ChangeWeight"].Value = e.Cell.Row.Cells["CanWgt"].Value;
  646. }
  647. else
  648. {
  649. e.Cell.Row.Cells["ChangeWeight"].Value = double.Parse(e.Cell.Value.ToString()) *
  650. double.Parse(e.Cell.Row.Cells["WtCastOne"].Value.ToString());
  651. }
  652. }
  653. if (e.Cell.Column.Key.Equals("ChangeWeight"))
  654. {
  655. if (e.Cell.Value == e.Cell.Row.Cells["CanWgt"])
  656. {
  657. e.Cell.Row.Cells["ChangeNum"].Value = e.Cell.Row.Cells["CanNum"].Value;
  658. }
  659. else
  660. {
  661. e.Cell.Row.Cells["ChangeNum"].Value = Math.Ceiling(double.Parse(e.Cell.Value.ToString()) /
  662. double.Parse(e.Cell.Row.Cells["WtCastOne"].Value.ToString()));
  663. }
  664. }
  665. }
  666. catch (Exception)
  667. {
  668. }
  669. }
  670. }
  671. }