FrmSteelSupplement.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5. using Core.Mes.Client.Comm.Control;
  6. using Core.Mes.Client.Comm.Format;
  7. using Core.Mes.Client.Comm.Tool;
  8. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  9. using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity;
  10. using CoreFS.CA06;
  11. using Infragistics.Win.UltraWinToolbars;
  12. namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划
  13. {
  14. public partial class FrmSteelSupplement : FrmBase
  15. {
  16. private double[] SmeltingQty;
  17. public FrmSteelSupplement()
  18. {
  19. InitializeComponent();
  20. }
  21. public List<PlnSteelforOrdNewEntity> ListSource
  22. {
  23. get { return plnSteelforOrdNewEntityBindingSource.DataSource as List<PlnSteelforOrdNewEntity>; }
  24. set { plnSteelforOrdNewEntityBindingSource.DataSource = value; }
  25. }
  26. private void utmMain_ToolClick(object sender, ToolClickEventArgs e)
  27. {
  28. switch (e.Tool.Key)
  29. {
  30. case "Forming": // ButtonTool
  31. Forming();
  32. break;
  33. case "Add": // ButtonTool
  34. // Place code here
  35. Add();
  36. break;
  37. case "Delete": // ButtonTool
  38. // Place code here
  39. Delete();
  40. break;
  41. case "Close": // ButtonTool
  42. // Place code here
  43. DialogResult = DialogResult.No;
  44. break;
  45. }
  46. }
  47. private void Delete()
  48. {
  49. if (ListSource.Count <= 1)
  50. {
  51. MessageUtil.ShowWarning("没有余材可删除!");
  52. return;
  53. }
  54. ListSource.RemoveAt(1);
  55. ugOrder.DataBind();
  56. ugOrder.Refresh();
  57. }
  58. private void Forming()
  59. {
  60. if ((ListSource == null) || (ListSource.Count <= 0)) return;
  61. // Place code here
  62. if (SmeltingQty == null)
  63. SmeltingQty =
  64. SteelHelper.GetData(
  65. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.GetSmeltingQty",
  66. new object[] {ListSource[0].EfPlineCode}, ob) as double[];
  67. var toltalWeight = ListSource.Sum(p => (double) (p.TotWeightM ?? 0));
  68. if ((SmeltingQty != null) && (SmeltingQty.Length > 2) &&
  69. ((toltalWeight < SmeltingQty[1]) || (toltalWeight > SmeltingQty[2])))
  70. {
  71. MessageUtil.ShowWarning(string.Format("不在电炉产线的出钢量范围[{0},{1}]内,无法组炉 !", SmeltingQty[1], SmeltingQty[2]));
  72. return;
  73. }
  74. var param =
  75. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SteelSupplement",
  76. new object[] {ListSource.Select(JSONFormat.Format).ToList(), UserInfo.GetUserName()}, ob);
  77. if (param != null)
  78. DialogResult = DialogResult.OK;
  79. }
  80. private void Add()
  81. {
  82. if (ListSource.Count > 1)
  83. {
  84. MessageUtil.ShowWarning("已经存在余材!");
  85. return;
  86. }
  87. var plnSteelforOrdNewEntity = ListSource.FirstOrDefault();
  88. if (plnSteelforOrdNewEntity != null)
  89. {
  90. var newPlnSteelforOrdNewEntity =
  91. plnSteelforOrdNewEntity.Clone() as PlnSteelforOrdNewEntity;
  92. if (newPlnSteelforOrdNewEntity == null) return;
  93. if (SmeltingQty == null)
  94. SmeltingQty =
  95. SteelHelper.GetData(
  96. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.GetSmeltingQty",
  97. new object[] {newPlnSteelforOrdNewEntity.EfPlineCode}, ob) as double[];
  98. if ((SmeltingQty != null) && (SmeltingQty.Length > 0))
  99. {
  100. var weight = SmeltingQty[0] -
  101. (double) (plnSteelforOrdNewEntity.TotWeightM ?? 0);
  102. newPlnSteelforOrdNewEntity.TotMumM = (long)Math.Ceiling(weight /
  103. (double)
  104. (newPlnSteelforOrdNewEntity
  105. .WeightM ?? 0));
  106. newPlnSteelforOrdNewEntity.TotWeightM = newPlnSteelforOrdNewEntity.TotMumM*
  107. newPlnSteelforOrdNewEntity.WeightM;
  108. }
  109. newPlnSteelforOrdNewEntity.SurplusType = "1";
  110. newPlnSteelforOrdNewEntity.Surplusflag = "1";
  111. ListSource.Add(newPlnSteelforOrdNewEntity);
  112. ugOrder.DataBind();
  113. ugOrder.Refresh();
  114. }
  115. }
  116. private void FrmSteelSupplement_Load(object sender, EventArgs e)
  117. {
  118. EntityHelper.ShowGridCaption<PlnSteelforOrdNewEntity>(ugOrder.DisplayLayout.Bands[0]);
  119. BaseHelper.setOtherColumnReadOnly(ugOrder, new[] {"TotMumM", "TotWeightM"});
  120. //绑定Valuelist 根据实体类值显示
  121. var list = SteelManagementHelper.GetValuelistLogic();
  122. SteelManagementHelper.SetGridValuelist(ref ugOrder, "IfSurplusAlloted", ref list);
  123. list = SteelManagementHelper.GetStatus();
  124. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Status", ref list);
  125. list = SteelManagementHelper.GetValuelistLogic();
  126. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Surplusflag", ref list);
  127. list = SteelManagementHelper.GetSurplusType();
  128. SteelManagementHelper.SetGridValuelist(ref ugOrder, "SurplusType", ref list);
  129. list = SteelManagementHelper.GetCastingtype();
  130. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Castingtype", ref list);
  131. list = SteelManagementHelper.GetSurplusflag();
  132. SteelManagementHelper.SetGridValuelist(ref ugOrder, "GetSurplusflag", ref list);
  133. GridHelper.RefreshAndAutoSize(ugOrder);
  134. }
  135. }
  136. }