ucSteelManagement.cs 99 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Runtime.InteropServices;
  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.Resources;
  16. using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity;
  17. using CoreFS.CA06;
  18. using Infragistics.Win.UltraWinEditors;
  19. using Infragistics.Win.UltraWinGrid;
  20. namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划.control
  21. {
  22. public partial class ucSteelManagement : UserControl
  23. {
  24. private object[] _currentpara;
  25. private string _weightPerMeterFormula = string.Empty;
  26. private readonly Dictionary<string, string> ONHFlag = new Dictionary<string, string>();
  27. private bool RefreshFlag;
  28. private UltraGridRow ugrCast;
  29. private UltraGridRow ugrOrder;
  30. private UltraGridRow ugrStove;
  31. private string ulCastCastText = "";
  32. private List<UltraGridRow> ulCastCastTextData;
  33. private string ulFurnaceStoveText = "";
  34. private List<UltraGridRow> ulFurnaceStoveTextData;
  35. private string ulFurnaceText = "";
  36. private List<UltraGridRow> ulFurnaceTextData;
  37. public ucSteelManagement()
  38. {
  39. InitializeComponent();
  40. }
  41. public OpeBase Ob { get; set; }
  42. [DllImport("user32")]
  43. private static extern IntPtr LoadCursorFromFile(string fileName);
  44. public void IniPline()
  45. {
  46. SteelHelper.InitPline2(ucePline, "D", Ob);
  47. }
  48. /// <summary>
  49. /// 界面3个 UltraExpandableGroupBox 之间展开或者收缩 调整尺寸
  50. /// </summary>
  51. /// <param name="sender"></param>
  52. /// <param name="e"></param>
  53. private void upb_ExpandedStateChanged(object sender, EventArgs e)
  54. {
  55. var expandedNum = (ugbCast.Expanded ? 1 : 0) + (ugbStove.Expanded ? 1 : 0) + (ugbOrder.Expanded ? 1 : 0);
  56. sc1.SplitterDistance = ugbCast.Expanded ? (upMain.Size.Height - 10 - (3 - expandedNum)*20)/expandedNum : 20;
  57. sc2.SplitterDistance = ugbStove.Expanded ? (upMain.Size.Height - 10 - (3 - expandedNum)*20)/expandedNum : 20;
  58. //ugbCast.Size = new Size(ugbCast.Size.Width,
  59. // ugbCast.Expanded ? ((upMain.Size.Height -10- (3-expandedNum) *21)/expandedNum) : 21);
  60. //ugbStove.Size = new Size(ugbStove.Size.Width,
  61. // ugbStove.Expanded ? ((upMain.Size.Height -10- (3 - expandedNum) * 21) / expandedNum) : 21);
  62. ulCastCast.Visible = ugbCast.Expanded;
  63. ulFurnace.Visible = ugbStove.Expanded;
  64. ulFurnaceStove.Visible = ugbStove.Expanded;
  65. //AcOrder.Visible = ugbOrder.Expanded;
  66. if ((sender == ugbStove) && ugbCast.Expanded) ugCast_AfterRowActivate(sender, e);
  67. if ((sender == ugbOrder) && ugbOrder.Expanded)
  68. if (ugbStove.Expanded) ugStove_AfterRowActivate(sender, e);
  69. else if (ugbCast.Expanded) ugCast_AfterRowActivate(sender, e);
  70. }
  71. /// <summary>
  72. /// 界面加载事件
  73. /// </summary>
  74. /// <param name="sender"></param>
  75. /// <param name="e"></param>
  76. private void ucSteelManagement_Load(object sender, EventArgs e)
  77. {
  78. //默认展开炉次信息表
  79. ugbOrder.Expanded = false;
  80. ugbCast.Expanded = false;
  81. ugbStove.Expanded = true;
  82. //显示实体类属性中文描述
  83. EntityHelper.ShowGridCaption<PlnSteelforcastNewEntity>(ugCast.DisplayLayout.Bands[0]);
  84. BaseHelper.setOtherColumnReadOnly(ugCast, new[] {"Check"});
  85. EntityHelper.ShowGridCaption<PlnSteelforfurnaceNewEntity>(ugStove.DisplayLayout.Bands[0]);
  86. BaseHelper.setOtherColumnReadOnly(ugStove, new[] {"Check"});
  87. EntityHelper.ShowGridCaption<PlnSteelforOrdNewEntity>(ugOrder.DisplayLayout.Bands[0]);
  88. BaseHelper.setOtherColumnReadOnly(ugOrder, new[] {"Check"});
  89. //绑定Valuelist 根据实体类值显示
  90. var list = SteelManagementHelper.GetValuelistLogic();
  91. SteelManagementHelper.SetGridValuelist(ref ugCast, "IfConnectGrade", ref list);
  92. list = SteelManagementHelper.GetValuelistLogic();
  93. SteelManagementHelper.SetGridValuelist(ref ugStove, "IfMonitorLg", ref list);
  94. list = SteelManagementHelper.GetValuelistLogic();
  95. SteelManagementHelper.SetGridValuelist(ref ugOrder, "IfSurplusAlloted", ref list);
  96. list = SteelManagementHelper.GetStatus();
  97. SteelManagementHelper.SetGridValuelist(ref ugCast, "Status", ref list);
  98. list = SteelManagementHelper.GetStatus();
  99. SteelManagementHelper.SetGridValuelist(ref ugStove, "Status", ref list);
  100. list = SteelManagementHelper.GetStatus();
  101. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Status", ref list);
  102. list = SteelManagementHelper.GetValuelistLogic();
  103. SteelManagementHelper.SetGridValuelist(ref ugStove, "IfConfirm", ref list);
  104. list = SteelManagementHelper.GetBofType();
  105. SteelManagementHelper.SetGridValuelist(ref ugStove, "BofType", ref list);
  106. list = SteelManagementHelper.GetHeatStatus();
  107. SteelManagementHelper.SetGridValuelist(ref ugStove, "HeatState", ref list);
  108. list = SteelManagementHelper.GetValuelistLogic();
  109. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Surplusflag", ref list);
  110. list = SteelManagementHelper.GetSurplusType();
  111. SteelManagementHelper.SetGridValuelist(ref ugOrder, "SurplusType", ref list);
  112. list = SteelManagementHelper.GetCastingtype();
  113. SteelManagementHelper.SetGridValuelist(ref ugOrder, "Castingtype", ref list);
  114. list = SteelManagementHelper.GetSurplusflag();
  115. SteelManagementHelper.SetGridValuelist(ref ugOrder, "GetSurplusflag", ref list);
  116. //合并Grid列
  117. BaseHelper.MergedCell(ugStove, new[] {"CastNo", "CastSeq", "Furnaceno"});
  118. BaseHelper.MergedCell(ugOrder, new[] {"CastNo", "CastSeq", "Furnaceno", "FurnacenoSeq"});
  119. //初始化放缩
  120. plnSteelforcastNewEntityBindingSource.DataSource = new List<PlnSteelforcastNewEntity>();
  121. plnSteelforfurnaceNewEntityBindingSource.DataSource = new List<PlnSteelforfurnaceNewEntity>();
  122. plnSteelforOrdNewEntityBindingSource.DataSource = new List<PlnSteelforOrdNewEntity>();
  123. GridHelper.RefreshAndAutoSize(ugCast);
  124. GridHelper.RefreshAndAutoSize(ugStove);
  125. GridHelper.RefreshAndAutoSize(ugOrder);
  126. //设置3个Grid不同时选中
  127. ugCast.BeforeSelectChange += (o, args) =>
  128. {
  129. ugStove.Selected.Rows.Clear();
  130. ugOrder.Selected.Rows.Clear();
  131. };
  132. ugStove.BeforeSelectChange += (o, args) =>
  133. {
  134. ugCast.Selected.Rows.Clear();
  135. ugOrder.Selected.Rows.Clear();
  136. };
  137. ugOrder.BeforeSelectChange += (o, args) =>
  138. {
  139. ugCast.Selected.Rows.Clear();
  140. ugStove.Selected.Rows.Clear();
  141. };
  142. }
  143. public void Set(bool OnlyView)
  144. {
  145. if (!OnlyView)
  146. {
  147. //设置可拖拽
  148. BaseHelper.SetGridDragDropRows(ugCast, AdjustCastSeq, GetMyCursor());
  149. BaseHelper.SetGridDragDropRows(ugStove, AdjustStoveSeq, GetMyCursor());
  150. BaseHelper.SetGridDragDropRows(ugOrder, AdjustCcmSeq, GetMyCursor());
  151. }
  152. else
  153. {
  154. ugCast.ContextMenuStrip = null;
  155. ugStove.ContextMenuStrip = null;
  156. ugOrder.ContextMenuStrip = null;
  157. }
  158. }
  159. private Cursor GetMyCursor()
  160. {
  161. var bytes = MyResource.Arrows;
  162. var fileStream = new FileStream("tempTest.dat", FileMode.Create);
  163. fileStream.Write(bytes, 0, bytes.Length);
  164. fileStream.Close();
  165. return new Cursor(LoadCursorFromFile("tempTest.dat"));
  166. }
  167. #region 导出Excel
  168. public void Export()
  169. {
  170. var ulGridList = new ArrayList();
  171. var sheetNameList = new ArrayList();
  172. if (ugbCast.Expanded)
  173. {
  174. ulGridList.Add(ugCast);
  175. sheetNameList.Add("浇次信息");
  176. }
  177. if (ugbStove.Expanded)
  178. {
  179. ulGridList.Add(ugStove);
  180. sheetNameList.Add("炉次信息");
  181. }
  182. if (ugbOrder.Expanded)
  183. {
  184. ulGridList.Add(ugOrder);
  185. sheetNameList.Add("铸造信息");
  186. }
  187. if (ulGridList.Count <= 0)
  188. {
  189. MessageUtil.ShowWarning("请展开需要导出的信息!");
  190. return;
  191. }
  192. GridHelper.ulGridToExcel(ulGridList, sheetNameList, "炼钢调度");
  193. }
  194. #endregion
  195. private void ugOrder_BeforeCellUpdate(object sender, BeforeCellUpdateEventArgs e)
  196. {
  197. if (e.NewValue == null) return;
  198. if (e.Cell.Column.Key == "ONHFlag") return;
  199. if (e.Cell.Column.Key == "GowhereCode") return;
  200. if (e.Cell.Column.Key == "WeightGpOne")
  201. {
  202. double DataValue;
  203. if (!double.TryParse(e.NewValue.ToString(), out DataValue))
  204. {
  205. MessageUtil.ShowTips("请输入正确的数字");
  206. e.Cell.CancelUpdate();
  207. e.Cancel = true;
  208. }
  209. }
  210. else
  211. {
  212. int DataValue;
  213. if (!int.TryParse(e.NewValue.ToString(), out DataValue))
  214. {
  215. MessageUtil.ShowTips("请输入正确的数字");
  216. e.Cell.CancelUpdate();
  217. e.Cancel = true;
  218. }
  219. }
  220. }
  221. private void ugOrder_CellChange(object sender, CellEventArgs e)
  222. {
  223. ugOrder.UpdateData();
  224. if (string.IsNullOrEmpty(Convert.ToString(e.Cell.Text)))
  225. {
  226. ugOrder.PerformAction(UltraGridAction.ExitEditMode);
  227. ugOrder.PerformAction(UltraGridAction.EnterEditMode);
  228. }
  229. var PlnSteelforOrdNewEntity = e.Cell.Row.ListObject as PlnSteelforOrdNewEntity;
  230. if (PlnSteelforOrdNewEntity == null) return;
  231. if ((PlnSteelforOrdNewEntity.LenGpSingle != null) && (PlnSteelforOrdNewEntity.CutNumGp != null))
  232. PlnSteelforOrdNewEntity.LengthM = PlnSteelforOrdNewEntity.LenGpSingle*
  233. PlnSteelforOrdNewEntity.CutNumGp;
  234. /* if (PlnSteelforOrdNewEntity.LenGpSingle != null && PlnSteelforOrdNewEntity.CutNumGp != null)
  235. {
  236. PlnSteelforOrdNewEntity.LengthM = PlnSteelforOrdNewEntity.LenGpSingle *
  237. PlnSteelforOrdNewEntity.CutNumGp +(PlnSteelforOrdNewEntity.Castingtype=="2"? 200:0);
  238. }*/
  239. if (PlnSteelforOrdNewEntity.Castingtype != "2")
  240. {
  241. if (string.IsNullOrEmpty(_weightPerMeterFormula))
  242. _weightPerMeterFormula =
  243. SteelHelper.GetData(
  244. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.GetWeightPerMeterFormula",
  245. null, Ob).ToString();
  246. double weightPerMeter = 0;
  247. var weightPerMeterV = false;
  248. if (PlnSteelforOrdNewEntity.Diameter != null)
  249. {
  250. var dt = new DataTable();
  251. weightPerMeterV =
  252. double.TryParse(
  253. dt.Compute(
  254. _weightPerMeterFormula.Replace("断面",
  255. PlnSteelforOrdNewEntity.Diameter.Replace("250", "251")), null).ToString(),
  256. out weightPerMeter);
  257. }
  258. if ((PlnSteelforOrdNewEntity.LenGpSingle != null) && (_weightPerMeterFormula != "") && weightPerMeterV)
  259. PlnSteelforOrdNewEntity.WeightGpOne =
  260. Math.Round((double) (PlnSteelforOrdNewEntity.LenGpSingle/1000d*weightPerMeter), 3);
  261. if ((PlnSteelforOrdNewEntity.LengthM != null) && (_weightPerMeterFormula != "") && weightPerMeterV)
  262. PlnSteelforOrdNewEntity.WeightM =
  263. Math.Round((double) (PlnSteelforOrdNewEntity.LengthM/1000d*weightPerMeter), 3);
  264. }
  265. else
  266. {
  267. PlnSteelforOrdNewEntity.WeightM = PlnSteelforOrdNewEntity.WeightGpOne*
  268. PlnSteelforOrdNewEntity.CutNumGp;
  269. }
  270. if ((PlnSteelforOrdNewEntity.WeightM != null) && (PlnSteelforOrdNewEntity.TotMumM != null))
  271. PlnSteelforOrdNewEntity.TotWeightM = PlnSteelforOrdNewEntity.WeightM*
  272. PlnSteelforOrdNewEntity.TotMumM;
  273. PlnSteelforOrdNewEntity.Update = true;
  274. e.Cell.Appearance.BackColor = Color.Orange;
  275. ugOrder.Refresh();
  276. }
  277. private void ugOrder_InitializeRow(object sender, InitializeRowEventArgs e)
  278. {
  279. var PlnSteelforOrdNewEntity = e.Row.ListObject as PlnSteelforOrdNewEntity;
  280. if (PlnSteelforOrdNewEntity == null)
  281. return;
  282. if ((PlnSteelforOrdNewEntity.SurplusType == "2") ||
  283. (PlnSteelforOrdNewEntity.SurplusType == "3"))
  284. e.Row.Cells["GowhereCode"].Value = " ";
  285. if ((PlnSteelforOrdNewEntity.Surplusflag == "1") && (PlnSteelforOrdNewEntity.SurplusType != "2") && (PlnSteelforOrdNewEntity.SurplusType != "3") && (PlnSteelforOrdNewEntity.Status == "10") && !PlnSteelforOrdNewEntity.Update)
  286. {
  287. e.Row.Cells["CutNumGp"].Activation = Activation.AllowEdit;
  288. e.Row.Cells["CutNumGp"].IgnoreRowColActivation = true;
  289. e.Row.Cells["CutNumGp"].Appearance.BackColor = Color.LightGreen;
  290. e.Row.Cells["CutNumGp"].EditorComponent = utSave;
  291. e.Row.Cells["LenGpSingle"].Activation = Activation.AllowEdit;
  292. e.Row.Cells["LenGpSingle"].IgnoreRowColActivation = true;
  293. e.Row.Cells["LenGpSingle"].Appearance.BackColor = Color.LightGreen;
  294. e.Row.Cells["LenGpSingle"].EditorComponent = utSave;
  295. e.Row.Cells["TotMumM"].Activation = Activation.AllowEdit;
  296. e.Row.Cells["TotMumM"].IgnoreRowColActivation = true;
  297. e.Row.Cells["TotMumM"].Appearance.BackColor = Color.LightGreen;
  298. e.Row.Cells["TotMumM"].EditorComponent = utSave;
  299. if (PlnSteelforOrdNewEntity.Castingtype == "2")
  300. {
  301. e.Row.Cells["WeightGpOne"].Activation = Activation.AllowEdit;
  302. e.Row.Cells["WeightGpOne"].IgnoreRowColActivation = true;
  303. e.Row.Cells["WeightGpOne"].Appearance.BackColor = Color.LightGreen;
  304. e.Row.Cells["WeightGpOne"].EditorComponent = utSave;
  305. }
  306. // e.Row.Cells["SurplusType"].Activation = Activation.AllowEdit;
  307. // e.Row.Cells["SurplusType"].IgnoreRowColActivation = true;
  308. e.Row.Cells["SurplusType"].Appearance.BackColor = Color.LightGreen;
  309. // e.Row.Cells["SurplusType"].EditorComponent = SurplusChange;
  310. e.Row.Cells["GowhereCode"].Activation = Activation.AllowEdit;
  311. e.Row.Cells["GowhereCode"].IgnoreRowColActivation = true;
  312. e.Row.Cells["GowhereCode"].Appearance.BackColor = Color.LightGreen;
  313. }
  314. if (PlnSteelforOrdNewEntity.StateLk == "1")
  315. e.Row.Cells["SurplusType"].Appearance.BackColor = Color.FromArgb(255, 224, 192);
  316. if (string.IsNullOrEmpty(PlnSteelforOrdNewEntity.ProPlanId)) return;
  317. if (!string.IsNullOrWhiteSpace(PlnSteelforOrdNewEntity.ColligateJudgeId))
  318. e.Row.Cells["ColligateJudgeId"].Appearance.BackColor = Color.LightGreen;
  319. /* var List = PlnSteelforOrdNewEntity.ProPlanId.Split(',')
  320. .Where(p => ONHFlag.ContainsKey(p)).ToList();
  321. if (List.Count > 0)
  322. {
  323. var flagStr = List.Select(p =>
  324. {
  325. var flag = "";
  326. ONHFlag.TryGetValue(p, out flag);
  327. return flag;
  328. }).Aggregate((a, b) =>
  329. {
  330. if (string.IsNullOrEmpty(b)) return a;
  331. if (string.IsNullOrEmpty(a)) return b;
  332. return a + "/" + b;
  333. });
  334. if (!string.IsNullOrEmpty(flagStr))
  335. {
  336. e.Row.Cells["ONHFlag"].Value = flagStr;
  337. e.Row.Cells["ONHFlag"].Appearance.BackColor = Color.LightGreen;
  338. }
  339. }*/
  340. // SetONH(e, PlnSteelforOrdNewEntity);
  341. }
  342. private void SetONH(string[] ProPlanIds)
  343. {
  344. if (!ProPlanIds.Any()) return;
  345. var dt =
  346. ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.StlChemical.GetChemicalStd",
  347. new object[] {ProPlanIds, new[] {"2"}}, Ob);
  348. foreach (var row in dt.AsEnumerable().GroupBy(p => p["铸造订单"].ToString()).Select(p =>
  349. {
  350. var flagStr = "";
  351. if (p.AsParallel().Any(q => q["化学元素"].ToString() == "O")) flagStr = flagStr + "O";
  352. if (p.AsParallel().Any(q => q["化学元素"].ToString() == "N")) flagStr = flagStr + "N";
  353. if (p.AsParallel().Any(q => q["化学元素"].ToString() == "H")) flagStr = flagStr + "H";
  354. return new {p.Key, flagStr};
  355. }))
  356. ONHFlag.Add(row.Key, row.flagStr);
  357. }
  358. private void ugCast_InitializeRow(object sender, InitializeRowEventArgs e)
  359. {
  360. var plnSteelforcastEntity = e.Row.ListObject as PlnSteelforcastNewEntity;
  361. if (plnSteelforcastEntity != null)
  362. switch (plnSteelforcastEntity.Status)
  363. {
  364. case "40":
  365. e.Row.Cells["Status"].Appearance.BackColor = Color.Gray;
  366. break;
  367. }
  368. }
  369. private void ugStove_InitializeRow(object sender, InitializeRowEventArgs e)
  370. {
  371. var PlnSteelforfurnaceNewEntity = e.Row.ListObject as PlnSteelforfurnaceNewEntity;
  372. if (PlnSteelforfurnaceNewEntity != null)
  373. {
  374. switch (PlnSteelforfurnaceNewEntity.Status)
  375. {
  376. case "40":
  377. e.Row.Cells["Status"].Appearance.BackColor = Color.Gray;
  378. break;
  379. }
  380. if (PlnSteelforfurnaceNewEntity.IfConfirm != "1") e.Row.Cells["IfConfirm"].Appearance.BackColor = Color.Red;
  381. }
  382. }
  383. private void craftImg_EditorButtonClick(object sender, EditorButtonEventArgs e)
  384. {
  385. var row = ugStove.ActiveRow;
  386. var craftNo = row.Cells["CraftNo"].Text;
  387. if (e.Button.Key.ToLower().Equals("select"))
  388. {
  389. var strurl =
  390. "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLgSmeltingProcess.cpt&op=view" +
  391. "&CRAFT_NO=" + craftNo;
  392. var down = new FrmRepExcel(Ob, strurl);
  393. down.Text = "炼钢工艺卡打印";
  394. down.ShowDialog();
  395. }
  396. }
  397. private void utSave_EditorButtonClick(object sender, EditorButtonEventArgs e)
  398. {
  399. var entityList =
  400. (from UltraGridRow p in ugOrder.Selected.Rows
  401. where p.ListObject is PlnSteelforOrdNewEntity
  402. select p.ListObject as PlnSteelforOrdNewEntity).ToList();
  403. if (!entityList.Any() && (ugOrder.ActiveRow != null))
  404. {
  405. var PlnSteelforOrdNewEntity =
  406. ugOrder.ActiveRow.ListObject as PlnSteelforOrdNewEntity;
  407. if (PlnSteelforOrdNewEntity != null)
  408. entityList.Add(PlnSteelforOrdNewEntity);
  409. }
  410. if (!entityList.Any())
  411. {
  412. MessageUtil.ShowWarning("请选择需要修改的铸造订单!");
  413. return;
  414. }
  415. if (entityList.Any(p => p.Status != "10"))
  416. {
  417. MessageUtil.ShowWarning("只能修改下发的补炉的铸造订单!");
  418. return;
  419. }
  420. if (entityList.Any(p => !p.Update))
  421. {
  422. MessageUtil.ShowWarning("请先修改订单!");
  423. return;
  424. }
  425. if (MessageUtil.ShowYesNoAndQuestion("是否保存所选中的" + entityList.Count + "个补炉订修改值?,请确认!") == DialogResult.No)
  426. return;
  427. var param =
  428. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SaveSupplementOrder",
  429. new object[] {entityList.Select(JSONFormat.Format).ToList()}, Ob);
  430. if (param != null)
  431. {
  432. MessageUtil.ShowTips("修改成功");
  433. Query();
  434. }
  435. }
  436. private void ulCastCast_EditorButtonClick(object sender, EditorButtonEventArgs e)
  437. {
  438. if (ugCast.Rows.Count > 0)
  439. {
  440. if ((ulCastCastText != ulCastCast.Text) || (ulCastCastTextData == null))
  441. {
  442. ulCastCastTextData = ugCast.Rows.AsEnumerable().Where(p =>
  443. {
  444. var row = p.ListObject as PlnSteelforcastNewEntity;
  445. if (row == null) return false;
  446. return row.CastNo.IndexOf(ulCastCast.Text, StringComparison.Ordinal) >= 0;
  447. }).ToList();
  448. ulCastCastText = ulCastCast.Text;
  449. }
  450. if (ulCastCastTextData.Any())
  451. {
  452. var index = ulCastCastTextData.IndexOf(ugCast.ActiveRow);
  453. if ((index >= 0) && (index < ulCastCastTextData.Count - 1))
  454. ugCast.ActiveRow = ulCastCastTextData.Skip(index + 1).FirstOrDefault();
  455. else
  456. ugCast.ActiveRow = ulCastCastTextData.FirstOrDefault();
  457. }
  458. }
  459. }
  460. private void ulFurnaceStove_EditorButtonClick(object sender, EditorButtonEventArgs e)
  461. {
  462. if (ugStove.Rows.Count > 0)
  463. {
  464. if ((ulFurnaceStoveText != ulFurnaceStove.Text) || (ulFurnaceStoveTextData == null))
  465. {
  466. ulFurnaceStoveTextData = ugStove.Rows.AsEnumerable().Where(p =>
  467. {
  468. var row = p.ListObject as PlnSteelforfurnaceNewEntity;
  469. if (row == null) return false;
  470. return row.StoveNo.IndexOf(ulFurnaceStove.Text, StringComparison.Ordinal) >= 0;
  471. }).ToList();
  472. ulFurnaceStoveText = ulFurnaceStove.Text;
  473. }
  474. if (ulFurnaceStoveTextData.Any())
  475. {
  476. var index = ulFurnaceStoveTextData.IndexOf(ugStove.ActiveRow);
  477. if ((index >= 0) && (index < ulFurnaceStoveTextData.Count - 1))
  478. ugStove.ActiveRow = ulFurnaceStoveTextData.Skip(index + 1).FirstOrDefault();
  479. else
  480. ugStove.ActiveRow = ulFurnaceStoveTextData.FirstOrDefault();
  481. }
  482. }
  483. }
  484. private void ulFurnace_EditorButtonClick(object sender, EditorButtonEventArgs e)
  485. {
  486. if (ugStove.Rows.Count > 0)
  487. {
  488. if ((ulFurnaceText != ulFurnace.Text) || (ulFurnaceTextData == null))
  489. {
  490. ulFurnaceTextData = ugStove.Rows.AsEnumerable().Where(p =>
  491. {
  492. var row = p.ListObject as PlnSteelforfurnaceNewEntity;
  493. if (row == null) return false;
  494. return row.Furnaceno.IndexOf(ulFurnace.Text, StringComparison.Ordinal) >= 0;
  495. }).ToList();
  496. ulFurnaceText = ulFurnace.Text;
  497. }
  498. if (ulFurnaceTextData.Any())
  499. {
  500. var index = ulFurnaceTextData.IndexOf(ugStove.ActiveRow);
  501. if ((index >= 0) && (index < ulFurnaceTextData.Count - 1))
  502. ugStove.ActiveRow = ulFurnaceTextData.Skip(index + 1).FirstOrDefault();
  503. else
  504. ugStove.ActiveRow = ulFurnaceTextData.FirstOrDefault();
  505. }
  506. }
  507. }
  508. private void MoveToCast_Click(object sender, EventArgs e)
  509. {
  510. if (ugStove.ActiveRow == null) return;
  511. var targePlnSteelforfurnace = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  512. if (targePlnSteelforfurnace == null)
  513. {
  514. MessageUtil.ShowError("找不到指定的位置");
  515. return;
  516. }
  517. var list = (from UltraGridRow p in ugStove.Selected.Rows
  518. where p.ListObject is PlnSteelforfurnaceNewEntity
  519. select p.ListObject as PlnSteelforfurnaceNewEntity).OrderBy(p => p.FurnacenoSeq).ToList();
  520. if (!list.Any())
  521. {
  522. MessageUtil.ShowError("无拖动的数据");
  523. return;
  524. }
  525. if (list.Any(p => p.CastSeq == null))
  526. {
  527. MessageUtil.ShowError("拖动的数据无浇次顺序号,无法调整");
  528. return;
  529. }
  530. if (targePlnSteelforfurnace.CastStoveSeq == null)
  531. {
  532. MessageUtil.ShowError("无法识别目标位置的浇次内顺序,无法调整");
  533. return;
  534. }
  535. if (targePlnSteelforfurnace.FurnacenoSeq == null)
  536. {
  537. MessageUtil.ShowError("无法识别目标位置的浇次顺序,无法调整");
  538. return;
  539. }
  540. /* if (targePlnSteelforfurnace.Status != "10")
  541. {
  542. MessageUtil.ShowError("只能调至下发状态的炉计划之前");
  543. return;
  544. }*/
  545. if (MessageUtil.ShowYesNoAndQuestion(
  546. string.Format("是否将选中炉次调整到炉次{0}之前", targePlnSteelforfurnace.Furnaceno)
  547. ) == DialogResult.No) return;
  548. var param1 =
  549. SteelHelper.SetData(
  550. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustFurnaceSeq",
  551. new object[] {list.Select(p => p.Furnaceno).ToList(), targePlnSteelforfurnace.Furnaceno}, Ob);
  552. if (param1 != null)
  553. {
  554. MessageUtil.ShowTips("成功调整");
  555. Query();
  556. }
  557. }
  558. private void CastMoveOverCast_Click(object sender, EventArgs e)
  559. {
  560. if (ugStove.ActiveRow == null) return;
  561. var targePlnSteelforfurnace = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  562. if (targePlnSteelforfurnace == null)
  563. {
  564. MessageUtil.ShowError("找不到指定的位置");
  565. return;
  566. }
  567. var list = (from UltraGridRow p in ugStove.Selected.Rows
  568. where p.ListObject is PlnSteelforfurnaceNewEntity
  569. select p.ListObject as PlnSteelforfurnaceNewEntity).OrderBy(p => p.FurnacenoSeq).ToList();
  570. if (!list.Any())
  571. {
  572. MessageUtil.ShowError("无拖动的数据");
  573. return;
  574. }
  575. if (list.Any(p => p.CastSeq == null))
  576. {
  577. MessageUtil.ShowError("拖动的数据无浇次顺序号,无法调整");
  578. return;
  579. }
  580. if (targePlnSteelforfurnace.CastStoveSeq == null)
  581. {
  582. MessageUtil.ShowError("无法识别目标位置的浇次内顺序,无法调整");
  583. return;
  584. }
  585. if (targePlnSteelforfurnace.FurnacenoSeq == null)
  586. {
  587. MessageUtil.ShowError("无法识别目标位置的浇次顺序,无法调整");
  588. return;
  589. }
  590. /* if (targePlnSteelforfurnace.Status != "10")
  591. {
  592. MessageUtil.ShowError("只能调至下发状态的炉计划之前");
  593. return;
  594. }*/
  595. if (list.First().CastNo != targePlnSteelforfurnace.CastNo)
  596. {
  597. if (MessageUtil.ShowYesNoAndQuestion(
  598. string.Format("是否将浇次{0}调整到浇次{1}之前", list.First().CastNo, targePlnSteelforfurnace.CastNo)
  599. ) == DialogResult.No) return;
  600. var param1 =
  601. SteelHelper.SetData(
  602. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCastFurnaceSeq",
  603. new object[] {list.First().CastNo, targePlnSteelforfurnace.CastNo, targePlnSteelforfurnace.EfPlineCode, targePlnSteelforfurnace.FurnacenoSeq < list.First().FurnacenoSeq}, Ob);
  604. if (param1 != null)
  605. {
  606. MessageUtil.ShowTips("成功调整");
  607. Query();
  608. }
  609. }
  610. }
  611. private void ugStove_MouseDown(object sender, MouseEventArgs e)
  612. {
  613. if (e.Button == MouseButtons.Right)
  614. {
  615. var uieOver = ugStove.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y));
  616. if (uieOver != null)
  617. {
  618. var ugrOver = uieOver.GetContext(typeof(UltraGridRow), true) as UltraGridRow;
  619. ugStove.ActiveRow = ugrOver;
  620. }
  621. }
  622. }
  623. private void StoveInfo_EditorButtonClick(object sender, EditorButtonEventArgs e)
  624. {
  625. var targePlnSteelforfurnace = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  626. if (targePlnSteelforfurnace == null)
  627. {
  628. MessageUtil.ShowError("找不到指定的位置");
  629. return;
  630. }
  631. var StoveInfo = new StoveInfo {Stove = targePlnSteelforfurnace.StoveNo, CraftNo = targePlnSteelforfurnace.CraftNo, Ob = Ob};
  632. StoveInfo.Show();
  633. }
  634. private void PrdcrNoSee_EditorButtonClick(object sender, EditorButtonEventArgs e)
  635. {
  636. UltraGridRow row = ugOrder.ActiveRow;
  637. var targePlnSteelforfurnace = ugOrder.ActiveRow.ListObject as PlnSteelforOrdNewEntity;
  638. if (targePlnSteelforfurnace == null)
  639. {
  640. MessageUtil.ShowError("找不到指定的位置");
  641. return;
  642. }
  643. if ("".Equals(targePlnSteelforfurnace.PrdcrNo))
  644. {
  645. MessageUtil.ShowError("监制编号为空");
  646. return;
  647. }
  648. FrmProInformation fp = new FrmProInformation(Ob, row.Cells["PrdcrNo"].Text, "", "A");
  649. fp.ShowDialog();
  650. }
  651. private void SurplusChange_EditorButtonClick(object sender, EditorButtonEventArgs e)
  652. {
  653. var row = ugOrder.ActiveRow;
  654. if (row == null) return;
  655. var PoPlanId = row.GetValue("ProPlanId");
  656. var gxPlanNo = row.GetValue("GxPlanNo");
  657. var Furnaceno = row.GetValue("Furnaceno");
  658. var Sequenceno = row.GetValue("Sequenceno");
  659. var CastNo = row.GetValue("CastNo");
  660. var CastSeq = row.GetValue("CastSeq");
  661. var toWeightM = row.GetValue("TotWeightM");
  662. var toNumM = row.GetValue("TotMumM");
  663. var gradCode = row.GetValue("Gradecode");
  664. var diammterGp = row.GetValue("Diameter");
  665. var list = new ArrayList();
  666. list.Add(PoPlanId);
  667. list.Add(gxPlanNo);
  668. list.Add(Furnaceno);
  669. list.Add(Sequenceno);
  670. list.Add(CastNo);
  671. list.Add(toWeightM);
  672. list.Add(toNumM);
  673. list.Add(gradCode);
  674. list.Add(diammterGp);
  675. list.Add(row.GetValue("PlineCode"));
  676. //list.Add(planRoute);
  677. //list.Add(cic);
  678. var frmStPlnZ = new FrmSteelPlnZg(Ob, list);
  679. frmStPlnZ.ShowDialog();
  680. var flag = frmStPlnZ.Flag;
  681. if (flag) Query();
  682. }
  683. private void ugOrder_MouseDown(object sender, MouseEventArgs e)
  684. {
  685. if (e.Button == MouseButtons.Right)
  686. {
  687. var uieOver = ugOrder.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y));
  688. if (uieOver != null)
  689. {
  690. var ugrOver = uieOver.GetContext(typeof(UltraGridRow), true) as UltraGridRow;
  691. ugOrder.ActiveRow = ugrOver;
  692. }
  693. }
  694. }
  695. private void ugCast_MouseDown(object sender, MouseEventArgs e)
  696. {
  697. if (e.Button == MouseButtons.Right)
  698. {
  699. var uieOver = ugCast.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y));
  700. if (uieOver != null)
  701. {
  702. var ugrOver = uieOver.GetContext(typeof(UltraGridRow), true) as UltraGridRow;
  703. ugCast.ActiveRow = ugrOver;
  704. }
  705. }
  706. }
  707. private void MoveOrder_Click(object sender, EventArgs e)
  708. {
  709. if (ugOrder.ActiveRow == null)
  710. {
  711. MessageUtil.ShowError("找不到指定的位置");
  712. return;
  713. }
  714. var PlnSteelforOrdNewEntity = ugOrder.ActiveRow.ListObject as PlnSteelforOrdNewEntity;
  715. if (PlnSteelforOrdNewEntity == null)
  716. {
  717. MessageUtil.ShowError("找不到指定的位置");
  718. return;
  719. }
  720. var list = (from UltraGridRow p in ugOrder.Selected.Rows
  721. where p.ListObject is PlnSteelforOrdNewEntity
  722. select p.ListObject as PlnSteelforOrdNewEntity).ToList();
  723. if (!list.Any())
  724. {
  725. MessageUtil.ShowError("无拖动的数据");
  726. return;
  727. }
  728. if (list.Select(p => p.CastNo).Distinct().Count() != 1)
  729. {
  730. MessageUtil.ShowError("无法跨浇次调整");
  731. return;
  732. }
  733. var DataSource =
  734. plnSteelforOrdNewEntityBindingSource.DataSource as List<PlnSteelforOrdNewEntity>;
  735. var furnacenos = list.Select(p => p.Furnaceno).Distinct().ToList();
  736. if ((furnacenos.Count == 1) && (furnacenos[0] == PlnSteelforOrdNewEntity.Furnaceno))
  737. {
  738. }
  739. else
  740. {
  741. list = DataSource.Where(p => furnacenos.Contains(p.Furnaceno)).OrderBy(p => p.CcmSeq).ToList();
  742. var temlist = DataSource.Where(p => PlnSteelforOrdNewEntity.Furnaceno == p.Furnaceno).ToList();
  743. PlnSteelforOrdNewEntity = temlist.FirstOrDefault();
  744. }
  745. if (MessageUtil.ShowYesNoAndQuestion("是否调整选中铸造计划"
  746. ) == DialogResult.No) return;
  747. var param1 =
  748. SteelHelper.SetData(
  749. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCcmSeq",
  750. new object[] {list.Select(JSONFormat.Format).ToList(), JSONFormat.Format(PlnSteelforOrdNewEntity)}, Ob);
  751. if (param1 != null)
  752. {
  753. MessageUtil.ShowTips("成功调整");
  754. Query();
  755. }
  756. }
  757. private void toolStripMenuItem1_Click(object sender, EventArgs e)
  758. {
  759. if (ugCast.ActiveRow == null)
  760. {
  761. MessageUtil.ShowError("找不到指定的位置");
  762. return;
  763. }
  764. var targetPlnSteelforcast = ugCast.ActiveRow.ListObject as PlnSteelforcastNewEntity;
  765. if (targetPlnSteelforcast == null)
  766. {
  767. MessageUtil.ShowError("找不到指定的位置");
  768. return;
  769. }
  770. var list = (from UltraGridRow p in ugCast.Selected.Rows
  771. where p.ListObject is PlnSteelforcastNewEntity
  772. select p.ListObject as PlnSteelforcastNewEntity).OrderBy(p => p.CastSeq).ToList();
  773. if (!list.Any())
  774. {
  775. MessageUtil.ShowError("无拖动的数据");
  776. return;
  777. }
  778. if (list.Any(p => p.CastSeq == null))
  779. {
  780. MessageUtil.ShowError("无法调整无浇次顺序号的数据");
  781. return;
  782. }
  783. if (targetPlnSteelforcast.CastSeq == null)
  784. {
  785. MessageUtil.ShowError("无法识别目标位置的顺序号,无法调整顺序");
  786. return;
  787. }
  788. var targetCast = (long) targetPlnSteelforcast.CastSeq;
  789. if (list.Select(p => p.PlineCode).Distinct().Count() > 1)
  790. {
  791. MessageUtil.ShowError("不同铸造产线无法调整顺序");
  792. return;
  793. }
  794. var plnSteelforcastNewEntity = list.FirstOrDefault();
  795. if ((plnSteelforcastNewEntity != null) && (plnSteelforcastNewEntity.PlineCode != targetPlnSteelforcast.PlineCode))
  796. {
  797. MessageUtil.ShowError("不同铸造产线无法调整顺序");
  798. return;
  799. }
  800. if (MessageUtil.ShowYesNoAndQuestion(
  801. string.Format("是否将这{0}个浇次按顺序调整到{1}之前", ugCast.Selected.Rows.Count, targetPlnSteelforcast.CastNo)
  802. ) == DialogResult.No) return;
  803. var param =
  804. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCastSeq",
  805. new object[] {list.Select(p => p.CastNo).ToList(), targetPlnSteelforcast.CastNo}, Ob);
  806. if (param != null)
  807. {
  808. MessageUtil.ShowTips(string.Format("成功将这{0}个浇次调整到{1}之前", ugCast.Selected.Rows.Count, targetPlnSteelforcast.CastNo));
  809. Query();
  810. }
  811. }
  812. private void CancelSurplusChange_EditorButtonClick(object sender, EditorButtonEventArgs e)
  813. {
  814. var row = ugOrder.ActiveRow;
  815. if (row == null) return;
  816. var PoPlanId = row.GetValue("ProPlanId");
  817. var gxPlanNo = row.GetValue("GxPlanNo");
  818. var Furnaceno = row.GetValue("Furnaceno");
  819. var Sequenceno = row.GetValue("Sequenceno");
  820. var entityList = new ArrayList();
  821. entityList.Add(Furnaceno);
  822. entityList.Add(Sequenceno);
  823. entityList.Add(PoPlanId);
  824. entityList.Add(gxPlanNo);
  825. if (MessageUtil.ShowYesNoAndQuestion("是否撤销利轧管计划?") == DialogResult.No)
  826. return;
  827. PlanComm.WaitFromOpen(Cursor);
  828. var ccp = new CoreClientParam();
  829. ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelPlnZg";
  830. if (PoPlanId.Contains("ZG"))
  831. ccp.MethodName = "doDeleteLibrary";
  832. else
  833. ccp.MethodName = "doDeleteCast";
  834. ccp.ServerParams = new object[] {entityList};
  835. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  836. PlanComm.WaitFromColse(Cursor);
  837. if (ccp.ReturnCode == -1) return;
  838. MessageUtil.ShowTips(ccp.ReturnInfo);
  839. if (ccp.ReturnInfo.Equals("撤销利计划成功!"))
  840. Query();
  841. }
  842. #region Grid 行聚焦事件
  843. // 操作记录
  844. internal void doAddLgLog(ImpFrmdispatchEntity entity)
  845. {
  846. CoreClientParam ccp = new CoreClientParam();
  847. ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement";
  848. ccp.MethodName = "doAddLgLog";
  849. ccp.ServerParams = new object[] { JSONFormat.Format(entity) };
  850. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  851. }
  852. /// <summary>
  853. /// 标识监制信息
  854. /// </summary>
  855. public void tabNotice(string userName)
  856. {
  857. UltraGridRow row = this.ugOrder.ActiveRow;
  858. if (row == null)
  859. {
  860. MessageUtil.ShowTips("请选择需要操作的监制信息!");
  861. return;
  862. }
  863. PlnSteelforOrdNewEntity plnSteelEntity = (PlnSteelforOrdNewEntity)row.ListObject;
  864. string plnEntity = JSONFormat.Format(plnSteelEntity);
  865. CoreClientParam ccp = new CoreClientParam();
  866. ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement";
  867. ccp.MethodName = "tabNotice";
  868. ccp.ServerParams = new object[] { plnEntity, userName };
  869. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  870. if (ccp.ReturnCode != -1)
  871. {
  872. if (ccp.ReturnInfo.Equals("标识监制成功!"))
  873. {
  874. Query();
  875. MessageUtil.ShowTips(ccp.ReturnInfo);
  876. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  877. entity.CastNo = plnSteelEntity.CastNo;
  878. entity.CastSeq = plnSteelEntity.CastSeq.ToString2();
  879. entity.Heatno = plnSteelEntity.Furnaceno;
  880. //entity.HeatState = plnSteelEntity.HeatState;
  881. entity.ProMonth = plnSteelEntity.ProMonth;
  882. entity.HeatLine = plnSteelEntity.EfPlineName;
  883. entity.CmmLine = plnSteelEntity.PlineName;
  884. entity.Optpersonnel = userName;
  885. entity.Memo = "标识监制";
  886. doAddLgLog(entity);
  887. }
  888. else
  889. {
  890. MessageUtil.ShowTips(ccp.ReturnInfo);
  891. }
  892. }
  893. }
  894. /// <summary>
  895. /// 浇次信息表选中事件
  896. /// </summary>
  897. /// <param name="sender"></param>
  898. /// <param name="e"></param>
  899. private void ugCast_AfterRowActivate(object sender, EventArgs e)
  900. {
  901. var ugr = ugCast.ActiveRow;
  902. if (ugr != null)
  903. {
  904. if (ugrCast != null) ugrCast.RowSelectorAppearance.Reset();
  905. ugrCast = ugr;
  906. ugr.RowSelectorAppearance.BackColor = Color.Chartreuse;
  907. if (RefreshFlag) return;
  908. if (!ugbCast.Expanded && !ugbOrder.Expanded) return;
  909. var plnSteelforcastEntity = ugr.ListObject as PlnSteelforcastNewEntity;
  910. if (plnSteelforcastEntity != null)
  911. if (ugbStove.Expanded)
  912. QueryStove(new object[] {plnSteelforcastEntity.CastNo});
  913. else if (ugbOrder.Expanded)
  914. QueryOrder(new object[] {plnSteelforcastEntity.CastNo});
  915. }
  916. }
  917. /// <summary>
  918. /// 炉次信息表选中事件
  919. /// </summary>
  920. /// <param name="sender"></param>
  921. /// <param name="e"></param>
  922. private void ugStove_AfterRowActivate(object sender, EventArgs e)
  923. {
  924. var ugr = ugStove.ActiveRow;
  925. if (ugr != null)
  926. {
  927. if (ugrStove != null) ugrStove.RowSelectorAppearance.Reset();
  928. ugrStove = ugr;
  929. ugr.RowSelectorAppearance.BackColor = Color.Chartreuse;
  930. if (RefreshFlag) return;
  931. if (!ugbOrder.Expanded) return;
  932. var plnSteelforfurnaceEntity = ugr.ListObject as PlnSteelforfurnaceNewEntity;
  933. if (plnSteelforfurnaceEntity != null)
  934. if ((plnSteelforfurnaceEntity.CastSeq != null) && (plnSteelforfurnaceEntity.CastStoveSeq != null))
  935. QueryOrder2(new object[]
  936. {
  937. plnSteelforfurnaceEntity.Furnaceno
  938. });
  939. }
  940. }
  941. private void ugOrder_AfterRowActivate(object sender, EventArgs e)
  942. {
  943. var ugr = ugOrder.ActiveRow;
  944. if (ugr != null)
  945. {
  946. if (ugrOrder != null) ugrOrder.RowSelectorAppearance.Reset();
  947. ugrOrder = ugr;
  948. ugr.RowSelectorAppearance.BackColor = Color.Chartreuse;
  949. }
  950. }
  951. #endregion
  952. #region 查询
  953. /// <summary>
  954. /// 查询
  955. /// </summary>
  956. /// <param name="para">查询条件</param>
  957. public void Query(object[] para)
  958. {
  959. try
  960. {
  961. _currentpara = para;
  962. plnSteelforfurnaceNewEntityBindingSource.Clear();
  963. plnSteelforcastNewEntityBindingSource.Clear();
  964. plnSteelforOrdNewEntityBindingSource.Clear();
  965. if (ugbCast.Expanded)
  966. QueryCast(para);
  967. else if (ugbStove.Expanded)
  968. QueryStove(para);
  969. else if (ugbOrder.Expanded)
  970. QueryOrder(para);
  971. }
  972. catch (Exception)
  973. {
  974. // ignored
  975. }
  976. }
  977. /// <summary>
  978. /// 根据上次查询条件查询
  979. /// </summary>
  980. public void Query()
  981. {
  982. PlnSteelforcastNewEntity plnSteelforcastNewEntity = null;
  983. PlnSteelforfurnaceNewEntity plnSteelforfurnaceNewEntity = null;
  984. if ((ugCast.Rows.Count > 0) && (ugCast.ActiveRow != null))
  985. plnSteelforcastNewEntity = ugCast.ActiveRow.ListObject as PlnSteelforcastNewEntity;
  986. if ((ugStove.Rows.Count > 0) && (ugStove.ActiveRow != null))
  987. plnSteelforfurnaceNewEntity = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  988. RefreshFlag = true;
  989. Query(_currentpara);
  990. if ((ugCast.Rows.Count > 0) && (plnSteelforcastNewEntity != null))
  991. ugCast.ActiveRow = ugCast.Rows.AsEnumerable().Where(p =>
  992. {
  993. var row = p.ListObject as PlnSteelforcastNewEntity;
  994. if (row == null) return false;
  995. return row.CastNo == plnSteelforcastNewEntity.CastNo;
  996. }).FirstOrDefault();
  997. if ((ugStove.Rows.Count > 0) && (plnSteelforfurnaceNewEntity != null))
  998. ugStove.ActiveRow = ugStove.Rows.AsEnumerable().Where(p =>
  999. {
  1000. var row = p.ListObject as PlnSteelforfurnaceNewEntity;
  1001. if (row == null) return false;
  1002. return row.Furnaceno == plnSteelforfurnaceNewEntity.Furnaceno;
  1003. }).FirstOrDefault();
  1004. RefreshFlag = false;
  1005. if (ugbCast.Expanded)
  1006. ugCast_AfterRowActivate(null, null);
  1007. else if (ugbStove.Expanded)
  1008. ugStove_AfterRowActivate(null, null);
  1009. }
  1010. /// <summary>
  1011. /// 查询浇次信息表
  1012. /// </summary>
  1013. /// <param name="para"></param>
  1014. public void QueryCast(object[] para)
  1015. {
  1016. List<PlnSteelforcastNewEntity> listSource = EntityHelper.GetData<PlnSteelforcastNewEntity>
  1017. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforcastEntity", para, Ob);
  1018. plnSteelforcastNewEntityBindingSource.DataSource = listSource;
  1019. GridHelper.RefreshAndAutoSize(ugCast);
  1020. ulCastCastText = "";
  1021. ulCastCastTextData = null;
  1022. }
  1023. /// <summary>
  1024. /// 查询炉次信息表
  1025. /// </summary>
  1026. /// <param name="para"></param>
  1027. public void QueryStove(object[] para)
  1028. {
  1029. List<PlnSteelforfurnaceNewEntity> listSource = EntityHelper.GetData<PlnSteelforfurnaceNewEntity>
  1030. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforfurnaceEntity", para,
  1031. Ob);
  1032. plnSteelforfurnaceNewEntityBindingSource.DataSource = listSource;
  1033. GridHelper.RefreshAndAutoSize(ugStove);
  1034. if (listSource.Count <= 0)
  1035. plnSteelforOrdNewEntityBindingSource.Clear();
  1036. foreach (UltraGridRow row in ugStove.Rows)
  1037. {
  1038. if ("1".Equals(row.Cells["ifMonitorLg"].Value.ToString()))
  1039. {
  1040. row.Cells["ifMonitorLg"].Appearance.BackColor = Color.Green;
  1041. }
  1042. }
  1043. ulFurnaceText = "";
  1044. ulFurnaceTextData = null;
  1045. ulFurnaceStoveText = "";
  1046. ulFurnaceStoveTextData = null;
  1047. }
  1048. /// <summary>
  1049. /// 查询订单信息表
  1050. /// </summary>
  1051. /// <param name="para"></param>
  1052. public void QueryOrder(object[] para)
  1053. {
  1054. List<PlnSteelforOrdNewEntity> listSource = EntityHelper.GetData<PlnSteelforOrdNewEntity>
  1055. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforOrdEntity", para, Ob);
  1056. listSource = listSource.Where(p => (p.SurplusType != "2") && (p.SurplusType != "3")).ToList();
  1057. // SetONH(listSource.AsParallel().SelectMany(p => p.ProPlanId.Split(',')).Where(p => !string.IsNullOrEmpty(p) && !ONHFlag.ContainsKey(p))
  1058. // .Distinct().ToArray());
  1059. plnSteelforOrdNewEntityBindingSource.DataSource = listSource;
  1060. foreach (UltraGridRow ugr in ugOrder.Rows)
  1061. {
  1062. if (ugr.Cells["IsNoticeEp"].Text.Equals("已通知"))
  1063. {
  1064. ugr.Cells["IsNoticeEp"].Appearance.BackColor = Color.GreenYellow;
  1065. ugr.Activate();
  1066. }
  1067. }
  1068. GridHelper.RefreshAndAutoSize(ugOrder);
  1069. }
  1070. public void QueryOrder2(object[] para)
  1071. {
  1072. List<PlnSteelforOrdNewEntity> listSource = EntityHelper.GetData<PlnSteelforOrdNewEntity>
  1073. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforOrdEntityByfurnaceno", para, Ob);
  1074. // SetONH(listSource.AsParallel().SelectMany(p => p.ProPlanId.Split(',')).Where(p => !string.IsNullOrEmpty(p) && !ONHFlag.ContainsKey(p))
  1075. // .Distinct().ToArray());
  1076. plnSteelforOrdNewEntityBindingSource.DataSource = listSource;
  1077. foreach (UltraGridRow ugr in ugOrder.Rows)
  1078. {
  1079. if (ugr.Cells["IsNoticeEp"].Text.Equals("已通知"))
  1080. {
  1081. ugr.Cells["IsNoticeEp"].Appearance.BackColor = Color.GreenYellow;
  1082. ugr.Activate();
  1083. }
  1084. }
  1085. GridHelper.RefreshAndAutoSize(ugOrder);
  1086. }
  1087. #endregion
  1088. #region 下发/取消下发
  1089. /// <summary>
  1090. /// 炉次信息 下发/取消下发
  1091. /// </summary>
  1092. /// <param name="down"></param>
  1093. /// <param name="userName"></param>
  1094. public void ChangeSatus(bool down, string userName)
  1095. {
  1096. if (ugbCast.Expanded && ((ugCast.Selected.Rows.Count > 0) || (ugCast.ActiveRow != null)) && (ugStove.Selected.Rows.Count != 1))
  1097. ChangeSatusCast(down, userName);
  1098. else if (ugbStove.Expanded && ((ugStove.Selected.Rows.Count > 0) || (ugStove.ActiveRow != null)))
  1099. ChangeSatusStove(down, userName);
  1100. else
  1101. MessageUtil.ShowWarning("请选择展开炉次信息或者浇次信息,再点击下发!");
  1102. }
  1103. private void ChangeSatusStove(bool down, string userName)
  1104. {
  1105. var entityList =
  1106. (from UltraGridRow p in ugStove.Selected.Rows
  1107. where p.ListObject is PlnSteelforfurnaceNewEntity
  1108. select p.ListObject as PlnSteelforfurnaceNewEntity).ToList();
  1109. if (!entityList.Any() && (ugStove.ActiveRow != null))
  1110. {
  1111. var plnSteelforfurnaceNewEntity =
  1112. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1113. if (plnSteelforfurnaceNewEntity != null)
  1114. entityList.Add(plnSteelforfurnaceNewEntity);
  1115. }
  1116. if (!entityList.Any())
  1117. {
  1118. MessageUtil.ShowWarning("请需要下发的炉次!");
  1119. return;
  1120. }
  1121. if (down && entityList.Any(p => p.Status != "00"))
  1122. {
  1123. MessageUtil.ShowWarning("选中的炉次不处于编制状态,无法下发!");
  1124. return;
  1125. }
  1126. if (!down && entityList.Any(p => p.Status != "10"))
  1127. {
  1128. MessageUtil.ShowWarning("选中的炉次不处于下发状态,无法取消下发!");
  1129. return;
  1130. }
  1131. if (MessageUtil.ShowYesNoAndQuestion((down ? "是否下发?" : "是否取消下发?") + "所选中的" + entityList.Count + "个炉次") ==
  1132. DialogResult.No)
  1133. return;
  1134. var param =
  1135. SteelHelper.SetData(
  1136. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.UpdatePlnSteelforfurnaceStatus",
  1137. new object[] {entityList.Select(p => p.Furnaceno).ToList(), down ? "10" : "00", userName}, Ob);
  1138. if (param != null)
  1139. {
  1140. MessageUtil.ShowTips(down ? "下发成功" : "取消下发成功");
  1141. Query();
  1142. }
  1143. }
  1144. /// <summary>
  1145. /// 浇次信息 下发/取消下发
  1146. /// </summary>
  1147. /// <param name="down"></param>
  1148. /// <param name="userName"></param>
  1149. private void ChangeSatusCast(bool down, string userName)
  1150. {
  1151. if (ugCast.ActiveRow == null)
  1152. {
  1153. MessageUtil.ShowWarning("请选择需要下发的浇次!");
  1154. return;
  1155. }
  1156. var entity = ugCast.ActiveRow.ListObject as PlnSteelforcastNewEntity;
  1157. if (entity == null)
  1158. {
  1159. MessageUtil.ShowWarning("请选择需要下发的浇次!");
  1160. return;
  1161. }
  1162. if (down && (entity.Status != "00"))
  1163. {
  1164. MessageUtil.ShowWarning("选中的浇次不处于编制状态,无法下发!");
  1165. return;
  1166. }
  1167. if (!down && (entity.Status != "10"))
  1168. {
  1169. MessageUtil.ShowWarning("选中的浇次不处于下发状态,无法取消下发!");
  1170. return;
  1171. }
  1172. if (MessageUtil.ShowYesNoAndQuestion((down ? "是否下发所选中的浇次之前的所有编制中的浇次?" : "是否取消下发所选中的浇次?") + "所选中的浇次") ==
  1173. DialogResult.No)
  1174. return;
  1175. var param =
  1176. SteelHelper.SetData(
  1177. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.UpdatePlnSteelforcastStatus",
  1178. new object[] {entity.CastNo, down ? "10" : "00", userName}, Ob);
  1179. if (param != null)
  1180. {
  1181. MessageUtil.ShowTips(down ? "下发成功" : "取消下发成功");
  1182. Query();
  1183. }
  1184. }
  1185. #endregion
  1186. #region 炉计划重炼/补炉
  1187. /// <summary>
  1188. /// 炉计划重炼
  1189. /// </summary>
  1190. /// <param name="userName"></param>
  1191. public void Resmelt(string userName)
  1192. {
  1193. if (ugbOrder.Expanded && (ugOrder.Selected.Rows.Count > 0))
  1194. {
  1195. var list =
  1196. (from UltraGridRow p in ugOrder.Selected.Rows
  1197. where p.ListObject is PlnSteelforOrdNewEntity
  1198. select p.ListObject as PlnSteelforOrdNewEntity).ToList();
  1199. if (list.Any(p => p.Surplusflag == "1"))
  1200. {
  1201. MessageUtil.ShowWarning("无法重炼余材!");
  1202. return;
  1203. }
  1204. if (list.Select(p => p.Furnaceno).Distinct().Count() > 1)
  1205. {
  1206. MessageUtil.ShowWarning("只能重炼同炉下的订单!");
  1207. return;
  1208. }
  1209. if (MessageUtil.ShowYesNoAndQuestion("是否重炼所选中的订单?该订单信息将清空, 系统将在最后一浇次生成新的浇次,包含此炉信息,请确认!") ==
  1210. DialogResult.No)
  1211. return;
  1212. var param =
  1213. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.Resmelt",
  1214. new object[] {list.Select(p => p.Furnaceno).FirstOrDefault(), list.Select(p => (long) p.Sequenceno).ToList(), userName}, Ob);
  1215. if (param != null)
  1216. {
  1217. MessageUtil.ShowTips("重炼订单成功");
  1218. Query();
  1219. var plnSteelforfurnaceNewEntity = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1220. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1221. entity.CastNo = plnSteelforfurnaceNewEntity.CastNo;
  1222. entity.CastSeq = plnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1223. entity.Heatno = plnSteelforfurnaceNewEntity.Furnaceno;
  1224. entity.HeatState = plnSteelforfurnaceNewEntity.HeatState;
  1225. entity.ProMonth = plnSteelforfurnaceNewEntity.ProMonth;
  1226. entity.HeatLine = plnSteelforfurnaceNewEntity.EfPlineName;
  1227. entity.CmmLine = plnSteelforfurnaceNewEntity.PlineName;
  1228. entity.Optpersonnel = userName;
  1229. entity.Memo = "炉计划重炼";
  1230. doAddLgLog(entity);
  1231. }
  1232. }
  1233. else
  1234. {
  1235. if (ugStove.ActiveRow == null)
  1236. {
  1237. MessageUtil.ShowWarning("请选择需要重炼的炉次计划!");
  1238. return;
  1239. }
  1240. var plnSteelforfurnaceNewEntity =
  1241. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1242. if (plnSteelforfurnaceNewEntity == null)
  1243. {
  1244. MessageUtil.ShowWarning("请选择需要重炼的炉次计划!");
  1245. return;
  1246. }
  1247. //
  1248. // if (plnSteelforfurnaceNewEntity.Status != "30" && plnSteelforfurnaceNewEntity.Status != "20" )
  1249. // {
  1250. // MessageUtil.ShowWarning("选中的炉次计划不处于已生产状态,无法重炼!");
  1251. // return;
  1252. // }
  1253. if (MessageUtil.ShowYesNoAndQuestion("是否重炼所选中的炉次?该炉订单信息将清空, 系统将在本日最后一浇次生成新的浇次,包含此炉信息,请确认!") ==
  1254. DialogResult.No)
  1255. return;
  1256. var param =
  1257. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.Resmelt",
  1258. new object[] {plnSteelforfurnaceNewEntity.Furnaceno, userName}, Ob);
  1259. if (param != null)
  1260. {
  1261. MessageUtil.ShowTips("重炼炉次成功");
  1262. Query();
  1263. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1264. entity.CastNo = plnSteelforfurnaceNewEntity.CastNo;
  1265. entity.CastSeq = plnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1266. entity.Heatno = plnSteelforfurnaceNewEntity.Furnaceno;
  1267. entity.HeatState = plnSteelforfurnaceNewEntity.HeatState;
  1268. entity.ProMonth = plnSteelforfurnaceNewEntity.ProMonth;
  1269. entity.HeatLine = plnSteelforfurnaceNewEntity.EfPlineName;
  1270. entity.CmmLine = plnSteelforfurnaceNewEntity.PlineName;
  1271. entity.Optpersonnel = userName;
  1272. entity.Memo = "炉计划重炼";
  1273. doAddLgLog(entity);
  1274. }
  1275. }
  1276. }
  1277. public void CastEnd(string userName)
  1278. {
  1279. var list = (from UltraGridRow p in ugStove.Selected.Rows
  1280. where p.ListObject is PlnSteelforfurnaceNewEntity
  1281. select p.ListObject as PlnSteelforfurnaceNewEntity).OrderBy(p => p.FurnacenoSeq).ToList();
  1282. if (!list.Any())
  1283. {
  1284. MessageUtil.ShowError("请选中浇次中断未生产的炉计划");
  1285. return;
  1286. }
  1287. if (list.Select(p => p.CastNo).Distinct().Count() != 1)
  1288. {
  1289. MessageUtil.ShowError("请选中同一浇次的炉计划");
  1290. return;
  1291. }
  1292. /*
  1293. if (MessageUtil.ShowYesNoAndQuestion(
  1294. "浇次中断,选中的炉计划将生产新的浇次移至最后一浇,且新浇次无首尾加量,该操作无法还原,请确认!"
  1295. ) == DialogResult.No) return;
  1296. */
  1297. /*
  1298. var param1 =
  1299. SteelHelper.SetData(
  1300. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustFurnaceSeq",
  1301. new object[] { list.Select(p => p.Furnaceno).ToList(), list.First().Furnaceno,2 }, Ob);
  1302. */
  1303. var ds =
  1304. plnSteelforfurnaceNewEntityBindingSource.DataSource as List<PlnSteelforfurnaceNewEntity>;
  1305. var InterruptionFurnace =
  1306. ds.Where(p => (p.CastNo == list.First().CastNo) && !list.Contains(p))
  1307. .OrderBy(p => p.CastStoveSeq)
  1308. .LastOrDefault();
  1309. using (var FrmCastInterruption = new FrmCastInterruption(InterruptionFurnace, list, Ob))
  1310. {
  1311. FrmCastInterruption.ShowDialog();
  1312. if (FrmCastInterruption.DialogResult != DialogResult.OK) return;
  1313. FrmCastInterruption.Close();
  1314. }
  1315. MessageUtil.ShowTips("浇次中断成功");
  1316. Query();
  1317. foreach (var plnSteelforfurnaceNewEntity in list)
  1318. {
  1319. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1320. entity.CastNo = plnSteelforfurnaceNewEntity.CastNo;
  1321. entity.CastSeq = plnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1322. entity.Heatno = plnSteelforfurnaceNewEntity.Furnaceno;
  1323. entity.HeatState = plnSteelforfurnaceNewEntity.HeatState;
  1324. entity.ProMonth = plnSteelforfurnaceNewEntity.ProMonth;
  1325. entity.HeatLine = plnSteelforfurnaceNewEntity.EfPlineName;
  1326. entity.CmmLine = plnSteelforfurnaceNewEntity.PlineName;
  1327. entity.Optpersonnel = userName;
  1328. entity.Memo = "浇次中断";
  1329. doAddLgLog(entity);
  1330. }
  1331. /* if (param1 != null)
  1332. {
  1333. MessageUtil.ShowTips("成功调整");
  1334. Query();
  1335. }*/
  1336. }
  1337. /// <summary>
  1338. /// 炉计划补炉
  1339. /// </summary>
  1340. /// <param name="userName"></param>
  1341. public void SupplementStove(string userName)
  1342. {
  1343. if (ugStove.ActiveRow == null)
  1344. {
  1345. MessageUtil.ShowWarning("请选择需要补炉的炉次计划!");
  1346. return;
  1347. }
  1348. var plnSteelforfurnaceNewEntity =
  1349. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1350. if (plnSteelforfurnaceNewEntity == null)
  1351. {
  1352. MessageUtil.ShowWarning("请选择需要补炉的炉次计划!");
  1353. return;
  1354. }
  1355. var text = "是否对所选中的炉次进行补炉或补余材订单?,请确认!";
  1356. var furnShow = new FrmBuFurnShow(text);
  1357. furnShow.ShowDialog();
  1358. var flag = furnShow.Falg;
  1359. string[] param = null;
  1360. if (flag.Equals("1"))
  1361. param = SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SupplementStove",
  1362. new object[] {plnSteelforfurnaceNewEntity.Furnaceno, userName}, Ob);
  1363. else if (flag.Equals("2"))
  1364. param = SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SteelSupplement",
  1365. new object[] {plnSteelforfurnaceNewEntity.Furnaceno, userName}, Ob);
  1366. else
  1367. return;
  1368. //if (MessageUtil.ShowYesNoAndQuestion("是否对所选中的炉次进行补炉?,请确认!") == DialogResult.No)
  1369. // return;
  1370. if (param != null)
  1371. {
  1372. MessageUtil.ShowTips("补炉成功");
  1373. Query();
  1374. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1375. entity.CastNo = plnSteelforfurnaceNewEntity.CastNo;
  1376. entity.CastSeq = plnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1377. entity.Heatno = plnSteelforfurnaceNewEntity.Furnaceno;
  1378. entity.HeatState = plnSteelforfurnaceNewEntity.HeatState;
  1379. entity.ProMonth = plnSteelforfurnaceNewEntity.ProMonth;
  1380. entity.HeatLine = plnSteelforfurnaceNewEntity.EfPlineName;
  1381. entity.CmmLine = plnSteelforfurnaceNewEntity.PlineName;
  1382. entity.Optpersonnel = userName;
  1383. entity.Memo = "炉计划补炉";
  1384. doAddLgLog(entity);
  1385. }
  1386. /*
  1387. if (plnSteelforfurnaceNewEntity.Status != "30" && plnSteelforfurnaceNewEntity.Status != "20")
  1388. {
  1389. MessageUtil.ShowWarning("选中的炉次计划不处于生产状态,无法补炉!");
  1390. return;
  1391. }
  1392. */
  1393. }
  1394. /// <summary>
  1395. /// 补炼
  1396. /// </summary>
  1397. public void SteelSupplement()
  1398. {
  1399. if (ugOrder.ActiveRow == null)
  1400. {
  1401. MessageUtil.ShowWarning("请选择需要补炼的铸造订单计划!");
  1402. return;
  1403. }
  1404. var PlnSteelforOrdNewEntity = ugOrder.ActiveRow.ListObject as PlnSteelforOrdNewEntity;
  1405. if (PlnSteelforOrdNewEntity == null)
  1406. {
  1407. MessageUtil.ShowWarning("请选择需要补炼的铸造订单计划!");
  1408. return;
  1409. }
  1410. if (PlnSteelforOrdNewEntity.Status != "30")
  1411. {
  1412. MessageUtil.ShowWarning("选中的铸造订单不处于已生产状态,无法补炼!");
  1413. return;
  1414. }
  1415. var Weight = PlnSteelforOrdNewEntity.TotWeightM ?? 0; // - (PlnSteelforOrdNewEntity.ActWeightM ?? 0);
  1416. var Qty = PlnSteelforOrdNewEntity.TotMumM ?? 0; //- (PlnSteelforOrdNewEntity.ActMumM ?? 0);
  1417. if (Weight <= 0)
  1418. {
  1419. MessageUtil.ShowWarning("选中的铸造订单没有差量,不需要补炼!");
  1420. return;
  1421. }
  1422. if (Qty <= 0) Qty = 1;
  1423. var NewPlnSteelforOrdNewEntity = PlnSteelforOrdNewEntity.Clone() as PlnSteelforOrdNewEntity;
  1424. if (NewPlnSteelforOrdNewEntity == null) NewPlnSteelforOrdNewEntity = new PlnSteelforOrdNewEntity();
  1425. NewPlnSteelforOrdNewEntity.Surplusflag = "0";
  1426. NewPlnSteelforOrdNewEntity.SurplusType = "0";
  1427. NewPlnSteelforOrdNewEntity.IfSurplusAlloted = "0";
  1428. NewPlnSteelforOrdNewEntity.TotMumM = Qty;
  1429. NewPlnSteelforOrdNewEntity.TotWeightM = Weight;
  1430. using (var FrmSteelSupplement = new FrmSteelSupplement
  1431. {
  1432. ListSource = new List<PlnSteelforOrdNewEntity> {NewPlnSteelforOrdNewEntity},
  1433. ob = Ob
  1434. })
  1435. {
  1436. FrmSteelSupplement.ShowDialog();
  1437. if (FrmSteelSupplement.DialogResult != DialogResult.OK) return;
  1438. FrmSteelSupplement.Close();
  1439. }
  1440. MessageUtil.ShowTips("补炼成功");
  1441. Query();
  1442. }
  1443. /// <summary>
  1444. /// 炉计划转交
  1445. /// </summary>
  1446. /// <param name="userName"></param>
  1447. public void HandOver(string userName)
  1448. {
  1449. if (ugStove.ActiveRow == null)
  1450. {
  1451. MessageUtil.ShowWarning("请选择需要转交的炉计划!");
  1452. return;
  1453. }
  1454. var PlnSteelforfurnaceNewEntity = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1455. if (PlnSteelforfurnaceNewEntity == null)
  1456. {
  1457. MessageUtil.ShowWarning("请选择需要转交的炉计划!");
  1458. return;
  1459. }
  1460. using (var FrmSteelHandOver = new FrmSteelHandOver(PlnSteelforfurnaceNewEntity, Ob))
  1461. {
  1462. FrmSteelHandOver.ShowDialog();
  1463. if (FrmSteelHandOver.DialogResult != DialogResult.OK) return;
  1464. FrmSteelHandOver.Close();
  1465. }
  1466. MessageUtil.ShowTips("转交成功");
  1467. Query();
  1468. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1469. entity.CastNo = PlnSteelforfurnaceNewEntity.CastNo;
  1470. entity.CastSeq = PlnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1471. entity.Heatno = PlnSteelforfurnaceNewEntity.Furnaceno;
  1472. entity.HeatState = PlnSteelforfurnaceNewEntity.HeatState;
  1473. entity.ProMonth = PlnSteelforfurnaceNewEntity.ProMonth;
  1474. entity.HeatLine = PlnSteelforfurnaceNewEntity.EfPlineName;
  1475. entity.CmmLine = PlnSteelforfurnaceNewEntity.PlineName;
  1476. entity.Optpersonnel = userName;
  1477. entity.Memo = "炉计划转交";
  1478. doAddLgLog(entity);
  1479. }
  1480. /// <summary>
  1481. /// 炉计划转分切
  1482. /// </summary>
  1483. /// <param name="userName"></param>
  1484. public void ChangeOrder(string userName)
  1485. {
  1486. if (ugStove.ActiveRow == null)
  1487. {
  1488. MessageUtil.ShowWarning("请选择需要转分切的炉计划!");
  1489. return;
  1490. }
  1491. var PlnSteelforfurnaceNewEntity = ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1492. if (PlnSteelforfurnaceNewEntity == null)
  1493. {
  1494. MessageUtil.ShowWarning("请选择需要转分切的炉计划!");
  1495. return;
  1496. }
  1497. List<PlnSteelforOrdNewEntity> listSource = EntityHelper.GetData<PlnSteelforOrdNewEntity>
  1498. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforOrdEntity", new object[] {PlnSteelforfurnaceNewEntity.CastNo}, Ob);
  1499. var Diameter = "";
  1500. if ((listSource != null) && (listSource.Count >= 0))
  1501. {
  1502. var plnSteelforOrdNewEntity = listSource.FirstOrDefault();
  1503. if (plnSteelforOrdNewEntity != null) Diameter = plnSteelforOrdNewEntity.Diameter;
  1504. }
  1505. listSource = EntityHelper.GetData<PlnSteelforOrdNewEntity>
  1506. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforOrdEntity", new object[]
  1507. {
  1508. new List<string> {PlnSteelforfurnaceNewEntity.Furnaceno},
  1509. new List<string> {PlnSteelforfurnaceNewEntity.PlineCode},
  1510. new List<string> {"10"},
  1511. Diameter,
  1512. PlnSteelforfurnaceNewEntity.Gradecode
  1513. }, Ob);
  1514. List<PlnOrderCastSEntity> listSource2 = EntityHelper.GetData<PlnOrderCastSEntity>
  1515. ("com.steering.pss.plnsaleord.steelMarkingPlan.ControlOrderPlan.getOrderBInfoByContion",
  1516. new object[]
  1517. {
  1518. new string[] {}, new[] {"C001", "C003", "C006"}, PlnSteelforfurnaceNewEntity.Gradecode,
  1519. "", "1", "1", new[] {"0", "1", "", ""}, new[] {PlnSteelforfurnaceNewEntity.PlineCode}, "0"
  1520. }, Ob);
  1521. List<PlnSteelforfurnaceNewEntity> listSource3 = EntityHelper.GetData<PlnSteelforfurnaceNewEntity>
  1522. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforfurnaceEntity",
  1523. new object[]
  1524. {
  1525. new List<string> {PlnSteelforfurnaceNewEntity.EfPlineCode}, PlnSteelforfurnaceNewEntity.Gradecode,
  1526. new List<string> {PlnSteelforfurnaceNewEntity.Furnaceno}, new List<string> {"10", "20","30"},
  1527. PlnSteelforfurnaceNewEntity.Furnaceno
  1528. },
  1529. Ob);
  1530. using (var FrmSteelChangeOrderPlan = new FrmSteelChangeOrderPlan
  1531. {
  1532. ListSource = listSource.Where(p => (p.SurplusType != "2") && (p.SurplusType != "3") && (p.Surplusflag != "1")).ToList(),
  1533. listSource2 = listSource2.Where(p => ((Diameter == "") || (p.DiameterLz == Diameter)) && (p.CanWgt > 0)).ToList(),
  1534. listSource3 = listSource3,
  1535. FurnaceNo = PlnSteelforfurnaceNewEntity.Furnaceno,
  1536. ob = Ob
  1537. })
  1538. {
  1539. FrmSteelChangeOrderPlan.ShowDialog();
  1540. if (FrmSteelChangeOrderPlan.DialogResult != DialogResult.OK) return;
  1541. FrmSteelChangeOrderPlan.Close();
  1542. }
  1543. MessageUtil.ShowTips("转分切成功");
  1544. Query();
  1545. ImpFrmdispatchEntity entity = new ImpFrmdispatchEntity();
  1546. entity.CastNo = PlnSteelforfurnaceNewEntity.CastNo;
  1547. entity.CastSeq = PlnSteelforfurnaceNewEntity.CastSeq.ToString2();
  1548. entity.Heatno = PlnSteelforfurnaceNewEntity.Furnaceno;
  1549. entity.HeatState = PlnSteelforfurnaceNewEntity.HeatState;
  1550. entity.ProMonth = PlnSteelforfurnaceNewEntity.ProMonth;
  1551. entity.HeatLine = PlnSteelforfurnaceNewEntity.EfPlineName;
  1552. entity.CmmLine = PlnSteelforfurnaceNewEntity.PlineName;
  1553. entity.Optpersonnel = userName;
  1554. entity.Memo = "炉计划转分切";
  1555. doAddLgLog(entity);
  1556. }
  1557. // Completion
  1558. private void CompletionStove(string userName)
  1559. {
  1560. var entityList =
  1561. (from UltraGridRow p in ugStove.Selected.Rows
  1562. where p.ListObject is PlnSteelforfurnaceNewEntity
  1563. select p.ListObject as PlnSteelforfurnaceNewEntity).ToList();
  1564. if (!entityList.Any() && (ugStove.ActiveRow != null))
  1565. {
  1566. var plnSteelforfurnaceNewEntity =
  1567. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1568. if (plnSteelforfurnaceNewEntity != null)
  1569. entityList.Add(plnSteelforfurnaceNewEntity);
  1570. }
  1571. if (!entityList.Any())
  1572. {
  1573. MessageUtil.ShowWarning("请需要确认生产的炉次!");
  1574. return;
  1575. }
  1576. if (MessageUtil.ShowYesNoAndQuestion("改变所选中的" + entityList.Count + "个炉次为已生产") ==
  1577. DialogResult.No)
  1578. return;
  1579. var param =
  1580. SteelHelper.SetData(
  1581. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.UpdatePlnSteelforfurnaceStatus",
  1582. new object[] {entityList.Select(p => p.Furnaceno).ToList(), "30", userName}, Ob);
  1583. if (param != null)
  1584. {
  1585. MessageUtil.ShowTips("更改成功");
  1586. Query();
  1587. }
  1588. }
  1589. public void ChangePline(string userName)
  1590. {
  1591. var entityList =
  1592. (from UltraGridRow p in ugStove.Selected.Rows
  1593. where p.ListObject is PlnSteelforfurnaceNewEntity
  1594. select p.ListObject as PlnSteelforfurnaceNewEntity).ToList();
  1595. if (!entityList.Any() && (ugStove.ActiveRow != null))
  1596. {
  1597. var plnSteelforfurnaceNewEntity =
  1598. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1599. if (plnSteelforfurnaceNewEntity != null)
  1600. entityList.Add(plnSteelforfurnaceNewEntity);
  1601. }
  1602. if (!entityList.Any())
  1603. {
  1604. MessageUtil.ShowWarning("请选择需要更换铸造产线的炉次计划!");
  1605. return;
  1606. }
  1607. if (entityList.Any(p => (p.Status != "30") && (p.Status != "20") && (p.Status != "10")))
  1608. {
  1609. MessageUtil.ShowWarning("选中的炉次计划不处于下发或生产中或已生产状态,无法更换铸造产线!");
  1610. return;
  1611. }
  1612. if (entityList.Any(p => (p.PlineCode != "C007") && (p.PlineCode != "C004")))
  1613. {
  1614. MessageUtil.ShowWarning("选中的炉次计划不是二炼钢铸机或者三炼钢铸机,无法更换铸造产线!");
  1615. return;
  1616. }
  1617. var data =
  1618. entityList.GroupBy(p => p.CastNo).Select(p => p.OrderBy(q => q.FurnacenoSeq).Select(q => q.Furnaceno).ToList()).ToList();
  1619. if (MessageUtil.ShowYesNoAndQuestion(string.Format("所选{0}个炉次进行更换铸造产线,系统将拆分这{1}个浇次的浇次计划,生成新的浇次计划.请确认!", entityList.Count, data.Count)) == DialogResult.No)
  1620. return;
  1621. var param =
  1622. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.ChangePline",
  1623. new object[] {data, userName}, Ob);
  1624. if (param != null)
  1625. {
  1626. if (param.Length > 1)
  1627. MessageUtil.ShowTips(param[1]);
  1628. else
  1629. MessageUtil.ShowTips("更换铸造产线成功");
  1630. Query();
  1631. }
  1632. }
  1633. #endregion
  1634. #region 关闭计划
  1635. /// <summary>
  1636. /// 关闭计划
  1637. /// </summary>
  1638. /// <param name="userName"></param>
  1639. public void ClosePlan(string userName)
  1640. {
  1641. if (ugbCast.Expanded && (ugCast.Selected.Rows.Count > 0))
  1642. CloseCastPlan(userName);
  1643. else if (ugbStove.Expanded && (ugStove.Selected.Rows.Count > 0))
  1644. CloseStovePlan(userName);
  1645. else
  1646. MessageUtil.ShowWarning("请选择需要关闭的浇次计划或者炉计划!");
  1647. }
  1648. private void CloseStovePlan(string userName)
  1649. {
  1650. var entityList =
  1651. (from UltraGridRow p in ugStove.Selected.Rows
  1652. where p.ListObject is PlnSteelforfurnaceNewEntity
  1653. select p.ListObject as PlnSteelforfurnaceNewEntity).ToList();
  1654. if (!entityList.Any() && (ugStove.ActiveRow != null))
  1655. {
  1656. var plnSteelforfurnaceNewEntity =
  1657. ugStove.ActiveRow.ListObject as PlnSteelforfurnaceNewEntity;
  1658. if (plnSteelforfurnaceNewEntity != null)
  1659. entityList.Add(plnSteelforfurnaceNewEntity);
  1660. }
  1661. if (!entityList.Any())
  1662. {
  1663. MessageUtil.ShowWarning("请选择需要关闭的炉次计划!");
  1664. return;
  1665. }
  1666. if (entityList.Any(p => p.Status != "30"))
  1667. {
  1668. MessageUtil.ShowWarning("选中的炉次计划不处于已生产状态,无法关闭!");
  1669. return;
  1670. }
  1671. if (MessageUtil.ShowYesNoAndQuestion("是否关闭所选中的" + entityList.Count + "个炉次?该操作不可撤销,请确认!") == DialogResult.No)
  1672. return;
  1673. var param =
  1674. SteelHelper.SetData(
  1675. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.ClosePlnSteelforfurnace",
  1676. new object[] {entityList.Select(p => p.Furnaceno).ToList(), userName}, Ob);
  1677. if (param != null)
  1678. {
  1679. MessageUtil.ShowTips("关闭炉次成功");
  1680. Query();
  1681. }
  1682. }
  1683. /// <summary>
  1684. /// 关闭浇次计划
  1685. /// </summary>
  1686. /// <param name="userName"></param>
  1687. private void CloseCastPlan(string userName)
  1688. {
  1689. var entityList =
  1690. (from UltraGridRow p in ugCast.Selected.Rows
  1691. where p.ListObject is PlnSteelforcastNewEntity
  1692. select p.ListObject as PlnSteelforcastNewEntity).ToList();
  1693. if (!entityList.Any() && (ugCast.ActiveRow != null))
  1694. {
  1695. var PlnSteelforcastNewEntity =
  1696. ugCast.ActiveRow.ListObject as PlnSteelforcastNewEntity;
  1697. if (PlnSteelforcastNewEntity != null)
  1698. entityList.Add(PlnSteelforcastNewEntity);
  1699. }
  1700. if (!entityList.Any())
  1701. {
  1702. MessageUtil.ShowWarning("请需要关闭的浇次!");
  1703. return;
  1704. }
  1705. if (entityList.Any(p => p.Status != "30"))
  1706. {
  1707. MessageUtil.ShowWarning("选中的浇次不处于已生产状态,无法关闭!");
  1708. return;
  1709. }
  1710. if (MessageUtil.ShowYesNoAndQuestion("是否关闭所选中的" + entityList.Count + "个浇次计划?该操作不可撤销,请确认! ") ==
  1711. DialogResult.No)
  1712. return;
  1713. var param =
  1714. SteelHelper.SetData(
  1715. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.ClosePlnSteelforcast",
  1716. new object[] {entityList.Select(p => p.CastNo).ToList(), userName}, Ob);
  1717. if (param != null)
  1718. {
  1719. MessageUtil.ShowTips("关闭浇次计划成功");
  1720. Query();
  1721. }
  1722. }
  1723. #endregion
  1724. #region 调整顺序
  1725. private void AdjustCastSeq(SelectedRowsCollection adjustCast, int targetPoint)
  1726. {
  1727. var targetPlnSteelforcast = ugCast.Rows[targetPoint].ListObject as PlnSteelforcastNewEntity;
  1728. if (targetPlnSteelforcast == null)
  1729. {
  1730. MessageUtil.ShowError("找不到指定的位置");
  1731. return;
  1732. }
  1733. var list = (from UltraGridRow p in adjustCast
  1734. where p.ListObject is PlnSteelforcastNewEntity
  1735. select p.ListObject as PlnSteelforcastNewEntity).OrderBy(p => p.CastSeq).ToList();
  1736. if (!list.Any())
  1737. {
  1738. MessageUtil.ShowError("无拖动的数据");
  1739. return;
  1740. }
  1741. if (list.Any(p => p.CastSeq == null))
  1742. {
  1743. MessageUtil.ShowError("无法调整无浇次顺序号的数据");
  1744. return;
  1745. }
  1746. if (targetPlnSteelforcast.CastSeq == null)
  1747. {
  1748. MessageUtil.ShowError("无法识别目标位置的顺序号,无法调整顺序");
  1749. return;
  1750. }
  1751. var targetCast = (long) targetPlnSteelforcast.CastSeq;
  1752. if (list.Select(p => p.PlineCode).Distinct().Count() > 1)
  1753. {
  1754. MessageUtil.ShowError("不同铸造产线无法调整顺序");
  1755. return;
  1756. }
  1757. var plnSteelforcastNewEntity = list.FirstOrDefault();
  1758. if ((plnSteelforcastNewEntity != null) && (plnSteelforcastNewEntity.PlineCode != targetPlnSteelforcast.PlineCode))
  1759. {
  1760. MessageUtil.ShowError("不同铸造产线无法调整顺序");
  1761. return;
  1762. }
  1763. if (MessageUtil.ShowYesNoAndQuestion(
  1764. string.Format("是否将这{0}个浇次按顺序调整到{1}之前", adjustCast.Count, targetPlnSteelforcast.CastNo)
  1765. ) == DialogResult.No) return;
  1766. /* //将选择的数据 按castseq 从小到大排序 防止界面调整过顺序
  1767. var listCast = list.OrderBy(p => p.CastSeq).Select(p => p.CastNo).ToList();
  1768. var listSeq = list.Where(p => p.CastSeq != null).Select(p => (long) p.CastSeq).ToList();
  1769. var maxSeq = listSeq.Max() >= targetCast ? listSeq.Max() : targetCast -1;
  1770. var minSeq = listSeq.Min() <= targetCast ? listSeq.Min() : targetCast ;
  1771. // 按照浇次seq范围把所需要调整的Cast全查出来,
  1772. List<PlnSteelforcastNewEntity> listSource = EntityHelper.GetData<PlnSteelforcastNewEntity>
  1773. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforcastEntity",
  1774. new object[] {new List<string>(){targetPlnSteelforcast.PlineCode}, minSeq, maxSeq}, Ob);
  1775. if (listSource == null)
  1776. {
  1777. MessageUtil.ShowError("无拖动的数据");
  1778. return;
  1779. }
  1780. //排除掉选择的浇次号
  1781. var castElse = listSource.Select(p => p.CastNo).Where(p => !listCast.Contains(p)).ToList();
  1782. //无意义的排序 选择的浇次拖到自己本身
  1783. if (!castElse.Any())
  1784. return;
  1785. //按照调整后的顺序排序
  1786. var List =
  1787. castElse.Take((int) (targetCast - minSeq))
  1788. .Concat(listCast)
  1789. .Concat(castElse.Skip((int) (targetCast - minSeq))).ToList();*/
  1790. var param =
  1791. SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCastSeq",
  1792. new object[] {list.Select(p => p.CastNo).ToList(), targetPlnSteelforcast.CastNo}, Ob);
  1793. if (param != null)
  1794. {
  1795. MessageUtil.ShowTips(string.Format("成功将这{0}个浇次调整到{1}之前", adjustCast.Count, targetPlnSteelforcast.CastNo));
  1796. Query();
  1797. }
  1798. }
  1799. private void AdjustStoveSeq(SelectedRowsCollection adjustStove, int targetPoint)
  1800. {
  1801. var targePlnSteelforfurnace = ugStove.Rows[targetPoint].ListObject as PlnSteelforfurnaceNewEntity;
  1802. if (targePlnSteelforfurnace == null)
  1803. {
  1804. MessageUtil.ShowError("找不到指定的位置");
  1805. return;
  1806. }
  1807. var list = (from UltraGridRow p in adjustStove
  1808. where p.ListObject is PlnSteelforfurnaceNewEntity
  1809. select p.ListObject as PlnSteelforfurnaceNewEntity).OrderBy(p => p.FurnacenoSeq).ToList();
  1810. if (!list.Any())
  1811. {
  1812. MessageUtil.ShowError("无拖动的数据");
  1813. return;
  1814. }
  1815. if (list.Any(p => p.CastSeq == null))
  1816. {
  1817. MessageUtil.ShowError("拖动的数据无浇次顺序号,无法调整");
  1818. return;
  1819. }
  1820. if (targePlnSteelforfurnace.CastStoveSeq == null)
  1821. {
  1822. MessageUtil.ShowError("无法识别目标位置的浇次内顺序,无法调整");
  1823. return;
  1824. }
  1825. if (targePlnSteelforfurnace.FurnacenoSeq == null)
  1826. {
  1827. MessageUtil.ShowError("无法识别目标位置的浇次顺序,无法调整");
  1828. return;
  1829. }
  1830. /* if (targePlnSteelforfurnace.Status != "10")
  1831. {
  1832. MessageUtil.ShowError("只能调至下发状态的炉计划之前");
  1833. return;
  1834. }*/
  1835. if (MessageUtil.ShowYesNoAndQuestion(
  1836. string.Format("是否将选中炉次调整到炉次{0}之前", targePlnSteelforfurnace.Furnaceno)
  1837. ) == DialogResult.No) return;
  1838. var param1 =
  1839. SteelHelper.SetData(
  1840. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustFurnaceSeq",
  1841. new object[] {list.Select(p => p.Furnaceno).ToList(), targePlnSteelforfurnace.Furnaceno}, Ob);
  1842. if (param1 != null)
  1843. {
  1844. MessageUtil.ShowTips("成功调整");
  1845. Query();
  1846. }
  1847. /*
  1848. if (list.Count == 1 && list.First().CastNo != targePlnSteelforfurnace.CastNo)
  1849. {
  1850. if (MessageUtil.ShowYesNoAndQuestion(
  1851. string.Format("是否将浇次{0}调整到浇次{1}之前", list.First().CastNo, targePlnSteelforfurnace.CastNo)
  1852. ) == DialogResult.No) return;
  1853. var param1 =
  1854. SteelHelper.SetData(
  1855. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCastFurnaceSeq",
  1856. new object[] { list.First().CastNo, targePlnSteelforfurnace.CastNo, targePlnSteelforfurnace.EfPlineCode, targePlnSteelforfurnace.FurnacenoSeq< list.First().FurnacenoSeq }, Ob);
  1857. if (param1 != null)
  1858. {
  1859. MessageUtil.ShowTips("成功调整");
  1860. Query();
  1861. }
  1862. return;
  1863. }
  1864. var castStoveSeq = (long) targePlnSteelforfurnace.CastStoveSeq;
  1865. var furnacenoSeq = (long) targePlnSteelforfurnace.FurnacenoSeq;
  1866. if (list.Select(p => p.CastNo).Distinct().Count() > 1)
  1867. {
  1868. MessageUtil.ShowError("只能调整同浇次的浇次内顺序");
  1869. return;
  1870. }
  1871. string[] param = null;
  1872. //将选择的数据 按castseq 从小到大排序 防止界面调整过顺序
  1873. var listFurnaceno = list.OrderBy(p => p.CastStoveSeq).Select(p => p.Furnaceno).ToList();
  1874. var lines = list.Select(p => p.EfPlineCode).Distinct().ToList();
  1875. if (lines.Count() == 1 && lines.FirstOrDefault() != targePlnSteelforfurnace.EfPlineCode )
  1876. {
  1877. #region 调整产线
  1878. if (lines.FirstOrDefault() != "C003" && lines.FirstOrDefault() != "C006")
  1879. {
  1880. MessageUtil.ShowError("只有二炼钢电炉和三炼钢电炉才能调整产线");
  1881. return;
  1882. }
  1883. if (MessageUtil.ShowYesNoAndQuestion(
  1884. string.Format("是否将这{0}个炉次调整至{1},调整到炉次号{2}之前", adjustStove.Count,targePlnSteelforfurnace.EfPlineCode, targePlnSteelforfurnace.Furnaceno)
  1885. ) == DialogResult.No) return;
  1886. param =
  1887. SteelHelper.SetData(
  1888. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustEFLine",
  1889. new object[] { listFurnaceno, targePlnSteelforfurnace.Furnaceno}, Ob);
  1890. #endregion
  1891. }
  1892. else
  1893. {
  1894. #region 调整同浇次的浇次内顺序
  1895. var plnSteelforfurnaceNewEntity = list.FirstOrDefault();
  1896. if (plnSteelforfurnaceNewEntity != null && plnSteelforfurnaceNewEntity.CastNo != targePlnSteelforfurnace.CastNo)
  1897. {
  1898. MessageUtil.ShowError("只能调整同浇次的浇次内顺序");
  1899. return;
  1900. }
  1901. if (list.Any(p => p.Status != "10"))
  1902. {
  1903. MessageUtil.ShowError("只能调整下发的炉计划顺序");
  1904. return;
  1905. }
  1906. if (MessageUtil.ShowYesNoAndQuestion(
  1907. string.Format("是否将这{0}个炉次按顺序调整到浇次{1}之前", adjustStove.Count, targePlnSteelforfurnace.Furnaceno)
  1908. ) == DialogResult.No) return;
  1909. var listSeq = list.Where(p => p.CastStoveSeq != null).Select(p => (long)p.CastStoveSeq).ToList();
  1910. var maxSeq = listSeq.Max() >= castStoveSeq ? listSeq.Max() : castStoveSeq -1;
  1911. long minSeq;
  1912. if (listSeq.Min() <= castStoveSeq)
  1913. {
  1914. minSeq = listSeq.Min();
  1915. }
  1916. else
  1917. {
  1918. minSeq = castStoveSeq;
  1919. }
  1920. // 按照浇次seq范围把所需要调整的炉次全查出来,
  1921. List<PlnSteelforfurnaceNewEntity> listSource = EntityHelper.GetData<PlnSteelforfurnaceNewEntity>
  1922. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SelectPlnSteelforfurnaceEntity",
  1923. new object[] { targePlnSteelforfurnace.CastNo, minSeq, maxSeq }, Ob);
  1924. if (listSource == null)
  1925. {
  1926. MessageUtil.ShowError("无拖动的数据");
  1927. return;
  1928. }
  1929. //排除掉选择的炉次号
  1930. var furnacenoElse = listSource.Select(p => p.Furnaceno).Where(p => !listFurnaceno.Contains(p)).ToList();
  1931. //无意义的排序 选择的炉次拖到自己本身
  1932. if (!furnacenoElse.Any())
  1933. return;
  1934. //按照调整后的顺序排序
  1935. var List =
  1936. furnacenoElse.Take((int)(castStoveSeq - minSeq))
  1937. .Concat(listFurnaceno)
  1938. .Concat(furnacenoElse.Skip((int)(castStoveSeq - minSeq))).ToList();
  1939. param =
  1940. SteelHelper.SetData(
  1941. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCastStoveSeq",
  1942. new object[] { List, targePlnSteelforfurnace.CastNo, minSeq }, Ob);
  1943. #endregion
  1944. }
  1945. if (param != null)
  1946. {
  1947. MessageUtil.ShowTips("成功调整");
  1948. Query();
  1949. }*/
  1950. }
  1951. private void AdjustCcmSeq(SelectedRowsCollection adjustOrder, int targetPoint)
  1952. {
  1953. var PlnSteelforOrdNewEntity = ugOrder.Rows[targetPoint].ListObject as PlnSteelforOrdNewEntity;
  1954. if (PlnSteelforOrdNewEntity == null)
  1955. {
  1956. MessageUtil.ShowError("找不到指定的位置");
  1957. return;
  1958. }
  1959. var list = (from UltraGridRow p in adjustOrder
  1960. where p.ListObject is PlnSteelforOrdNewEntity
  1961. select p.ListObject as PlnSteelforOrdNewEntity).ToList();
  1962. if (!list.Any())
  1963. {
  1964. MessageUtil.ShowError("无拖动的数据");
  1965. return;
  1966. }
  1967. if (list.Select(p => p.CastNo).Distinct().Count() != 1)
  1968. {
  1969. MessageUtil.ShowError("无法跨浇次调整");
  1970. return;
  1971. }
  1972. var DataSource =
  1973. plnSteelforOrdNewEntityBindingSource.DataSource as List<PlnSteelforOrdNewEntity>;
  1974. var furnacenos = list.Select(p => p.Furnaceno).Distinct().ToList();
  1975. if ((furnacenos.Count == 1) && (furnacenos[0] == PlnSteelforOrdNewEntity.Furnaceno))
  1976. {
  1977. }
  1978. else
  1979. {
  1980. list = DataSource.Where(p => furnacenos.Contains(p.Furnaceno)).OrderBy(p => p.CcmSeq).ToList();
  1981. var temlist = DataSource.Where(p => PlnSteelforOrdNewEntity.Furnaceno == p.Furnaceno).ToList();
  1982. PlnSteelforOrdNewEntity = temlist.FirstOrDefault();
  1983. }
  1984. if (MessageUtil.ShowYesNoAndQuestion("是否调整选中铸造计划"
  1985. ) == DialogResult.No) return;
  1986. var param1 =
  1987. SteelHelper.SetData(
  1988. "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.AdjustCcmSeq",
  1989. new object[] {list.Select(JSONFormat.Format).ToList(), JSONFormat.Format(PlnSteelforOrdNewEntity)}, Ob);
  1990. if (param1 != null)
  1991. {
  1992. MessageUtil.ShowTips("成功调整");
  1993. Query();
  1994. }
  1995. }
  1996. #endregion
  1997. }
  1998. }