FrmMaterialChoose.cs 108 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306
  1. using Core.StlMes.Client.PlnSaleOrd.PlanStove.entity;
  2. using CoreFS.CA06;
  3. using Infragistics.Win.UltraWinGrid;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Windows.Forms;
  12. using Core.StlMes.Client.PlnSaleOrd;
  13. using Core.Mes.Client.Comm.Control;
  14. using System.Text.RegularExpressions;
  15. using Core.Mes.Client.Comm.Format;
  16. using Core.Mes.Client.Comm.Tool;
  17. using CoreFS.SA06;
  18. using Core.Mes.Client.Comm.Server;
  19. namespace Core.StlMes.Client.PlnSaleOrd.PlanStove.Dlg
  20. {
  21. ///物料选择框
  22. public partial class FrmMaterialChoose : FrmBase
  23. {
  24. /// 接收从母窗体传过来的单元格事件,确定后会返还给母窗体
  25. /// </summary>
  26. public string m_InwlId="";
  27. private string m_ProPlanId="";
  28. private string m_GxPlanNo="";
  29. private string m_heatplanno="";
  30. private string m_loginusername="";
  31. private string m_StoveNo="";
  32. private string m_BatchNo="";
  33. private string m_BatchGroupNo="";
  34. private int m_OriginNum=0;//保存修改前作业计划量
  35. private bool Isupdate = false;
  36. private int m_OriginTotalnum = 0;//保存该组物料总量
  37. private double m_OriginTOtalWt = 0;
  38. private int m_MaxValidCount = 0;//保存能投入的最大量
  39. private string m_PlanStatus = "计划";
  40. private Dictionary<UltraGridRow, int> RowsCountsMapping = new Dictionary<UltraGridRow, int>();
  41. /// <summary>
  42. /// 物料确定的事件,可以将物料清单和母窗体的单元格事件发送给订阅者
  43. /// </summary>
  44. public event Action<List<Infragistics.Win.UltraWinGrid.UltraGridRow>> OnMaterialConfirm;
  45. public event Action OnDataChange;
  46. public FrmMaterialChoose(OpeBase ob, string InwlId, string ProPlanID, string GxPlanNo, string CustomerInfo, string StoveNo, string BatchNO,string BatchGroupNo, string HEAT_PLAN_NO, int outNum,string PlanStatus,string username)
  47. {
  48. InitializeComponent();
  49. this.ob = ob;
  50. this.CustomInfo = CustomerInfo;
  51. m_InwlId = InwlId;
  52. m_ProPlanId = ProPlanID;
  53. m_GxPlanNo = GxPlanNo;
  54. //this.OnMaterialConfirm += materialChoose_OnMaterialConfirm;
  55. Isupdate = true;
  56. m_StoveNo = StoveNo;
  57. m_BatchNo = BatchNO;
  58. m_BatchGroupNo = BatchGroupNo;
  59. m_OriginNum = outNum;
  60. m_heatplanno = HEAT_PLAN_NO;
  61. m_loginusername = username;
  62. m_PlanStatus = PlanStatus;
  63. }
  64. public FrmMaterialChoose(OpeBase ob,string InwlId,string ProPlanID,string GxPlanNo,string CustomerInfo,string username)
  65. {
  66. InitializeComponent();
  67. this.ob = ob;
  68. this.CustomInfo = CustomerInfo;
  69. m_InwlId = InwlId;
  70. m_loginusername = username;
  71. m_ProPlanId = ProPlanID;
  72. m_GxPlanNo = GxPlanNo;
  73. this.OnMaterialConfirm += materialChoose_OnMaterialConfirm;
  74. }
  75. /// <summary>
  76. /// 窗体的加载事件,初始化数据
  77. /// </summary>
  78. /// <param name="sender"></param>
  79. /// <param name="e"></param>
  80. private void FrmMaterialChoose_Load(object sender, EventArgs e)
  81. {
  82. Init_Comm();
  83. queryAll();
  84. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  85. {
  86. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_NO"].Hidden = true;
  87. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_GROUD_NO"].Hidden = true;
  88. }
  89. if (Isupdate)
  90. {
  91. if (this.ultraGrid1.Rows.Count <= 0)
  92. {
  93. MessageUtil.ShowTips("未找到对应的物料!");
  94. this.Close();
  95. return;
  96. }
  97. var row = this.ultraGrid1.Rows.First();
  98. try
  99. {
  100. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  101. {
  102. var datasources = EntityHelper.GetData<PlnZyZgCEntity>(MethodDef.StoveBase.queryZyC, new Object[] { SqlIDDef.PlanLuZG.queryZYZGC, m_heatplanno }, this.ob);
  103. foreach (PlnZyZgCEntity zyzgc in datasources)
  104. {
  105. var matchrow = this.ultraGrid1.Rows.FirstOrDefault(c => c.Cells["ACT_LEN"].Text.Trim().Equals(zyzgc.LengthGp.ToString().Trim()));
  106. if (matchrow != null)
  107. {
  108. matchrow.Cells["USER_ACT_COUNT"].Value = zyzgc.InGpNum;
  109. matchrow.Cells["Choose"].Value = true;
  110. matchrow.Cells["USER_ACT_COUNT"].Appearance.BackColor = Color.Pink;
  111. }
  112. }
  113. foreach (var matrow in this.ultraGrid1.Rows)
  114. {
  115. int count = 0;
  116. try
  117. {
  118. count = Convert.ToInt32(matrow.Cells["USER_ACT_COUNT"].Value);
  119. }
  120. catch
  121. {
  122. }
  123. RowsCountsMapping.Add(matrow, count);
  124. }
  125. }
  126. else if(CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_JG)
  127. {
  128. }
  129. else
  130. {
  131. int num = Convert.ToInt32(row.Cells["ACT_COUNT"].Text);
  132. double wt = Convert.ToDouble(row.Cells["ACT_WEIGHT"].Text);
  133. double singlewt = wt / num;
  134. m_OriginTotalnum = m_OriginNum + num;
  135. m_OriginTOtalWt = CommHelper.GetSpecDecimalBit(singlewt * (m_OriginNum + num), 3);
  136. SetTempData(m_OriginNum, CommHelper.GetSpecDecimalBit(singlewt * m_OriginNum, 3));
  137. }
  138. }
  139. catch
  140. {
  141. }
  142. }
  143. this.ultraGrid2.DisplayLayout.Bands[0].Columns["GxProSeq"].Header.Caption = "生产顺序号";
  144. this.ultraGrid2.DisplayLayout.Bands[0].Columns["OrderSource"].Header.Caption = "主合同来源";
  145. this.ultraGrid2.DisplayLayout.Bands[0].Columns["ExeStatus"].Header.Caption = "执行状态";
  146. CommHelper.SetGridColNoEdit(this.ultraGrid1.DisplayLayout.Bands[0], new string[] { "Choose", "USER_ACT_COUNT" });
  147. CommHelper.SetColumnAutoFitSize1(this.ultraGrid1.DisplayLayout.Bands[0]);
  148. CommHelper.SetColumnAutoFitSize1(this.ultraGrid2.DisplayLayout.Bands[0]);
  149. }
  150. #region 控件事件
  151. /// <summary>
  152. /// toolbarmanager的tool单击事件
  153. /// </summary>
  154. /// <param name="sender"></param>
  155. /// <param name="e"></param>
  156. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  157. {
  158. switch (e.Tool.Key)
  159. {
  160. case "Confirm":
  161. Confirm();
  162. break;
  163. case "Cancel":
  164. if (this.OnDataChange != null)
  165. {
  166. OnDataChange();
  167. }
  168. this.Close();
  169. break;
  170. }
  171. }
  172. /// <summary>
  173. /// 物料选择确定事件的方法函数,第一个参数是弹出框中所选的作业计划的集合,第二个参数单击弹出弹出框时传入的本窗口grid1的单元格单击事件参数,只是为了定位最开始用的哪条订单记录
  174. /// </summary>
  175. /// <param name="obj"></param>
  176. /// <param name="e"></param>
  177. void materialChoose_OnMaterialConfirm(List<Infragistics.Win.UltraWinGrid.UltraGridRow> obj)
  178. {
  179. switch (CustomInfo)
  180. {
  181. case CustomInfoDef.DEFINE_CUSTOMER_DBK:
  182. ZYResultProcessDBK(obj);
  183. break;
  184. case CustomInfoDef.DEFINE_CUSTOMER_RCL:
  185. ZYResultProcessRCL(obj);
  186. break;
  187. case CustomInfoDef.DEFINE_CUSTOMER_JG:
  188. ZYResultProcessJGX(obj);
  189. break;
  190. case CustomInfoDef.DEFINE_CUSTOMER_ZG:
  191. ZYResultProcessZG(obj);
  192. break;
  193. }
  194. OnDataChange();
  195. //throw new NotImplementedException();
  196. }
  197. /// <summary>
  198. /// grid1的单元格单击的值改变的事件
  199. /// </summary>
  200. /// <param name="sender"></param>
  201. /// <param name="e"></param>
  202. private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  203. {
  204. this.ultraGrid1.UpdateData();
  205. if (e.Cell.Column.Key.Equals("USER_ACT_COUNT"))
  206. {
  207. if (!Regex.IsMatch(e.Cell.Value.ToString(), @"^-?[1-9]\d*$|^0$"))
  208. {
  209. e.Cell.Value = 0;
  210. return;
  211. }
  212. }
  213. if (e.Cell.Text != null)
  214. {
  215. if (e.Cell.Column.Key.Equals("USER_ACT_COUNT"))
  216. {
  217. if (!e.Cell.Row.Cells["Choose"].Text.Equals("True"))
  218. {
  219. e.Cell.Value = e.Cell.OriginalValue;
  220. return;
  221. }
  222. if (Convert.ToInt64(e.Cell.Value) != 0)
  223. {
  224. long user_act_count = Convert.ToInt64(e.Cell.Value);
  225. long act_count = Convert.ToInt64(e.Cell.Row.Cells["ACT_COUNT"].Value);
  226. long totalUserCount = 0;
  227. foreach (var row in this.ultraGrid1.Rows.Where(c => c.Cells["Choose"].Text.Equals("True") && !c.Cells["USER_ACT_COUNT"].Text.Equals("0")))
  228. {
  229. int tmpUserActCount = 0;
  230. try
  231. {
  232. tmpUserActCount = Convert.ToInt32(row.Cells["USER_ACT_COUNT"].Text);
  233. }
  234. catch
  235. {
  236. }
  237. totalUserCount += tmpUserActCount;
  238. }
  239. if (user_act_count > act_count)
  240. {
  241. e.Cell.Value = e.Cell.OriginalValue;
  242. }
  243. else if (totalUserCount > m_MaxValidCount)
  244. {
  245. e.Cell.Value = e.Cell.OriginalValue;
  246. MessageUtil.ShowWarning("本工序订单的投入量不能大于计划投入量与加投量的和,请检查输入!");
  247. }
  248. else
  249. {
  250. double act_weight = Convert.ToDouble(e.Cell.Row.Cells["ACT_WEIGHT"].Value);
  251. double single_weight = act_weight / act_count;
  252. e.Cell.Row.Cells["USER_ACT_WEIGHT"].Value = CommHelper.GetSpecDecimalBit(user_act_count * single_weight, 3);
  253. e.Cell.Appearance.BackColor = System.Drawing.Color.Pink;
  254. this.ultraGrid1.Refresh();
  255. }
  256. }
  257. else
  258. {
  259. e.Cell.Row.Cells["USER_ACT_WEIGHT"].Value = 0;
  260. }
  261. }
  262. else if (e.Cell.Column.Key.Equals("Choose"))
  263. {
  264. if (e.Cell.Text.ToLower() == "true")
  265. {
  266. e.Cell.Row.Cells["USER_ACT_COUNT"].Activation = Activation.AllowEdit;
  267. this.ultraGrid1.Refresh();
  268. var rows = this.ultraGrid1.Rows.Where(c => c.Cells["Choose"].Text.ToLower() == "true");
  269. foreach (UltraGridRow row in rows)
  270. {
  271. if (CustomInfo != CustomInfoDef.DEFINE_CUSTOMER_ZG)
  272. {
  273. if (row.Cells["JUDGE_STOVE_NO"].Value.ToString() != e.Cell.Row.Cells["JUDGE_STOVE_NO"].Value.ToString()
  274. || row.Cells["BATCH_NO"].Text != e.Cell.Row.Cells["BATCH_NO"].Text
  275. || row.Cells["BATCH_GROUD_NO"].Text != e.Cell.Row.Cells["BATCH_GROUD_NO"].Text)
  276. {
  277. e.Cell.Value = false;
  278. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请选择炉号,组号,批号一致的物料");
  279. return;
  280. }
  281. }
  282. else
  283. {
  284. if (row.Cells["JUDGE_STOVE_NO"].Value.ToString() != e.Cell.Row.Cells["JUDGE_STOVE_NO"].Value.ToString())
  285. {
  286. e.Cell.Value = false;
  287. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("请选择炉号一致的管坯");
  288. return;
  289. }
  290. }
  291. }
  292. }
  293. }
  294. }
  295. }
  296. #endregion
  297. #region 初始化
  298. private void Init_Comm()
  299. {
  300. switch(CustomInfo)
  301. {
  302. case CustomInfoDef.DEFINE_CUSTOMER_DBK: init_dbk(); break;
  303. case CustomInfoDef.DEFINE_CUSTOMER_JG: init_jgx(); break;
  304. case CustomInfoDef.DEFINE_CUSTOMER_RCL: init_rcl(); break;
  305. case CustomInfoDef.DEFINE_CUSTOMER_ZG: init_zg(); break;
  306. }
  307. }
  308. private void init_dbk()
  309. {
  310. this.ultraGrid2.DataSource = this.plnOrderDbkSEntityBindingSource;
  311. Core.Mes.Client.Comm.Tool.EntityHelper.ShowGridCaption<PlnOrderDbkSEntity>(this.ultraGrid2.DisplayLayout.Bands[0]);
  312. #region Excel2Code 2016/6/14 19:01:00
  313. setColumnPosition("PlineName", 0);
  314. setColumnPosition("GxProSeq", 1);
  315. setColumnPosition("ProPlanId", 3);
  316. setColumnPosition("GxPlanNo", 4);
  317. setColumnPosition("ExeStatus", 5);
  318. setColumnPosition("Mcount", 6);
  319. setColumnPosition("Mstatus", 7);
  320. setColumnPosition("IsRepairPln", 8);
  321. setColumnPosition("RepairType", 9);
  322. setColumnPosition("WeigthS", 10);
  323. setColumnPosition("NumS", 11);
  324. setColumnPosition("PlanTimeB", 12);
  325. setColumnPosition("PlanTimeE", 13);
  326. setColumnPosition("InwlDesc", 14);
  327. setColumnPosition("OutwlDesc", 15);
  328. setColumnPosition("OrderSource", 16);
  329. setColumnPosition("OrderNo", 17);
  330. setColumnPosition("OrderSeq", 18);
  331. setColumnPosition("DeliveryNo", 19);
  332. setColumnPosition("Outdiameter", 20);
  333. setColumnPosition("Wallthick", 21);
  334. setColumnPosition("OutdiameterIn", 22);
  335. setColumnPosition("WallthickIn", 23);
  336. setColumnPosition("Aimwallthick", 24);
  337. setColumnPosition("Aimoutdiameter", 25);
  338. setColumnPosition("Aimlength", 26);
  339. setColumnPosition("Lengthdisc", 27);
  340. setColumnPosition("LengthIn", 28);
  341. setColumnPosition("LengthmaxIn", 29);
  342. setColumnPosition("LengthminIn", 30);
  343. setColumnPosition("LenCuthead", 31);
  344. setColumnPosition("LenCutend", 32);
  345. setColumnPosition("InWeightS", 33);
  346. setColumnPosition("InNumS", 34);
  347. setColumnPosition("MatchWtIn", 35);
  348. setColumnPosition("MatchNumIn", 36);
  349. setColumnPosition("IfMonitorDbk", 37);
  350. setColumnPosition("MonitorPoint", 38);
  351. setColumnPosition("PrdcrNo", 39);
  352. setColumnPosition("ProMonth", 40);
  353. setColumnPosition("PreviousGx", 41);
  354. setColumnPosition("PrevGxplanId", 42);
  355. setColumnPosition("CraftFileNo", 43);
  356. setColumnPosition("CraftSeq", 44);
  357. setColumnPosition("CraftFileMan", 45);
  358. setColumnPosition("StationRoad", 46);
  359. setColumnPosition("BatchedWt", 47);
  360. setColumnPosition("BatchedNum", 48);
  361. setColumnPosition("PlanGroupId", 49);
  362. setColumnPosition("ProOrderNo", 50);
  363. setColumnPosition("PlnDivideId", 51);
  364. setColumnPosition("Finishweight", 52);
  365. setColumnPosition("Finishnum", 53);
  366. setColumnPosition("ReqBlId", 54);
  367. setColumnPosition("Isendgx", 55);
  368. setColumnPosition("IsPlanOk", 56);
  369. setColumnPosition("AddWtIn", 57);
  370. setColumnPosition("AddNumIn", 58);
  371. setColumnPosition("ZyBatchId", 59);
  372. setColumnPosition("Cic", 60);
  373. setColumnPosition("Pic", 61);
  374. setColumnPosition("Sic", 62);
  375. setColumnPosition("Dic", 63);
  376. setColumnPosition("Wic", 64);
  377. setColumnPosition("Gic", 65);
  378. #endregion
  379. }
  380. private void init_rcl()
  381. {
  382. this.ultraGrid2.DataSource = this.plnOrderRclSEntityBindingSource;
  383. Core.Mes.Client.Comm.Tool.EntityHelper.ShowGridCaption<PlnOrderRclSEntity>(this.ultraGrid2.DisplayLayout.Bands[0]);
  384. #region Excel2Code 2016/6/14 19:01:27
  385. setColumnPosition("PlineName", 0);
  386. setColumnPosition("GxProSeq", 1);
  387. setColumnPosition("ProPlanId", 3);
  388. setColumnPosition("GxPlanNo", 4);
  389. setColumnPosition("IsRepairPln", 5);
  390. setColumnPosition("Mcount", 6);
  391. setColumnPosition("Mstatus", 7);
  392. setColumnPosition("RepairType", 8);
  393. setColumnPosition("ExeStatus", 9);
  394. setColumnPosition("WeigthS", 10);
  395. setColumnPosition("NumS", 11);
  396. setColumnPosition("PlanUsetime", 12);
  397. setColumnPosition("PlanTimeB", 13);
  398. setColumnPosition("PlanTimeE", 14);
  399. setColumnPosition("InwlDesc", 15);
  400. setColumnPosition("OutwlDesc", 16);
  401. setColumnPosition("OrderSource", 17);
  402. setColumnPosition("OrderNo", 18);
  403. setColumnPosition("OrderSeq", 19);
  404. setColumnPosition("DeliveryNo", 20);
  405. setColumnPosition("Steelname", 21);
  406. setColumnPosition("Wallthick", 22);
  407. setColumnPosition("Outdiameter", 23);
  408. setColumnPosition("Aimlength", 24);
  409. setColumnPosition("Gradename", 25);
  410. setColumnPosition("LengthmaxIn", 26);
  411. setColumnPosition("LengthminIn", 27);
  412. setColumnPosition("IfMonitorRcl", 28);
  413. setColumnPosition("MonitorPoint", 29);
  414. setColumnPosition("PrdcrNo", 30);
  415. setColumnPosition("ProMonth", 31);
  416. setColumnPosition("PreviousGx", 32);
  417. setColumnPosition("PrevGxPlanId", 33);
  418. setColumnPosition("CraftFileNo", 34);
  419. setColumnPosition("CraftFileMan", 35);
  420. setColumnPosition("CraftSeq", 36);
  421. setColumnPosition("Lengthdisc", 37);
  422. setColumnPosition("ProOrderNo", 38);
  423. setColumnPosition("Finishweight", 39);
  424. setColumnPosition("LengthIn", 40);
  425. setColumnPosition("InWeightS", 41);
  426. setColumnPosition("InNumS", 42);
  427. setColumnPosition("PlanGroupId", 43);
  428. setColumnPosition("PlnDivideId", 44);
  429. setColumnPosition("MatchWtIn", 45);
  430. setColumnPosition("ReqBlId", 46);
  431. setColumnPosition("MatchNumIn", 47);
  432. setColumnPosition("StationRoad", 48);
  433. setColumnPosition("BatchedWt", 49);
  434. setColumnPosition("BatchedNum", 50);
  435. setColumnPosition("Finishnum", 51);
  436. setColumnPosition("ZyBatchId", 52);
  437. setColumnPosition("Cic", 53);
  438. setColumnPosition("Pic", 54);
  439. setColumnPosition("Sic", 55);
  440. setColumnPosition("Dic", 56);
  441. setColumnPosition("Wic", 57);
  442. setColumnPosition("Gic", 58);
  443. #endregion
  444. }
  445. private void init_jgx()
  446. {
  447. this.ultraGrid2.DataSource = this.plnOrderJgxSEntityBindingSource;
  448. #region Excel2Code 2016/6/14 19:01:47
  449. setColumnPosition("PlineName", 0);
  450. setColumnPosition("GxProSeq", 1);
  451. setColumnPosition("ProPlanId", 3);
  452. setColumnPosition("GxplanNo", 4);
  453. setColumnPosition("IsRepair", 5);
  454. setColumnPosition("Mcount", 6);
  455. setColumnPosition("Mstatus", 7);
  456. setColumnPosition("RepairType", 8);
  457. setColumnPosition("ExeStatus", 9);
  458. setColumnPosition("NumS", 10);
  459. setColumnPosition("PlanUsetime", 11);
  460. setColumnPosition("PlanTimeB", 12);
  461. setColumnPosition("PlanTimeE", 13);
  462. setColumnPosition("InwlDesc", 14);
  463. setColumnPosition("OutwlDesc", 15);
  464. setColumnPosition("OrderSource", 16);
  465. setColumnPosition("OrderNo", 17);
  466. setColumnPosition("OrderSeq", 18);
  467. setColumnPosition("DeliveryNo", 19);
  468. setColumnPosition("Steelname", 20);
  469. setColumnPosition("ModelDesc", 21);
  470. setColumnPosition("Outdiameter", 22);
  471. setColumnPosition("Wallthick", 23);
  472. setColumnPosition("Aimwallthick", 24);
  473. setColumnPosition("Lengthmax", 25);
  474. setColumnPosition("Lengthmin", 26);
  475. setColumnPosition("Aimlength", 27);
  476. setColumnPosition("Lengthdisc", 28);
  477. setColumnPosition("ShrtLenRato", 29);
  478. setColumnPosition("LongLenRato", 30);
  479. setColumnPosition("Shortest", 31);
  480. setColumnPosition("Longest", 32);
  481. setColumnPosition("ShrtStove", 33);
  482. setColumnPosition("SiglLen", 34);
  483. setColumnPosition("AvgLenMin", 35);
  484. setColumnPosition("DifrncLenMax", 36);
  485. setColumnPosition("EndlenSpecstd", 37);
  486. setColumnPosition("LengthmaxIn", 38);
  487. setColumnPosition("LengthminIn", 39);
  488. setColumnPosition("IfMonitorJgx", 40);
  489. setColumnPosition("MonitorPoint", 41);
  490. setColumnPosition("PrdcrNo", 42);
  491. setColumnPosition("ProMonth", 43);
  492. setColumnPosition("PreviousGx", 44);
  493. setColumnPosition("PrevGxplanId", 45);
  494. setColumnPosition("CraftFileNo", 46);
  495. setColumnPosition("CraftFileMan", 47);
  496. setColumnPosition("CraftSeq", 48);
  497. setColumnPosition("InWeghtS", 49);
  498. setColumnPosition("InNumS", 50);
  499. setColumnPosition("LengthIn", 51);
  500. setColumnPosition("StationRoad", 52);
  501. setColumnPosition("BatchedNum", 53);
  502. setColumnPosition("BatchedWt", 54);
  503. setColumnPosition("Finishweight", 55);
  504. setColumnPosition("Finishnum", 56);
  505. setColumnPosition("IsPlanOk", 57);
  506. setColumnPosition("ZyBatchId", 58);
  507. setColumnPosition("MatchWtIn", 59);
  508. setColumnPosition("PlanGroupId", 60);
  509. setColumnPosition("PlnDivideId", 61);
  510. setColumnPosition("ReqBlId", 62);
  511. setColumnPosition("MatchNumIn", 63);
  512. setColumnPosition("Cic", 64);
  513. setColumnPosition("Pic", 65);
  514. setColumnPosition("Sic", 66);
  515. setColumnPosition("Dic", 67);
  516. setColumnPosition("Wic", 68);
  517. setColumnPosition("Gic", 69);
  518. #endregion
  519. Core.Mes.Client.Comm.Tool.EntityHelper.ShowGridCaption<PlnOrderJgxSEntity>(this.ultraGrid2.DisplayLayout.Bands[0]);
  520. }
  521. private void init_zg()
  522. {
  523. this.ultraGrid2.DataSource = this.plnOrderZgSEntityBindingSource;
  524. #region Excel2Code 2016/6/14 19:02:19
  525. setColumnPosition("PlineName", 0);
  526. setColumnPosition("GxProSeq", 1);
  527. setColumnPosition("ProPlanId", 3);
  528. setColumnPosition("GxPlanNo", 4);
  529. setColumnPosition("RepairType", 5);
  530. setColumnPosition("Mcount", 6);
  531. setColumnPosition("Mstatus", 7);
  532. setColumnPosition("IsRepairPln", 8);
  533. setColumnPosition("ExeStatus", 9);
  534. setColumnPosition("NumS", 10);
  535. setColumnPosition("WeigthS", 11);
  536. setColumnPosition("PlanUsetime", 12);
  537. setColumnPosition("PlanTimeB", 13);
  538. setColumnPosition("PlanTimeE", 14);
  539. setColumnPosition("InwlDesc", 15);
  540. setColumnPosition("OutwlDesc", 16);
  541. setColumnPosition("OrderSource", 17);
  542. setColumnPosition("OrderNo", 18);
  543. setColumnPosition("OrderSeq", 19);
  544. setColumnPosition("DeliveryNo", 20);
  545. setColumnPosition("Steelname", 21);
  546. setColumnPosition("Gradename", 22);
  547. setColumnPosition("Outdiameter", 23);
  548. setColumnPosition("Wallthick", 24);
  549. setColumnPosition("Aimwallthick", 25);
  550. setColumnPosition("Aimlength", 26);
  551. setColumnPosition("RollLength", 27);
  552. setColumnPosition("DiameterMandrel", 28);
  553. setColumnPosition("DiameterGp", 29);
  554. setColumnPosition("Lengthdisc", 30);
  555. setColumnPosition("LenRollMax", 31);
  556. setColumnPosition("LenRollMin", 32);
  557. setColumnPosition("Aimoutdiameter", 33);
  558. setColumnPosition("LenGpSingle", 34);
  559. setColumnPosition("Isendgx", 35);
  560. setColumnPosition("IfMonitorZg", 36);
  561. setColumnPosition("LenCuthead", 37);
  562. setColumnPosition("LenCutend", 38);
  563. setColumnPosition("OutnumCut", 39);
  564. setColumnPosition("PrdcrNo", 40);
  565. setColumnPosition("CraftFileNo", 41);
  566. setColumnPosition("MonitorPoint", 42);
  567. setColumnPosition("CraftSeq", 43);
  568. setColumnPosition("PassName", 44);
  569. setColumnPosition("CraftFileMan", 45);
  570. setColumnPosition("ReqBlId", 46);
  571. setColumnPosition("InNumS", 47);
  572. setColumnPosition("InWeightS", 48);
  573. setColumnPosition("PlanGroupId", 49);
  574. setColumnPosition("ProMonth", 50);
  575. setColumnPosition("AddWtIn", 51);
  576. setColumnPosition("AddNumIn", 52);
  577. setColumnPosition("MatchWtIn", 53);
  578. setColumnPosition("StationRoad", 54);
  579. setColumnPosition("BatchedNum", 55);
  580. setColumnPosition("Finishweight", 56);
  581. setColumnPosition("Finishnum", 57);
  582. setColumnPosition("IsPlanOk", 58);
  583. setColumnPosition("GpreqIfOk", 59);
  584. setColumnPosition("GpreqId", 60);
  585. setColumnPosition("ZyBatchId", 61);
  586. setColumnPosition("PlnDivideId", 62);
  587. setColumnPosition("Cic", 63);
  588. setColumnPosition("Pic", 64);
  589. setColumnPosition("Sic", 65);
  590. setColumnPosition("Dic", 66);
  591. setColumnPosition("Wic", 67);
  592. setColumnPosition("Gic", 68);
  593. #endregion
  594. Core.Mes.Client.Comm.Tool.EntityHelper.ShowGridCaption<PlnOrderZgSEntity>(this.ultraGrid2.DisplayLayout.Bands[0]);
  595. }
  596. private void setColumnPosition(string key, int position)
  597. {
  598. CommHelper.SetColumnPosition(this.ultraGrid2.DisplayLayout.Bands[0], key, position);
  599. }
  600. private void SetTempData(int usercount, double userwt)
  601. {
  602. if (this.ultraGrid1.Rows.Count <= 0)
  603. {
  604. return;
  605. }
  606. UltraGridRow row = this.ultraGrid1.Rows.First();
  607. row.Cells["USER_ACT_COUNT"].Value = usercount;
  608. row.Cells["USER_ACT_WEIGHT"].Value = userwt;
  609. // row.Cells["ACT_COUNT"].Value = totalcount;
  610. // row.Cells["ACT_WEIGHT"].Value = totalwt;
  611. this.ultraGrid1.UpdateData();
  612. }
  613. #endregion
  614. #region 私有的算法
  615. /// <summary>
  616. /// 获取计划产出重量
  617. /// </summary>
  618. /// <param name="InNum"></param>
  619. /// <param name="WeigthS"></param>
  620. /// <param name="NumS"></param>
  621. /// <returns></returns>
  622. private static double GetOutWeight(Object InNum, Object WeigthS, Object NumS)
  623. {
  624. double result = 0;
  625. try
  626. {
  627. double SingleWeight = Convert.ToDouble(WeigthS) / Convert.ToDouble(NumS);
  628. result = Convert.ToDouble(InNum) * SingleWeight;
  629. }
  630. catch
  631. {
  632. }
  633. result = CommHelper.GetSpecDecimalBit(result, 3);
  634. return result;
  635. }
  636. #endregion
  637. #region 处理从MaterialChoose窗口事件返回的信息,并且整合订单时序表的信息和物料选择的信息形成作业计划表的记录
  638. private void ZYResultProcessDBK(List<Infragistics.Win.UltraWinGrid.UltraGridRow> obj)
  639. {
  640. int num = 0;
  641. double wt = 0;
  642. int matchnum = 0;
  643. double matchwt = 0;
  644. int LockFlag = -1;
  645. bool IsMatched = false;//原料是否利库
  646. var Row = this.ultraGrid2.Rows.First();
  647. PlnOrderDbkSEntity _orderdbk = (PlnOrderDbkSEntity)Row.ListObject;
  648. try
  649. {
  650. num = Convert.ToInt32(_orderdbk.BatchedNum);
  651. wt = Convert.ToDouble(_orderdbk.BatchedWt);
  652. }
  653. catch
  654. {
  655. }
  656. List<string> entitySqlidList = new List<string>();
  657. List<string> entityjsonStrings = new List<string>();
  658. List<string> entityClassNameList = new List<string>();
  659. List<string> normalSqlidList = new List<string>();
  660. List<List<Object>> normalParameterList = new List<List<Object>>();
  661. int nMaxProdIndex = DBComm.GetMaxProdIndex(CustomInfo, this.ob);
  662. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in obj)
  663. {
  664. bool IsZyExist = false;
  665. DataSourceList<PlnZyDbkMEntity> zylist= null;
  666. zylist = EntityHelper.GetData<PlnZyDbkMEntity>(MethodDef.StoveBase.queryZy, new Object[] { SqlIDDef.PlanLuDBK.queryZYDBK, row.Cells["JUDGE_STOVE_NO"].Text, row.Cells["BATCH_NO"].Text, row.Cells["BATCH_GROUD_NO"].Text, _orderdbk.ProPlanId.ToString(), _orderdbk.GxPlanNo.ToString() }, this.ob);
  667. PlnZyDbkMEntity existZy = null;
  668. if (zylist.Count > 0)
  669. {
  670. IsZyExist = true;
  671. existZy = zylist.First();
  672. }
  673. try
  674. {
  675. matchnum = Convert.ToInt32(_orderdbk.MatchNumIn);
  676. matchwt = Convert.ToDouble(_orderdbk.MatchWtIn);
  677. }
  678. catch
  679. {
  680. }
  681. PlnZyDbkMEntity zydbk = new PlnZyDbkMEntity();
  682. zydbk.ZgBatchNo = row.Cells["BATCH_NO"].Value;
  683. zydbk.OrderSource = _orderdbk.OrderSource;
  684. zydbk.OrderNo = _orderdbk.OrderNo;
  685. zydbk.OrderSeq = _orderdbk.OrderSeq;
  686. zydbk.ReqBlId = _orderdbk.ReqBlId;
  687. zydbk.Gradename = row.Cells["GRADENAME"].Value;
  688. zydbk.Gradecode = row.Cells["GRADECODE"].Value;
  689. zydbk.Aimoutdiameter = _orderdbk.Aimoutdiameter;
  690. zydbk.Aimwallthick = _orderdbk.Aimwallthick;
  691. zydbk.Aimlength = _orderdbk.Aimlength;
  692. zydbk.OutdiameterIn = _orderdbk.OutdiameterIn;
  693. zydbk.WallthickIn = _orderdbk.WallthickIn;
  694. zydbk.LengthIn = _orderdbk.LengthIn;
  695. zydbk.LengthmaxIn = _orderdbk.LengthmaxIn;
  696. zydbk.LengthminIn = _orderdbk.LengthminIn;
  697. zydbk.LenCuthead = _orderdbk.LenCuthead;
  698. zydbk.LenCutend = _orderdbk.LenCutend;
  699. zydbk.InwlId = _orderdbk.InwlId;
  700. zydbk.InwlDesc = _orderdbk.InwlDesc;
  701. zydbk.InWt = row.Cells["USER_ACT_WEIGHT"].Value;
  702. zydbk.InNum = row.Cells["USER_ACT_COUNT"].Value;
  703. zydbk.IfWlMatched = 1;
  704. zydbk.OutwlId = _orderdbk.OutwlId;
  705. zydbk.OutwlDesc = _orderdbk.OutwlDesc;
  706. zydbk.OutWt = CommHelper.GetOutWeight(zydbk.InNum, _orderdbk.WeigthS, _orderdbk.NumS);
  707. zydbk.OutNum = zydbk.InNum;
  708. zydbk.IfMonitorDbk = _orderdbk.IfMonitorDbk;
  709. zydbk.PrdcrNo = _orderdbk.PrdcrNo;
  710. zydbk.MonitorPoint = _orderdbk.MonitorPoint;
  711. zydbk.CraftFileNo = _orderdbk.CraftFileNo;
  712. zydbk.CraftFileMan = _orderdbk.CraftFileMan;
  713. zydbk.CraftSeq = _orderdbk.CraftSeq;
  714. zydbk.StationRoad = _orderdbk.StationRoad;
  715. zydbk.Planstatus = 0;
  716. zydbk.InWtReal = "";
  717. zydbk.InNumReal = "";
  718. zydbk.OutWtReal = "";
  719. zydbk.OutNumReal = "";
  720. zydbk.CreateName = UserInfo.GetUserName();
  721. zydbk.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm;ss");
  722. zydbk.UpdateName = "";
  723. zydbk.UpdateTime = "";
  724. zydbk.HeatPlanNo =DBComm.CreateHEAT_PLAN_NO(CustomInfo,this.ob);
  725. zydbk.ZyBatchId = _orderdbk.ZyBatchId;
  726. zydbk.ProdIndex = ++nMaxProdIndex;
  727. zydbk.ProPlanId = _orderdbk.ProPlanId;
  728. zydbk.GxPlanNo = _orderdbk.GxPlanNo;
  729. zydbk.PlineCode = _orderdbk.PlineCode;
  730. zydbk.PlineName = _orderdbk.PlineName;
  731. zydbk.ZgHeatPlanNo = row.Cells["HEAT_PLAN_NO"].Value;
  732. zydbk.HeatnoLast = row.Cells["JUDGE_STOVE_NO"].Value;
  733. zydbk.BatchGroudNo = row.Cells["BATCH_GROUD_NO"].Value;
  734. int outnum = 0;
  735. double outwt = 0;
  736. try
  737. {
  738. outnum = Convert.ToInt32(zydbk.OutNum);
  739. outwt = Convert.ToDouble(zydbk.OutWt);
  740. }
  741. catch
  742. {
  743. }
  744. if (!CommHelper.IsNullOrEmptry(row.Cells["PRO_ORDER_ID"].Text.Trim()))
  745. {
  746. if (!_orderdbk.PrevGxplanId.ToString().Equals(row.Cells["PRO_ORDER_ID"].Text))//如果物料里的订单与本工序订单记录的前工序订单号不一致,需要先将物料脱单,然后判定状态改为利库
  747. {
  748. LockFlag = 1;
  749. IsMatched = true;
  750. }
  751. else//如果物料里的订单与本工序订单的前工序订单号一致,则判定为普通匹配,只需要累加炉计划已排量
  752. {
  753. LockFlag = 0;
  754. }
  755. }
  756. else //如果物料没有绑定订单,则判定为利库,需要累加投入利库量和炉计划已排量
  757. {
  758. LockFlag = 1;
  759. IsMatched = true;
  760. }
  761. if (LockFlag == 1)
  762. {
  763. matchwt += outwt;
  764. matchnum += outnum;
  765. _orderdbk.MatchNumIn = matchnum;
  766. _orderdbk.MatchWtIn = matchwt;
  767. }
  768. num += outnum;
  769. wt += outwt;
  770. if (IsZyExist)//如果已有作业计划,只需累加投入产出量,其余动作不变
  771. {
  772. int oriOutNum = 0;
  773. double oriOutWt = 0;
  774. int oriInNum = 0;
  775. double oriInWt = 0;
  776. try
  777. {
  778. oriOutNum = Convert.ToInt32(existZy.OutNum);
  779. oriOutWt = Convert.ToDouble(existZy.OutWt);
  780. oriInNum = Convert.ToInt32(existZy.InNum);
  781. oriInWt = Convert.ToDouble(existZy.InWt);
  782. oriOutNum +=outnum;
  783. oriOutWt += outwt;
  784. oriInNum += Convert.ToInt32(zydbk.InNum);
  785. oriInWt += Convert.ToDouble(zydbk.InWt);
  786. normalSqlidList.Add(SqlIDDef.PlanLuDBK.UpdateZYDBK_WT_NUM);
  787. normalParameterList.Add(new List<Object>() { oriInWt,oriInNum,oriOutNum,oriOutWt,m_loginusername,existZy.HeatPlanNo});
  788. }
  789. catch
  790. {
  791. }
  792. }
  793. else
  794. {
  795. entitySqlidList.Add(SqlIDDef.PlanLuDBK.insertZYDBK);
  796. entityClassNameList.Add(ClassDef.PlnZyDbkMEntity);
  797. entityjsonStrings.Add(JSONFormat.Format(zydbk));
  798. }
  799. //insertZYDBK(zydbk);
  800. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterial);
  801. normalParameterList.Add(new List<Object>() { zydbk.InwlId.ToString(), row.Cells["JUDGE_STOVE_NO"].Value, row.Cells["BATCH_NO"].Value, row.Cells["BATCH_GROUD_NO"].Value, "E", Convert.ToInt32(zydbk.InNum), "E", "镦拔扩", _orderdbk.ProPlanId.ToString(), _orderdbk.GxPlanNo.ToString(), LockFlag,m_loginusername });
  802. //UpdateMAT_ZC_M("E", "镦拔扩", zydbk.InwlId.ToString(), row.Cells["JUDGE_STOVE_NO"].Text, Convert.ToInt32(zydbk.InNum),_orderdbk.ProPlanId.ToString());
  803. }
  804. _orderdbk.BatchedNum = num;
  805. _orderdbk.BatchedWt = wt;
  806. normalSqlidList.Add(SqlIDDef.PlanLuDBK.UpdateOrderDBK_WT_NUM);
  807. normalParameterList.Add(new List<Object>() { wt, num, _orderdbk.ProPlanId, _orderdbk.GxPlanNo });
  808. if (IsMatched)
  809. {
  810. normalSqlidList.Add(SqlIDDef.PlanLuDBK.UpdateOrderDBK_MATCH_WT_NUM);
  811. normalParameterList.Add(new List<Object>() { _orderdbk.MatchWtIn, _orderdbk.MatchNumIn, _orderdbk.ProPlanId, _orderdbk.GxPlanNo });
  812. }
  813. //UpdateRows(_orderdbk);
  814. BaseEntityDAL.ExcuteTransaction(entitySqlidList, entityjsonStrings, entityClassNameList, normalSqlidList, normalParameterList, this.ob);
  815. queryAll();
  816. }
  817. private void ZYResultProcessRCL(List<Infragistics.Win.UltraWinGrid.UltraGridRow> obj)
  818. {
  819. int batchnum = 0;
  820. double batchwt = 0;
  821. int matchnum = 0;
  822. double matchwt = 0;
  823. int LockFlag = 0;
  824. bool isMatched = false;
  825. List<string> entitySqlidList = new List<string>();
  826. List<string> entityjsonStrings = new List<string>();
  827. List<string> entityClassNameList = new List<string>();
  828. List<string> normalSqlidList = new List<string>();
  829. List<List<Object>> normalParameterList = new List<List<Object>>();
  830. var Row = this.ultraGrid2.Rows.First();
  831. PlnOrderRclSEntity _orderrcl = (PlnOrderRclSEntity)Row.ListObject;
  832. try
  833. {
  834. batchnum = Convert.ToInt32(_orderrcl.BatchedNum);
  835. batchwt = Convert.ToDouble(_orderrcl.BatchedWt);
  836. }
  837. catch
  838. {
  839. batchnum = 0;
  840. batchwt = 0;
  841. }
  842. try
  843. {
  844. matchnum = Convert.ToInt32(_orderrcl.MatchNumIn);
  845. matchwt = Convert.ToDouble(_orderrcl.MatchWtIn);
  846. }
  847. catch
  848. {
  849. }
  850. int nMaxProdIndex = DBComm.GetMaxProdIndex(CustomInfo, this.ob);
  851. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in obj)
  852. {
  853. bool IsZyExist = false;
  854. var zylist = EntityHelper.GetData<PlnZyDbkMEntity>(MethodDef.StoveBase.queryZy, new Object[] { SqlIDDef.PlanLuRCL.queryZyRCL, row.Cells["JUDGE_STOVE_NO"].Value, row.Cells["BATCH_NO"].Value, row.Cells["BATCH_GROUD_NO"].Value, _orderrcl.ProPlanId.ToString(), _orderrcl.GxPlanNo.ToString() }, this.ob);
  855. PlnZyDbkMEntity existZy = null;
  856. if (zylist.Count > 0)
  857. {
  858. IsZyExist = true;
  859. existZy = zylist.First();
  860. }
  861. PlnZyRclMEntity zyrcl = new PlnZyRclMEntity();
  862. zyrcl.HeatPlanNo = DBComm.CreateHEAT_PLAN_NO(CustomInfo, this.ob);
  863. zyrcl.ZyBatchId = _orderrcl.ZyBatchId;
  864. zyrcl.ProPlanId = _orderrcl.ProPlanId;
  865. zyrcl.GxPlanNo = _orderrcl.GxPlanNo;
  866. zyrcl.LastHeatPlanNo = _orderrcl.PreviousGx;
  867. zyrcl.HeatnoLast = row.Cells["JUDGE_STOVE_NO"].Value;
  868. zyrcl.LastBatchNo = row.Cells["BATCH_NO"].Value;
  869. zyrcl.BatchGroudNo = row.Cells["BATCH_GROUD_NO"].Value;
  870. zyrcl.PlineCode = _orderrcl.PlineCode;
  871. zyrcl.PlineName = _orderrcl.PlineName;
  872. zyrcl.OrderSource = _orderrcl.OrderSource;
  873. zyrcl.OrderNo = _orderrcl.OrderNo;
  874. zyrcl.OrderSeq = _orderrcl.OrderSeq;
  875. zyrcl.ReqBlId = _orderrcl.ReqBlId;
  876. zyrcl.Steelcode = _orderrcl.Steelcode;
  877. zyrcl.Steelname = _orderrcl.Steelname;
  878. zyrcl.Gradename = _orderrcl.Gradecode;
  879. zyrcl.Gradecode = _orderrcl.Gradename;
  880. zyrcl.Outdiameter = _orderrcl.Outdiameter;
  881. zyrcl.Wallthick = _orderrcl.Wallthick;
  882. zyrcl.Lengthdisc = _orderrcl.Lengthdisc;
  883. string maxlength = "";
  884. string minlength = "";
  885. DBComm.queryMaxMinLength(_orderrcl.OrdLnDlyPk.ToString(), ref maxlength, ref minlength,this.ob);
  886. zyrcl.CpLengthmax = maxlength;
  887. zyrcl.CpLengthmin = minlength;
  888. // zyrcl.CpLengthmin = row.Cells["ACT_LEN_MAX"].Text;
  889. // zyrcl.CpLengthmax = row.Cells["ACT_LEN_MIN"].Text;
  890. zyrcl.OutdiameterIn = row.Cells["ACT_DIMATER"].Value;
  891. zyrcl.WallthickIn = row.Cells["ACT_HEIGHT"].Value;
  892. zyrcl.LengthIn = row.Cells["ACT_LEN"].Value;
  893. zyrcl.LengthmaxIn = _orderrcl.LengthmaxIn;
  894. zyrcl.LengthminIn = _orderrcl.LengthminIn;
  895. zyrcl.LengthOut = _orderrcl.Aimlength;
  896. zyrcl.InwlId = _orderrcl.InwlId;
  897. zyrcl.InwlDesc = _orderrcl.InwlDesc;
  898. zyrcl.InNum = row.Cells["USER_ACT_COUNT"].Value;
  899. zyrcl.InWt = row.Cells["USER_ACT_WEIGHT"].Value;
  900. zyrcl.IfWlMatched = 1;
  901. zyrcl.ProdIndex = ++nMaxProdIndex;
  902. zyrcl.OutwlId = _orderrcl.OutwlId;
  903. zyrcl.OutwlDesc = _orderrcl.OutwlDesc;
  904. zyrcl.OutWt = CommHelper.GetOutWeight(zyrcl.InNum, _orderrcl.WeigthS, _orderrcl.NumS);
  905. zyrcl.OutNum = zyrcl.InNum;
  906. zyrcl.IfMonitorRcl = _orderrcl.IfMonitorRcl;
  907. zyrcl.PrdcrNo = _orderrcl.PrdcrNo;
  908. zyrcl.MonitorPoint = _orderrcl.MonitorPoint;
  909. zyrcl.CraftFileNo = _orderrcl.CraftFileNo;
  910. zyrcl.CraftFileMan = _orderrcl.CraftFileMan;
  911. zyrcl.CraftSeq = _orderrcl.CraftSeq;
  912. zyrcl.StationRoad = _orderrcl.StationRoad;
  913. zyrcl.Planstatus = 0;
  914. zyrcl.CreateName = UserInfo.GetUserName();
  915. zyrcl.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm;ss");
  916. zyrcl.UpdateName = "";
  917. zyrcl.UpdateTime = "";
  918. zyrcl.InWtReal = "";
  919. zyrcl.InNumReal = "";
  920. zyrcl.OutWtReal = "";
  921. zyrcl.OutNumReal = "";
  922. int outnum = 0;
  923. double outwt = 0;
  924. try
  925. {
  926. outnum = Convert.ToInt32(zyrcl.OutNum);
  927. outwt = Convert.ToDouble(zyrcl.OutWt);
  928. }
  929. catch
  930. {
  931. }
  932. if (!CommHelper.IsNullOrEmptry(row.Cells["PRO_ORDER_ID"].Text.Trim()))
  933. {
  934. if (!_orderrcl.PrevGxplanId.ToString().Equals(row.Cells["PRO_ORDER_ID"].Text))
  935. {
  936. isMatched = true;
  937. }
  938. }
  939. else
  940. {
  941. isMatched = true;
  942. }
  943. batchnum += outnum;
  944. batchwt += outwt;
  945. if (isMatched)
  946. {
  947. matchwt += outwt;
  948. matchnum += outnum;
  949. }
  950. //
  951. /* zyrcl.ProdIndex = GetMaxProdIndex() + 1;*/
  952. if (IsZyExist)//如果已有作业计划,只需累加投入产出量,其余动作不变
  953. {
  954. int oriOutNum = 0;
  955. double oriOutWt = 0;
  956. int oriInNum = 0;
  957. double oriInWt = 0;
  958. try
  959. {
  960. oriOutNum = Convert.ToInt32(existZy.OutNum);
  961. oriOutWt = Convert.ToDouble(existZy.OutWt);
  962. }
  963. catch
  964. {
  965. }
  966. try
  967. {
  968. oriInNum = Convert.ToInt32(existZy.InNum);
  969. oriInWt = Convert.ToDouble(existZy.InWt);
  970. }
  971. catch
  972. {
  973. }
  974. oriOutNum += outnum;
  975. oriOutWt += outwt;
  976. try
  977. {
  978. oriInNum += Convert.ToInt32(zyrcl.InNum);
  979. oriInWt += Convert.ToDouble(zyrcl.InWt);
  980. }
  981. catch
  982. {
  983. }
  984. normalSqlidList.Add(SqlIDDef.PlanLuRCL.UpdateZYRCL_WT_NUM);
  985. normalParameterList.Add(new List<Object>() { oriInWt, oriInNum, oriOutNum, oriOutWt, m_loginusername, existZy.HeatPlanNo });
  986. }
  987. else
  988. {
  989. entitySqlidList.Add(SqlIDDef.PlanLuRCL.AddNewRows);
  990. entityjsonStrings.Add(JSONFormat.Format(zyrcl));
  991. entityClassNameList.Add(ClassDef.PlnZyRclMEntity);
  992. }
  993. //InsertZYRCL(zyrcl);
  994. if (isMatched)
  995. {
  996. LockFlag = 1;
  997. }
  998. else
  999. {
  1000. LockFlag = 0;
  1001. }
  1002. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterial);
  1003. normalParameterList.Add(new List<Object>() { zyrcl.InwlId.ToString(), row.Cells["JUDGE_STOVE_NO"].Value, row.Cells["BATCH_NO"].Value, row.Cells["BATCH_GROUD_NO"].Value, "F", Convert.ToInt32(zyrcl.InNum), "F", "热处理", _orderrcl.ProPlanId.ToString(), _orderrcl.GxPlanNo, LockFlag,m_loginusername });
  1004. //UpdateMAT_ZC_M("F", "热处理", zyrcl.InwlId.ToString(), row.Cells["JUDGE_STOVE_NO"].Text,Convert.ToInt32(zyrcl.InNum),_orderrcl.ProPlanId.ToString());
  1005. }
  1006. if (isMatched)
  1007. {
  1008. normalSqlidList.Add(SqlIDDef.PlanLuRCL.UpdateOrderRCL_MATCH_WT_NUM);
  1009. normalParameterList.Add(new List<Object>() { CommHelper.GetSpecDecimalBit(matchwt, 3), matchnum, _orderrcl.ProPlanId, _orderrcl.GxPlanNo });
  1010. }
  1011. normalSqlidList.Add(SqlIDDef.PlanLuRCL.UpdateRCLORDER_WT_NUM);
  1012. normalParameterList.Add(new List<Object>() { CommHelper.GetSpecDecimalBit(batchwt, 3), batchnum, _orderrcl.ProPlanId, _orderrcl.GxPlanNo });
  1013. BaseEntityDAL.ExcuteTransaction(entitySqlidList, entityjsonStrings, entityClassNameList, normalSqlidList, normalParameterList, this.ob);
  1014. //UpdateOrderRCL_WT_NUM(_orderrcl);
  1015. queryAll();
  1016. }
  1017. private void ZYResultProcessZG(List<Infragistics.Win.UltraWinGrid.UltraGridRow> obj)
  1018. {
  1019. int batchnum = 0;//炉计划已排支数
  1020. double batchwt = 0;//炉计划已排重量
  1021. int matchnum = 0;//投入利库支数
  1022. double matchwt = 0;//投入利库重量
  1023. bool isMatched = false;//判定是否利库(如果订单与物料管坯需求号不匹配,则判定为利库)
  1024. int plnInNum = 0;//计划投入支数 = 每组的支数相加
  1025. var Row = this.ultraGrid2.Rows.First();
  1026. PlnOrderZgSEntity _orderzg = (PlnOrderZgSEntity)Row.ListObject;
  1027. try
  1028. {
  1029. batchnum = Convert.ToInt32(_orderzg.BatchedNum);
  1030. batchwt = Convert.ToDouble(_orderzg.BatchedWt);
  1031. }
  1032. catch
  1033. {
  1034. }
  1035. try
  1036. {
  1037. matchnum = Convert.ToInt32(_orderzg.MatchNumIn);
  1038. matchwt = Convert.ToDouble(_orderzg.MatchWtIn);
  1039. }
  1040. catch
  1041. {
  1042. }
  1043. int maxProdIndex = DBComm.GetMaxProdIndex(CustomInfo, this.ob);
  1044. List<string> entitySqlidList = new List<string>();//执行插入的动作时,一般用entity
  1045. List<string> entityjsonStrings = new List<string>();
  1046. List<string> entityClassNameList = new List<string>();
  1047. List<string> normalSqlidList = new List<string>();//执行更新或删除的动作时,一般用normal
  1048. List<List<Object>> normalParameterList = new List<List<Object>>();
  1049. PlnZyZgMEntity Mzyzg = new PlnZyZgMEntity();
  1050. List<PlnZyZgCEntity> zyzgcList = new List<PlnZyZgCEntity>();
  1051. #region 从工序订单表获取信息
  1052. Mzyzg.HeatPlanNo = DBComm.CreateHEAT_PLAN_NO(CustomInfo, this.ob);
  1053. Mzyzg.ZyBatchId = _orderzg.ZyBatchId;
  1054. Mzyzg.ProdIndex = ++ maxProdIndex;
  1055. Mzyzg.ProPlanId = _orderzg.ProPlanId;
  1056. Mzyzg.GxPlanNo = _orderzg.GxPlanNo;
  1057. Mzyzg.GpreqId = _orderzg.GpreqId;
  1058. Mzyzg.PlineCode = _orderzg.PlineCode;
  1059. Mzyzg.PlineName = _orderzg.PlineName;
  1060. Mzyzg.Isendgx = _orderzg.Isendgx;
  1061. Mzyzg.OrderSource = _orderzg.OrderSource;
  1062. Mzyzg.OrdLnDlyPk = _orderzg.OrdLnDlyPk;
  1063. Mzyzg.OrderNo = _orderzg.OrderNo;
  1064. Mzyzg.OrderSeq = _orderzg.OrderSeq;
  1065. Mzyzg.DeliveryNo = _orderzg.DeliveryNo;
  1066. Mzyzg.ReqBlId = _orderzg.ReqBlId;
  1067. Mzyzg.Gradecode = _orderzg.Gradecode;
  1068. Mzyzg.Gradename = _orderzg.Gradename;
  1069. Mzyzg.LenRollMax = _orderzg.LenRollMax;
  1070. Mzyzg.LenRollMin = _orderzg.LenRollMin;
  1071. Mzyzg.Aimoutdiameter = _orderzg.Aimoutdiameter;
  1072. Mzyzg.Aimwallthick = _orderzg.Aimwallthick;
  1073. Mzyzg.Aimlength = _orderzg.Aimlength;
  1074. Mzyzg.DiameterGp = _orderzg.DiameterGp;
  1075. Mzyzg.LenGpSingle = _orderzg.LenGpSingle;
  1076. Mzyzg.RollLength = _orderzg.RollLength;
  1077. Mzyzg.LenCuthead = _orderzg.LenCuthead;
  1078. Mzyzg.LenCutend = _orderzg.LenCutend;
  1079. Mzyzg.OutnumCut = _orderzg.OutnumCut;
  1080. Mzyzg.DiameterMandrel = _orderzg.DiameterMandrel;
  1081. Mzyzg.PassCode = _orderzg.PassCode;
  1082. Mzyzg.PassName = _orderzg.PassName;
  1083. Mzyzg.InwlId = _orderzg.InwlId;
  1084. Mzyzg.InwlDesc = _orderzg.InwlDesc;
  1085. Mzyzg.IfWlMatched = 1;
  1086. Mzyzg.OutwlId = _orderzg.OutwlId;
  1087. Mzyzg.OutwlDesc = _orderzg.OutwlDesc;
  1088. Mzyzg.IfMonitorZg = _orderzg.IfMonitorZg;
  1089. Mzyzg.PrdcrNo = _orderzg.PrdcrNo;
  1090. Mzyzg.MonitorPoint = _orderzg.MonitorPoint;
  1091. Mzyzg.CraftFileNo = _orderzg.CraftFileNo;
  1092. Mzyzg.CraftFileMan = _orderzg.CraftFileMan;
  1093. Mzyzg.CraftSeq = _orderzg.CraftSeq;
  1094. Mzyzg.StationRoad = _orderzg.StationRoad;
  1095. Mzyzg.Planstatus = 0;
  1096. Mzyzg.InWtReal = "";
  1097. Mzyzg.InNumReal = "";
  1098. Mzyzg.OutWtReal = "";
  1099. Mzyzg.CreateName = UserInfo.GetUserName();
  1100. Mzyzg.CreateTime = "";
  1101. Mzyzg.UpdateName = "";
  1102. Mzyzg.UpdateTime = "";
  1103. #endregion
  1104. #region 判断是否有同炉号同工序订单同排产序号的主表,如果有,则获取它的从表,缓存主从表
  1105. UltraGridRow firstmatrow = null;
  1106. if (obj.Count <= 0)
  1107. {
  1108. return;
  1109. }
  1110. else
  1111. {
  1112. firstmatrow = obj.First();
  1113. }
  1114. bool IsZyExist = false;
  1115. var existzylist = EntityHelper.GetData<PlnZyZgMEntity>(MethodDef.StoveBase.queryZy, new Object[] { SqlIDDef.PlanLuZG.queryZYZGM, firstmatrow.Cells["JUDGE_STOVE_NO"].Text, "", "", _orderzg.ProPlanId.ToString(), _orderzg.GxPlanNo.ToString() }, this.ob);
  1116. PlnZyZgMEntity existZy = null;
  1117. DataSourceList<PlnZyZgCEntity> existzycList = null;
  1118. if (existzylist.Count > 0)
  1119. {
  1120. IsZyExist = true;
  1121. existZy = existzylist.First();
  1122. existzycList = EntityHelper.GetData<PlnZyZgCEntity>(MethodDef.StoveBase.queryZyC, new Object[] { SqlIDDef.PlanLuZG.queryZYZGC, existZy.HeatPlanNo.ToString() }, this.ob);
  1123. }
  1124. #endregion
  1125. #region 遍历物料编辑行,先假定每一行就是一行子表,加入List
  1126. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in obj)
  1127. {
  1128. int lockLiku = 0;
  1129. Mzyzg.HeatnoLast = row.Cells["JUDGE_STOVE_NO"].Value;
  1130. try
  1131. {
  1132. plnInNum += Convert.ToInt32(row.Cells["USER_ACT_COUNT"].Value);
  1133. }
  1134. catch
  1135. {
  1136. }
  1137. if (CommHelper.IsNullOrEmptry(row.Cells["PRO_ORDER_ID"].Text.Trim()))
  1138. {
  1139. isMatched = true;
  1140. lockLiku = 1;
  1141. }
  1142. else
  1143. {
  1144. if (!_orderzg.GpreqId.ToString().Equals(row.Cells["PRO_ORDER_ID"].Text.Trim()))
  1145. {
  1146. isMatched = true;
  1147. lockLiku = 1;
  1148. }
  1149. else
  1150. {
  1151. isMatched = false;
  1152. lockLiku = 0;
  1153. }
  1154. }
  1155. PlnZyZgCEntity Czyzg = new PlnZyZgCEntity();//先形成初步的
  1156. Czyzg.InGpNumReal = "";
  1157. Czyzg.InGpWtReal = "";
  1158. Czyzg.SingleWtReal = "";
  1159. Czyzg.SingleNumReal = "";
  1160. Czyzg.CutzyStatus = 0;
  1161. Czyzg.HeatPlanNo = Mzyzg.HeatPlanNo;
  1162. Czyzg.ZyBatchId = Mzyzg.ZyBatchId;
  1163. Czyzg.ProPlanId = _orderzg.ProPlanId;
  1164. Czyzg.GxPlanNo = Mzyzg.GxPlanNo;
  1165. Czyzg.PlineCode = Mzyzg.PlineCode;
  1166. Czyzg.PlineName = Mzyzg.PlineName;
  1167. Czyzg.GpreqId = Mzyzg.GpreqId;
  1168. Czyzg.HeatnoLast = Mzyzg.HeatnoLast;
  1169. Czyzg.LengthGp = row.Cells["ACT_LEN"].Value;
  1170. Czyzg.LenGpSingle = Mzyzg.LenGpSingle;
  1171. Czyzg.MultipleNum = CommHelper.GetMultipleNum(Czyzg.LengthGp, Czyzg.LenGpSingle);
  1172. Czyzg.InGpNum = row.Cells["USER_ACT_COUNT"].Value;//计划投入支数由用户决定
  1173. Czyzg.InGpWt = CommHelper.GetIN_GP_WT(row.Cells["ACT_WEIGHT"].Value, row.Cells["ACT_COUNT"].Value, Czyzg.InGpNum);//计划投入重量=计划投入支数*(物料总重量/物料总支数)
  1174. Czyzg.CutSingleNum = Convert.ToInt32(Czyzg.InGpNum) * Convert.ToInt32(Czyzg.MultipleNum);//倍尺数*计划投入支数
  1175. Czyzg.CutSingleWt = Convert.ToInt32(Czyzg.LenGpSingle) * PlanComm.GpweightOfmi(Convert.ToDouble(_orderzg.DiameterGp)) * Convert.ToInt32(Czyzg.CutSingleNum)*0.001;//单倍坯长*米单重*单倍坯支数
  1176. zyzgcList.Add(Czyzg);
  1177. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateGP);
  1178. normalParameterList.Add(new List<Object>() { Mzyzg.InwlId, Mzyzg.HeatnoLast, Czyzg.LengthGp, CommHelper.getProcessCode(CustomInfo), Czyzg.InGpNum, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), _orderzg.ProPlanId, _orderzg.GxPlanNo, m_loginusername,lockLiku });
  1179. }
  1180. #endregion
  1181. #region 根据管坯长度进行分组,每一组代表一行子表行,如果发现已经存在该炉,订单,排产序号的炉计划,并且该炉计划里已有该管坯长度的子表行,则执行累加
  1182. var grouplst = zyzgcList.GroupBy(c => c.LengthGp);//根据管坯长度给所选的物料分组
  1183. //var grouplst = from n in zyzgcList group n by n.MultipleNum into g select g;
  1184. int totalCutSingleNum = 0;
  1185. double totalCutSingleWt = 0;
  1186. int GpCutNo = 0;//滚皮锯切分组号
  1187. if (IsZyExist)
  1188. {
  1189. GpCutNo = existzycList.Count;
  1190. }
  1191. foreach (var info in grouplst)//遍历组
  1192. {
  1193. PlnZyZgCEntity zyzgc = new PlnZyZgCEntity();
  1194. int InGpNum = 0;//本组投入管坯总和
  1195. double InGpWt = 0;
  1196. int cutSingleNum = 0;//本组单倍坯支数总和,该组单倍坯支数 = 管坯投入支数*倍尺数
  1197. double cutSingleWt = 0;
  1198. foreach (var objzgc in info)//遍历组成员
  1199. {
  1200. zyzgc.HeatPlanNo = objzgc.HeatPlanNo;
  1201. zyzgc.ZyBatchId = objzgc.ZyBatchId;
  1202. zyzgc.ProPlanId = objzgc.ProPlanId;
  1203. zyzgc.GxPlanNo = objzgc.GxPlanNo;
  1204. zyzgc.PlineCode = objzgc.PlineCode;
  1205. zyzgc.PlineName = objzgc.PlineName;
  1206. zyzgc.GpreqId = objzgc.GpreqId;
  1207. zyzgc.HeatnoLast = objzgc.HeatnoLast;
  1208. zyzgc.LengthGp = objzgc.LengthGp;
  1209. zyzgc.LenGpSingle = objzgc.LenGpSingle;
  1210. zyzgc.MultipleNum = objzgc.MultipleNum;
  1211. try
  1212. {
  1213. InGpNum += Convert.ToInt32(objzgc.InGpNum);
  1214. InGpWt +=Convert.ToDouble(objzgc.InGpWt);
  1215. }
  1216. catch
  1217. {
  1218. }
  1219. try
  1220. {
  1221. cutSingleNum += Convert.ToInt32(objzgc.CutSingleNum);
  1222. cutSingleWt += Convert.ToDouble(objzgc.CutSingleWt);
  1223. }
  1224. catch
  1225. {
  1226. }
  1227. }
  1228. zyzgc.InGpNumReal = "";
  1229. zyzgc.InGpWtReal = "";
  1230. zyzgc.SingleWtReal = "";
  1231. zyzgc.SingleNumReal = "";
  1232. zyzgc.CutzyStatus = 0;
  1233. //逐组更新物料
  1234. totalCutSingleNum += cutSingleNum;
  1235. totalCutSingleWt += cutSingleWt;
  1236. zyzgc.CutSingleWt =CommHelper.GetSpecDecimalBit(cutSingleWt,3);
  1237. zyzgc.CutSingleNum = cutSingleNum;
  1238. zyzgc.InGpNum = InGpNum;
  1239. zyzgc.InGpWt = CommHelper.GetSpecDecimalBit(InGpWt,3);
  1240. if (IsZyExist)
  1241. {
  1242. var existzyc = existzycList.FirstOrDefault(c=>c.LengthGp.ToString().Equals(zyzgc.LengthGp.ToString()));
  1243. if (existzyc != null)
  1244. {
  1245. int oriCutSingleNum = 0;
  1246. double oriCutSingleWt = 0;
  1247. int oriInGpNum = 0;
  1248. double oriInGpWt = 0;
  1249. try
  1250. {
  1251. oriCutSingleNum = Convert.ToInt32(existzyc.CutSingleNum);
  1252. oriCutSingleWt = Convert.ToDouble(existzyc.CutSingleWt);
  1253. }
  1254. catch
  1255. {
  1256. }
  1257. try
  1258. {
  1259. oriInGpNum = Convert.ToInt32(existzyc.InGpNum);
  1260. oriInGpWt = Convert.ToDouble(existzyc.InGpWt);
  1261. }
  1262. catch
  1263. {
  1264. }
  1265. //累加子表行计划单倍坯量和计划投入量
  1266. existzyc.CutSingleNum = oriCutSingleNum + cutSingleNum;
  1267. existzyc.CutSingleWt =CommHelper.GetSpecDecimalBit(oriCutSingleWt+cutSingleWt,3);
  1268. existzyc.InGpNum =oriInGpNum + InGpNum;
  1269. existzyc.InGpWt =CommHelper.GetSpecDecimalBit(oriInGpWt + InGpWt,3);
  1270. //更新子表行计划单倍坯量和计划投入量
  1271. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZGC_GPWT_GPNUM);
  1272. normalParameterList.Add(new List<Object>() { existzyc.CutSingleNum,existzyc.CutSingleWt,existzyc.InGpNum,existzyc.InGpWt,existzyc.HeatPlanNo,existzyc.GpCutNo});
  1273. }
  1274. else//如果没有找到管坯长度一致的子表行,则新增子表行
  1275. {
  1276. ++GpCutNo;
  1277. zyzgc.GpCutNo = GpCutNo;
  1278. zyzgc.HeatPlanNo = existZy.HeatPlanNo;
  1279. entitySqlidList.Add(SqlIDDef.PlanLuZG.insertZYZGC);
  1280. entityClassNameList.Add(ClassDef.PlnZyZgCEntity);
  1281. entityjsonStrings.Add(JSONFormat.Format(zyzgc));
  1282. }
  1283. }
  1284. else//如果没有找到主表,则新增子表行
  1285. {
  1286. ++GpCutNo;
  1287. zyzgc.GpCutNo = GpCutNo;
  1288. zyzgc.HeatPlanNo = Mzyzg.HeatPlanNo;
  1289. entitySqlidList.Add(SqlIDDef.PlanLuZG.insertZYZGC);
  1290. entityClassNameList.Add(ClassDef.PlnZyZgCEntity);
  1291. entityjsonStrings.Add(JSONFormat.Format(zyzgc));
  1292. }
  1293. }
  1294. #endregion
  1295. #region 累加所有所选物料的单倍坯量,产出量,以及投入管坯量,如果存在该炉,订单,排产序号的作业计划,则执行累加,否则新增作业计划
  1296. Mzyzg.CutSingleNum = totalCutSingleNum;
  1297. Mzyzg.CutSingleWt = CommHelper.GetSpecDecimalBit(totalCutSingleWt,3);//各组单倍坯重量总和
  1298. Mzyzg.PlanGpNum = plnInNum;
  1299. int totaloutNum = totalCutSingleNum * Convert.ToInt32(_orderzg.OutnumCut);
  1300. Double totaloutWt = CommHelper.GetSpecDecimalBit( totaloutNum * PlanComm.WeightOfMi(Convert.ToDouble(_orderzg.Aimoutdiameter),Convert.ToDouble(_orderzg.Aimwallthick)) * Convert.ToDouble(_orderzg.Aimlength),3 );//计划产出重量= 计划产出支数*管米单重*工序目标长度
  1301. Mzyzg.OutNum = totaloutNum;//单倍坯总和*分切数
  1302. Mzyzg.OutWt = totaloutWt;
  1303. if (IsZyExist)
  1304. {
  1305. int oriCutSingleNum =0;
  1306. double oriCutSingleWt = 0;
  1307. int oriOutNum = 0;
  1308. double oriOutWt = 0;
  1309. int oriInGpNum=0;
  1310. try
  1311. {
  1312. oriCutSingleNum = Convert.ToInt32(existZy.CutSingleNum);
  1313. oriCutSingleWt = Convert.ToDouble(existZy.CutSingleWt);
  1314. }
  1315. catch
  1316. {
  1317. }
  1318. try
  1319. {
  1320. oriOutNum = Convert.ToInt32(existZy.OutNum);
  1321. oriOutWt = Convert.ToDouble(existZy.OutWt);
  1322. }
  1323. catch
  1324. {
  1325. }
  1326. try
  1327. {
  1328. oriInGpNum =Convert.ToInt32(existZy.PlanGpNum);
  1329. }
  1330. catch
  1331. {
  1332. }
  1333. //累加单倍坯量,计划产出量,以及计划投入管坯支数
  1334. existZy.CutSingleNum = oriCutSingleNum + totalCutSingleNum;
  1335. existZy.CutSingleWt = oriCutSingleWt + CommHelper.GetSpecDecimalBit(totalCutSingleWt, 3);
  1336. existZy.OutNum =oriOutNum + totaloutNum;
  1337. existZy.OutWt = oriOutWt + totaloutWt;
  1338. existZy.PlanGpNum = oriInGpNum + plnInNum;
  1339. //更新已经存在的主表行的单倍坯量,计划产出量,以及计划投入管坯支数
  1340. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZG_WT_NUM);
  1341. normalParameterList.Add(new List<Object>() { existZy.CutSingleNum, existZy.CutSingleWt, existZy.OutNum, existZy.OutWt, m_loginusername,existZy.PlanGpNum,existZy.HeatPlanNo });
  1342. }
  1343. else
  1344. {
  1345. entitySqlidList.Add(SqlIDDef.PlanLuZG.insertZYZGM);
  1346. entityClassNameList.Add(ClassDef.PlnZyZgMEntity);
  1347. entityjsonStrings.Add(JSONFormat.Format(Mzyzg));
  1348. }
  1349. #endregion
  1350. #region 累加炉计划已排量和投入利库量
  1351. int outnum = 0;
  1352. double outwt = 0;
  1353. try
  1354. {
  1355. outnum = Convert.ToInt32(Mzyzg.OutNum);
  1356. outwt = Convert.ToDouble(Mzyzg.OutWt);
  1357. }
  1358. catch
  1359. {
  1360. }
  1361. batchnum += outnum;
  1362. batchwt += outwt;
  1363. if (isMatched)
  1364. {
  1365. matchnum += outnum;
  1366. matchwt += outwt;
  1367. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateOrderZG_MATCH_WT_NUM);
  1368. normalParameterList.Add(new List<Object>() {matchwt,matchnum,_orderzg.ProPlanId,_orderzg.GxPlanNo });
  1369. }
  1370. else
  1371. {
  1372. }
  1373. _orderzg.BatchedNum = batchnum;
  1374. _orderzg.BatchedWt = batchwt;
  1375. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateOrderZG_WT_NUM);
  1376. normalParameterList.Add(new List<Object>() { batchwt, batchnum, _orderzg.ProPlanId, _orderzg.GxPlanNo });
  1377. BaseEntityDAL.ExcuteTransaction(entitySqlidList, entityjsonStrings, entityClassNameList, normalSqlidList, normalParameterList, this.ob);
  1378. #endregion
  1379. queryAll();
  1380. }
  1381. private void ZYResultProcessJGX(List<Infragistics.Win.UltraWinGrid.UltraGridRow> obj)
  1382. {
  1383. int batchnum = 0;
  1384. double batchwt = 0;
  1385. int lockLiku = -1;
  1386. int matchnum = 0;
  1387. double matchwt = 0;
  1388. bool isMatched = false;
  1389. List<string> entitySqlidList = new List<string>();
  1390. List<string> entityjsonStrings = new List<string>();
  1391. List<string> entityClassNameList = new List<string>();
  1392. List<string> normalSqlidList = new List<string>();
  1393. List<List<Object>> normalParameterList = new List<List<Object>>();
  1394. var Row = this.ultraGrid2.Rows.First();
  1395. PlnOrderJgxSEntity _orderjgx = (PlnOrderJgxSEntity)Row.ListObject;
  1396. try
  1397. {
  1398. batchnum = Convert.ToInt32(_orderjgx.BatchedNum);
  1399. batchwt = Convert.ToDouble(_orderjgx.BatchedWt);
  1400. }
  1401. catch
  1402. {
  1403. batchnum = 0;
  1404. batchwt = 0;
  1405. }
  1406. try
  1407. {
  1408. matchnum = Convert.ToInt32(_orderjgx.MatchNumIn);
  1409. matchwt = Convert.ToDouble(_orderjgx.MatchWtIn);
  1410. }
  1411. catch
  1412. {}
  1413. int nMaxProdIndex = DBComm.GetMaxProdIndex(CustomInfo, this.ob);
  1414. bool IsZyExist = false;
  1415. var firstmatrow = obj.First();
  1416. var zylist = EntityHelper.GetData<PlnZyDbkMEntity>(MethodDef.StoveBase.queryZy, new Object[] { SqlIDDef.PlanLuJGX.queryZYJGXM, firstmatrow.Cells["JUDGE_STOVE_NO"].Value, firstmatrow.Cells["BATCH_NO"].Value, firstmatrow.Cells["BATCH_GROUD_NO"].Value, _orderjgx.ProPlanId.ToString(), _orderjgx.GxPlanNo.ToString() }, this.ob);
  1417. PlnZyDbkMEntity existZy = null;
  1418. if (zylist.Count > 0)
  1419. {
  1420. IsZyExist = true;
  1421. existZy = zylist.First();
  1422. }
  1423. PlnZyJgxMEntity mzyjgx = new PlnZyJgxMEntity();
  1424. mzyjgx.HeatPlanNo = DBComm.CreateHEAT_PLAN_NO(CustomInfo, this.ob);
  1425. mzyjgx.ZyBatchId = _orderjgx.ZyBatchId;
  1426. mzyjgx.ProdIndex = ++nMaxProdIndex;
  1427. mzyjgx.ProPlanId = _orderjgx.ProPlanId;
  1428. mzyjgx.GxPlanNo = _orderjgx.GxPlanNo;
  1429. mzyjgx.GxNameLast = _orderjgx.PreviousGx;
  1430. mzyjgx.LastHeatPlanNo = _orderjgx.PrevGxplanId;
  1431. mzyjgx.HeatnoLast = firstmatrow.Cells["JUDGE_STOVE_NO"].Value;
  1432. mzyjgx.LastBatchNo = firstmatrow.Cells["BATCH_NO"].Value;
  1433. mzyjgx.BatchGroudNo = firstmatrow.Cells["BATCH_GROUD_NO"].Value;
  1434. mzyjgx.PlineCode = _orderjgx.PlineCode;
  1435. mzyjgx.PlineName = _orderjgx.PlineName;
  1436. mzyjgx.OrderSource = _orderjgx.OrderSource;
  1437. mzyjgx.OrdLnDlyPk = _orderjgx.OrdLnDlyPk;
  1438. mzyjgx.OrderNo = _orderjgx.OrderNo;
  1439. mzyjgx.OrderSeq = _orderjgx.OrderSeq;
  1440. mzyjgx.DeliveryNo = _orderjgx.DeliveryNo;
  1441. mzyjgx.ReqBlId = _orderjgx.ReqBlId;
  1442. mzyjgx.Steelcode = _orderjgx.Steelcode;
  1443. mzyjgx.Steelname = _orderjgx.Steelname;
  1444. mzyjgx.Outdiameter = _orderjgx.Outdiameter;
  1445. mzyjgx.Wallthick = _orderjgx.Wallthick;
  1446. mzyjgx.Lengthmax = _orderjgx.Lengthmax;
  1447. mzyjgx.Lengthmin = _orderjgx.Lengthmin;
  1448. mzyjgx.Lengthdisc = _orderjgx.Lengthdisc;
  1449. mzyjgx.Aimwallthick = _orderjgx.Aimwallthick;
  1450. mzyjgx.Aimlength = _orderjgx.Aimlength;
  1451. mzyjgx.ModelCode = _orderjgx.ModelCode;
  1452. mzyjgx.ModelDesc = _orderjgx.ModelDesc;
  1453. mzyjgx.LengthmaxIn = _orderjgx.LengthmaxIn;
  1454. mzyjgx.LengthminIn = _orderjgx.LengthminIn;
  1455. mzyjgx.InwlId = _orderjgx.InwlId;
  1456. mzyjgx.InwlDesc = _orderjgx.InwlDesc;
  1457. mzyjgx.IfWlMatched = 1;
  1458. mzyjgx.OutwlId = _orderjgx.OutwlId;
  1459. mzyjgx.IfMonitorJgx = _orderjgx.IfMonitorJgx;
  1460. mzyjgx.PrdcrNo = _orderjgx.PrdcrNo;
  1461. mzyjgx.MonitorPoint = _orderjgx.MonitorPoint;
  1462. mzyjgx.CraftFileNo = _orderjgx.CraftFileNo;
  1463. mzyjgx.CraftFileMan = _orderjgx.CraftFileMan;
  1464. mzyjgx.CraftSeq = _orderjgx.CraftSeq;
  1465. mzyjgx.StationRoad = _orderjgx.StationRoad;
  1466. mzyjgx.Planstatus = 0;
  1467. mzyjgx.InNumReal = "";
  1468. mzyjgx.InWtReal = "";
  1469. mzyjgx.OutNumReal = "";
  1470. mzyjgx.OutWtReal = "";
  1471. mzyjgx.CreateName = this.UserInfo.GetUserName();
  1472. mzyjgx.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  1473. mzyjgx.UpdateName = "";
  1474. mzyjgx.UpdateName = "";
  1475. if (!CommHelper.IsNullOrEmptry(firstmatrow.Cells["PRO_ORDER_ID"].Text.Trim()))
  1476. {
  1477. if (!_orderjgx.PrevGxplanId.ToString().Equals(firstmatrow.Cells["PRO_ORDER_ID"].Text))//如果物料里的订单与本工序订单记录的前工序订单号不一致,需要先将物料脱单,然后判定状态改为利库
  1478. {
  1479. lockLiku = 1;
  1480. isMatched = true;
  1481. }
  1482. else//如果物料里的订单与本工序订单的前工序订单号一致,则判定为普通匹配,只需要累加炉计划已排量
  1483. {
  1484. lockLiku = 0;
  1485. isMatched = false;
  1486. }
  1487. }
  1488. else
  1489. {
  1490. lockLiku = 1;
  1491. isMatched = true;
  1492. }
  1493. double AIMLENGTH_CUT = 0;
  1494. try
  1495. {
  1496. double CheckJVAL = Convert.ToDouble(BaseEntityDAL.GetCHECKJVAL(mzyjgx.OrdLnDlyPk.ToString(), this.ob));
  1497. AIMLENGTH_CUT = Convert.ToDouble(mzyjgx.Aimlength) - CheckJVAL;
  1498. }
  1499. catch
  1500. {
  1501. }
  1502. List<PlnZyJgxCEntity> tempJgxList = new List<PlnZyJgxCEntity>();//临时的子表行list
  1503. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in obj)
  1504. {
  1505. int cutCount = 0;
  1506. try
  1507. {
  1508. cutCount = Convert.ToInt32(Math.Truncate(Convert.ToDouble(row.Cells["ACT_LEN"]) / AIMLENGTH_CUT));
  1509. }
  1510. catch
  1511. {
  1512. }
  1513. PlnZyJgxCEntity czyjgx = new PlnZyJgxCEntity();
  1514. czyjgx.HeatPlanNo = mzyjgx.HeatPlanNo;
  1515. czyjgx.GxPlanNo = mzyjgx.GxPlanNo;
  1516. czyjgx.PlineCode = mzyjgx.PlineCode;
  1517. czyjgx.PlineName = mzyjgx.PlineName;
  1518. czyjgx.HeatnoLast = mzyjgx.HeatnoLast;
  1519. czyjgx.LengthIn = row.Cells["ACT_LEN"].Value;
  1520. czyjgx.LastBatchNo = row.Cells["BATCH_NO"].Value;
  1521. czyjgx.InWt = Convert.ToInt32(row.Cells["USER_ACT_WEIGHT"].Value);
  1522. czyjgx.InNum = Convert.ToInt32(row.Cells["USER_ACT_COUNT"].Value);
  1523. czyjgx.AimlengthCut = AIMLENGTH_CUT;
  1524. czyjgx.OutnumCut = cutCount;
  1525. try
  1526. {
  1527. czyjgx.CutOutNum = Convert.ToDouble(czyjgx.InNum) * Convert.ToDouble(czyjgx.OutnumCut);
  1528. czyjgx.CutOutWt =CommHelper.GetSpecDecimalBit(PlanComm.WeightOfMi(Convert.ToDouble(mzyjgx.Outdiameter),Convert.ToDouble(mzyjgx.Aimwallthick))*Convert.ToDouble(czyjgx.AimlengthCut)*Convert.ToInt32(czyjgx.CutOutNum),3);
  1529. }
  1530. catch
  1531. {
  1532. }
  1533. czyjgx.CutNumReal = "";
  1534. czyjgx.CutWtReal = "";
  1535. czyjgx.InNumReal = "";
  1536. czyjgx.InWtReal = "";
  1537. czyjgx.CutzyStatus = 0;
  1538. czyjgx.ZyBatchId = mzyjgx.ZyBatchId;
  1539. czyjgx.ProdIndex = mzyjgx.ProdIndex;
  1540. czyjgx.ProPlanId = mzyjgx.ProPlanId;
  1541. tempJgxList.Add(czyjgx);
  1542. }
  1543. int JgxCutNo = 0;
  1544. int totalInNum = 0;
  1545. double totalInWt = 0;
  1546. int totalCutOutNum = 0;
  1547. double totalCutOutWt = 0;
  1548. var Lst_zygroup = tempJgxList.GroupBy(c=>c.LengthIn);
  1549. foreach (var zygroup in Lst_zygroup)
  1550. {
  1551. PlnZyJgxCEntity ZyJgxC = new PlnZyJgxCEntity();
  1552. int gp_CutOutNum = 0;
  1553. double gp_CutOutWt = 0;
  1554. int gp_InNum = 0;
  1555. double gp_InWt = 0;
  1556. foreach(PlnZyJgxCEntity member_zyjgxc in zygroup)
  1557. {
  1558. ZyJgxC.AimlengthCut = member_zyjgxc.AimlengthCut;
  1559. ZyJgxC.CutNumReal = "";
  1560. gp_CutOutNum += Convert.ToInt32(member_zyjgxc.CutOutNum);
  1561. gp_CutOutWt += Convert.ToDouble(member_zyjgxc.CutOutWt);
  1562. ZyJgxC.CutWtReal = "";
  1563. ZyJgxC.CutzyStatus = 0;
  1564. ZyJgxC.GxPlanNo = member_zyjgxc.GxPlanNo;
  1565. ZyJgxC.HeatnoLast = member_zyjgxc.HeatnoLast;
  1566. ZyJgxC.HeatPlanNo = member_zyjgxc.HeatPlanNo;
  1567. gp_InNum += Convert.ToInt32(member_zyjgxc.InNum);
  1568. ZyJgxC.InNumReal = "";
  1569. gp_InWt += Convert.ToDouble(member_zyjgxc.InWt);
  1570. ZyJgxC.InWtReal = "";
  1571. ZyJgxC.LastBatchNo = member_zyjgxc.LastBatchNo;
  1572. ZyJgxC.LengthIn = member_zyjgxc.LengthIn;
  1573. ZyJgxC.OutnumCut = member_zyjgxc.OutnumCut;
  1574. ZyJgxC.PlineCode = member_zyjgxc.PlineCode;
  1575. ZyJgxC.PlineName = member_zyjgxc.PlineName;
  1576. ZyJgxC.ProdIndex = member_zyjgxc.ProdIndex;
  1577. ZyJgxC.ProPlanId = member_zyjgxc.ProPlanId;
  1578. ZyJgxC.ZyBatchId = member_zyjgxc.ZyBatchId;
  1579. }
  1580. totalCutOutNum += gp_CutOutNum;
  1581. totalCutOutWt += gp_CutOutWt;
  1582. totalInNum += gp_InNum;
  1583. totalInWt += gp_InWt;
  1584. ZyJgxC.CutOutNum = gp_CutOutNum;
  1585. ZyJgxC.CutOutWt = gp_CutOutWt;
  1586. ZyJgxC.InNum = gp_InNum;
  1587. ZyJgxC.InWt = gp_InWt;
  1588. bool IsZyCExist = false;
  1589. PlnZyJgxCEntity existzyc=null;
  1590. if (IsZyExist)
  1591. {
  1592. existzyc= EntityHelper.GetData<PlnZyJgxCEntity>(MethodDef.StoveBase.queryZyC, new Object[] { SqlIDDef.PlanLuJGX.queryZYJGXC,existZy.HeatPlanNo },this.ob).FirstOrDefault(e=>e.LengthIn.ToString().Equals(ZyJgxC.LengthIn.ToString()));
  1593. if (existzyc != null)
  1594. {
  1595. IsZyCExist = true;
  1596. }
  1597. }
  1598. if (IsZyCExist)
  1599. {
  1600. int oriCutOutNumC = Convert.ToInt32(existzyc.CutOutNum);
  1601. double oriCutOutWtC = Convert.ToDouble(existzyc.CutOutWt);
  1602. int oriInNum = Convert.ToInt32(existzyc.InNum);
  1603. double oriInWt = Convert.ToDouble(existzyc.InWt);
  1604. oriCutOutNumC += gp_CutOutNum;
  1605. oriCutOutWtC += gp_CutOutWt;
  1606. oriInNum += gp_InNum;
  1607. oriInWt += gp_InWt;
  1608. normalSqlidList.Add(SqlIDDef.PlanLuJGX.UpdateZYJGXC_WT_NUM);
  1609. normalParameterList.Add(new List<Object>() { oriCutOutNumC,oriCutOutWtC,oriInNum,oriInWt,existzyc.HeatPlanNo,existzyc.JgxCutNo});
  1610. }
  1611. else
  1612. {
  1613. ZyJgxC.JgxCutNo = ++JgxCutNo;
  1614. entitySqlidList.Add(SqlIDDef.PlanLuJGX.insertZYJGXC);
  1615. entityjsonStrings.Add(JSONFormat.Format(ZyJgxC));
  1616. entityClassNameList.Add(ClassDef.PlnZyJgxCEntity);
  1617. }
  1618. }
  1619. mzyjgx.InNum = totalInNum;
  1620. mzyjgx.InWt = totalInWt;
  1621. mzyjgx.OutNum = totalCutOutNum;
  1622. mzyjgx.OutWt = totalCutOutWt;
  1623. if (IsZyExist)//如果已有作业计划,只需累加投入产出量,其余动作不变
  1624. {
  1625. int oriOutNum = 0;
  1626. double oriOutWt = 0;
  1627. int oriInNum = 0;
  1628. double oriInWt = 0;
  1629. try
  1630. {
  1631. oriOutNum = Convert.ToInt32(existZy.OutNum);
  1632. oriOutWt = Convert.ToDouble(existZy.OutWt);
  1633. oriInNum = Convert.ToInt32(existZy.InNum);
  1634. oriInWt = Convert.ToDouble(existZy.InWt);
  1635. oriOutNum += totalCutOutNum;
  1636. oriOutWt += totalCutOutWt;
  1637. oriInNum +=totalInNum;
  1638. oriInWt +=totalInWt;
  1639. normalSqlidList.Add(SqlIDDef.PlanLuJGX.UpdateZYJGX_WT_NUM);
  1640. normalParameterList.Add(new List<Object>() { oriInWt, oriInNum, oriOutNum, oriOutWt, m_loginusername, existZy.HeatPlanNo });
  1641. }
  1642. catch
  1643. {
  1644. }
  1645. }
  1646. else
  1647. {
  1648. entitySqlidList.Add(SqlIDDef.PlanLuJGX.insertZYJGXM);
  1649. entityjsonStrings.Add(JSONFormat.Format(mzyjgx));
  1650. entityClassNameList.Add(ClassDef.PlnZyJgxMEntity);
  1651. }
  1652. if (isMatched)
  1653. {
  1654. matchwt += totalCutOutWt;
  1655. matchnum += totalCutOutNum;
  1656. normalSqlidList.Add(SqlIDDef.PlanLuJGX.UpdateOrderJGX_MATCH_WT_NUM);
  1657. normalParameterList.Add(new List<Object>() { _orderjgx.MatchWtIn, _orderjgx.MatchNumIn, _orderjgx.ProPlanId, _orderjgx.GxPlanNo });
  1658. }
  1659. batchnum += totalCutOutNum;
  1660. batchwt += totalCutOutWt;
  1661. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterial);
  1662. normalParameterList.Add(new List<Object>() { mzyjgx.InwlId.ToString(), firstmatrow.Cells["JUDGE_STOVE_NO"].Value, firstmatrow.Cells["BATCH_NO"].Value, firstmatrow.Cells["BATCH_GROUD_NO"].Value, "G", Convert.ToInt32(mzyjgx.InNum), "G", "加工线", _orderjgx.ProPlanId.ToString(), _orderjgx.GxPlanNo, lockLiku, m_loginusername });
  1663. normalSqlidList.Add(SqlIDDef.PlanLuJGX.UpdateOrderJGX_WT_NUM);
  1664. normalParameterList.Add(new List<Object>() { batchwt, batchnum, _orderjgx.ProPlanId, _orderjgx.GxPlanNo });
  1665. BaseEntityDAL.ExcuteTransaction(entitySqlidList, entityjsonStrings, entityClassNameList, normalSqlidList, normalParameterList, this.ob);
  1666. //BaseEntityDAL.UpdateOrder_WT_NUM("PLN_ORDER_JGX_S",_orderjgx.BatchedWt.ToString(),_orderjgx.BatchedNum.ToString(),_orderjgx.ProPlanId.ToString(),_orderjgx.GxPlanNo.ToString(),this.ob);
  1667. //UpdateOrderRCL_WT_NUM(_orderjgx);
  1668. queryAll();
  1669. //throw new NotImplementedException();
  1670. }
  1671. #endregion
  1672. #region 数据库操作
  1673. private void queryAll()
  1674. {
  1675. queryMat();
  1676. queryOrder();
  1677. }
  1678. /// <summary>
  1679. /// 物料确认动作的方法
  1680. /// </summary>
  1681. private void Confirm()
  1682. {
  1683. this.ultraGrid1.UpdateData();
  1684. var editedrows = this.ultraGrid1.Rows.Where(c => c.Cells["Choose"].Text.Equals("True") && !string.IsNullOrEmpty(c.Cells["USER_ACT_COUNT"].Value.ToString()) && !c.Cells["USER_ACT_COUNT"].Value.ToString().Equals("0"));
  1685. if (!Isupdate)
  1686. {
  1687. List<Infragistics.Win.UltraWinGrid.UltraGridRow> ListMATRows = new List<Infragistics.Win.UltraWinGrid.UltraGridRow>();
  1688. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in editedrows)
  1689. {
  1690. ListMATRows.Add(row);
  1691. }
  1692. if (ListMATRows.Count > 0)
  1693. {
  1694. OnMaterialConfirm(ListMATRows);
  1695. }
  1696. }
  1697. else
  1698. {
  1699. if (editedrows.Count() > 0)
  1700. {
  1701. var orderrow = this.ultraGrid2.Rows.First();
  1702. foreach (var row in editedrows)
  1703. {
  1704. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1705. {
  1706. m_OriginNum = RowsCountsMapping[row];
  1707. }
  1708. if (row.Cells["USER_ACT_COUNT"].Text.Trim().Equals("0"))
  1709. {
  1710. MessageUtil.ShowTips(string.Format("无法将投入量修改为0,如需删除作业计划请尝试回到{0}炉计划界面进行脱单或删除", CommHelper.getProcessDesc(CustomInfo)));
  1711. return;
  1712. }
  1713. int finalNum = 0;
  1714. finalNum = Convert.ToInt32(row.Cells["USER_ACT_COUNT"].Text.Trim());
  1715. double MAT_sinlewt = CommHelper.GetSpecDecimalBit(Convert.ToDouble(row.Cells["ACT_WEIGHT"].Text) / Convert.ToDouble(row.Cells["ACT_COUNT"].Text), 3);
  1716. double OUT_singlewt = CommHelper.GetSpecDecimalBit(Convert.ToDouble(orderrow.Cells["WeigthS"].Text) / Convert.ToDouble(orderrow.Cells["NumS"].Text), 3);
  1717. List<string> normalSqlidList = new List<string>();
  1718. List<List<Object>> normalParameterList = new List<List<Object>>();
  1719. string sqlID_UPDATEZY_WT_NUM = "";
  1720. string sqlID_UPDATEORDER_WT_NUM = "";
  1721. string sqlID_UPDATEOREER_MATCH_WT_NUM = "";
  1722. switch (CustomInfo)
  1723. {
  1724. case CustomInfoDef.DEFINE_CUSTOMER_DBK:
  1725. sqlID_UPDATEZY_WT_NUM = SqlIDDef.PlanLuDBK.UpdateZYDBK_WT_NUM;
  1726. sqlID_UPDATEORDER_WT_NUM = SqlIDDef.PlanLuDBK.UpdateOrderDBK_WT_NUM;
  1727. sqlID_UPDATEOREER_MATCH_WT_NUM = SqlIDDef.PlanLuDBK.UpdateOrderDBK_MATCH_WT_NUM;
  1728. break;
  1729. case CustomInfoDef.DEFINE_CUSTOMER_JG:
  1730. sqlID_UPDATEZY_WT_NUM = SqlIDDef.PlanLuJGX.UpdateZYJGX_WT_NUM;
  1731. sqlID_UPDATEORDER_WT_NUM = SqlIDDef.PlanLuJGX.UpdateOrderJGX_WT_NUM;
  1732. sqlID_UPDATEOREER_MATCH_WT_NUM = SqlIDDef.PlanLuJGX.UpdateOrderJGX_MATCH_WT_NUM;
  1733. break;
  1734. case CustomInfoDef.DEFINE_CUSTOMER_RCL:
  1735. sqlID_UPDATEZY_WT_NUM = SqlIDDef.PlanLuRCL.UpdateZYRCL_WT_NUM;
  1736. sqlID_UPDATEORDER_WT_NUM = SqlIDDef.PlanLuRCL.UpdateRCLORDER_WT_NUM;
  1737. sqlID_UPDATEOREER_MATCH_WT_NUM = SqlIDDef.PlanLuRCL.UpdateOrderRCL_MATCH_WT_NUM;
  1738. break;
  1739. case CustomInfoDef.DEFINE_CUSTOMER_ZG:
  1740. sqlID_UPDATEZY_WT_NUM = SqlIDDef.PlanLuZG.UpdateZYZG_WT_NUM;
  1741. sqlID_UPDATEORDER_WT_NUM = SqlIDDef.PlanLuZG.UpdateOrderZG_WT_NUM;
  1742. sqlID_UPDATEOREER_MATCH_WT_NUM = SqlIDDef.PlanLuZG.UpdateOrderZG_MATCH_WT_NUM;
  1743. break;
  1744. }
  1745. int nLockLiku = 0;
  1746. nLockLiku = DBComm.queryLockLiku(m_StoveNo, m_BatchNo, m_BatchGroupNo, m_ProPlanId, m_GxPlanNo, this.ob);
  1747. int actlen = 0;
  1748. try
  1749. {
  1750. actlen = Convert.ToInt32(row.Cells["ACT_LEN"].Value);
  1751. }
  1752. catch
  1753. {}
  1754. if (finalNum > m_OriginNum)//利库
  1755. {
  1756. int likuNum = finalNum - m_OriginNum;
  1757. #region 更新物料
  1758. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1759. {
  1760. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateGP);
  1761. normalParameterList.Add(new List<Object>() { m_InwlId, m_StoveNo,row.Cells["ACT_LEN"].Value, CommHelper.getProcessCode(CustomInfo), likuNum, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), m_ProPlanId, m_GxPlanNo, m_loginusername,nLockLiku });
  1762. }
  1763. else
  1764. {
  1765. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterial);
  1766. normalParameterList.Add(new List<Object>() { m_InwlId, m_StoveNo, m_BatchNo, m_BatchGroupNo, CommHelper.getProcessCode(CustomInfo), likuNum, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), m_ProPlanId, m_GxPlanNo, nLockLiku, m_loginusername });
  1767. }
  1768. #endregion
  1769. #region 更新作业计划量
  1770. //计划投入重量
  1771. double InWt = finalNum * MAT_sinlewt;
  1772. //计划投入支数
  1773. int InNum = finalNum;
  1774. //计划产出重量
  1775. double OutWt = finalNum * OUT_singlewt;
  1776. //计划产出支数
  1777. int OutNum = finalNum;
  1778. //
  1779. int addCutSingleNum = 0;
  1780. double addCutSinleWt = 0;
  1781. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1782. {
  1783. var zyzgcs = EntityHelper.GetData<PlnZyZgCEntity>(MethodDef.StoveBase.queryZyC, new Object[] { SqlIDDef.PlanLuZG.queryZYZGC, m_heatplanno }, this.ob);
  1784. PlnZyZgCEntity zyzgc = zyzgcs.Where(c => c.LengthGp.ToString().Trim().Equals(actlen.ToString())).First();
  1785. if (zyzgc == null)
  1786. {
  1787. MessageUtil.ShowError(string.Format("数据出错,未能根据物料找到对应长度的从表记录 --ACT_LEN={0}", actlen));
  1788. return;
  1789. }
  1790. int oriCutSingleNum = Convert.ToInt32(zyzgc.CutSingleNum);
  1791. double oriCutSingleWt = Convert.ToDouble(zyzgc.CutSingleWt);
  1792. //冲减从表作业计划量
  1793. addCutSingleNum = Convert.ToInt32(zyzgc.MultipleNum) * (finalNum - m_OriginNum);
  1794. addCutSinleWt = CommHelper.GetSpecDecimalBit(addCutSingleNum * PlanComm.GpweightOfmi(Convert.ToDouble(orderrow.Cells["Aimoutdiameter"].Value)) * Convert.ToInt16(zyzgc.LenGpSingle)*0.001, 3);
  1795. OutNum = addCutSingleNum * Convert.ToInt32(orderrow.Cells["OutnumCut"].Value);
  1796. OutWt =CommHelper.GetSpecDecimalBit( OutNum * PlanComm.WeightOfMi(Convert.ToDouble(orderrow.Cells["Aimoutdiameter"].Value), Convert.ToDouble(orderrow.Cells["Aimwallthick"].Value)) * Convert.ToDouble(orderrow.Cells["Aimlength"].Value),3);
  1797. oriCutSingleNum += addCutSingleNum;
  1798. oriCutSingleWt += addCutSinleWt;
  1799. int InGpNum = finalNum;
  1800. double InGpWt =CommHelper.GetSpecDecimalBit(finalNum * MAT_sinlewt,3);
  1801. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZGC_GPWT_GPNUM);
  1802. normalParameterList.Add(new List<Object>() {oriCutSingleNum,oriCutSingleWt,InGpNum,InGpWt,m_heatplanno,zyzgc.GpCutNo });
  1803. //冲减主表作业计划量
  1804. var zyzgms = EntityHelper.GetData<PlnZyZgMEntity>(MethodDef.StoveBase.queryZy,new Object[]{SqlIDDef.PlanLuZG.queryZYZGM,m_heatplanno},this.ob);
  1805. PlnZyZgMEntity zyzgm = zyzgms.First();
  1806. int MoriCutSingleNum = Convert.ToInt32(zyzgm.CutSingleNum);
  1807. double MoriCutSingleWt = Convert.ToDouble(zyzgm.CutSingleWt);
  1808. int MOriPlanGpNum = Convert.ToInt32(zyzgm.PlanGpNum);
  1809. int MOriOutNum = Convert.ToInt32(zyzgm.OutNum);
  1810. double MOriOutWt = Convert.ToDouble(zyzgm.OutWt);
  1811. MoriCutSingleNum += addCutSingleNum;
  1812. MoriCutSingleWt += addCutSinleWt;
  1813. MOriOutNum += OutNum;
  1814. MOriOutWt += OutWt;
  1815. MOriPlanGpNum += finalNum - m_OriginNum;
  1816. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZG_WT_NUM);
  1817. normalParameterList.Add(new List<Object>() { MoriCutSingleNum, MoriCutSingleWt, MOriOutNum, MOriOutWt, m_loginusername, MOriPlanGpNum, m_heatplanno });
  1818. }
  1819. else
  1820. {
  1821. normalSqlidList.Add(sqlID_UPDATEZY_WT_NUM);
  1822. normalParameterList.Add(new List<Object>() { InWt, InNum, OutNum, OutWt, m_loginusername, m_heatplanno });
  1823. }
  1824. #endregion
  1825. #region 累加炉计划已排支数
  1826. //原始支数
  1827. int Ori_Batch_Num = Convert.ToInt32(orderrow.Cells["BatchedNum"].Text);
  1828. //原始重量
  1829. double Ori_Batch_Wt = Convert.ToDouble(orderrow.Cells["BatchedWt"].Text);
  1830. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1831. {
  1832. Ori_Batch_Num += OutNum;
  1833. Ori_Batch_Wt += OutWt;
  1834. }
  1835. else
  1836. {
  1837. //累加炉计划已排数量
  1838. Ori_Batch_Num += likuNum;
  1839. Ori_Batch_Wt += likuNum * OUT_singlewt;
  1840. }
  1841. normalSqlidList.Add(sqlID_UPDATEORDER_WT_NUM);
  1842. normalParameterList.Add(new List<Object>() { Ori_Batch_Wt, Ori_Batch_Num, m_ProPlanId, m_GxPlanNo });
  1843. #endregion
  1844. #region 更新利库量
  1845. if (nLockLiku == 1)//更新利库量
  1846. {
  1847. //原始投入利库支数
  1848. int Ori_Match_Num = Convert.ToInt32(orderrow.Cells["MatchNumIn"].Text);
  1849. //原始投入利库重量
  1850. double Ori_Match_Wt = Convert.ToDouble(orderrow.Cells["MatchWtIn"].Text);
  1851. //累加投入利库量
  1852. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1853. {
  1854. Ori_Match_Num += OutNum;
  1855. Ori_Batch_Wt += OutWt;
  1856. }
  1857. else
  1858. {
  1859. Ori_Match_Num += likuNum;
  1860. Ori_Match_Wt += likuNum * OUT_singlewt;
  1861. }
  1862. normalSqlidList.Add(sqlID_UPDATEOREER_MATCH_WT_NUM);
  1863. normalParameterList.Add(new List<Object>() { Ori_Match_Wt, Ori_Match_Num, m_ProPlanId, m_GxPlanNo });
  1864. }
  1865. #endregion
  1866. }
  1867. else if (finalNum < m_OriginNum)//脱单
  1868. {
  1869. int sepNum = m_OriginNum - finalNum;
  1870. #region 退回物料
  1871. //
  1872. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1873. {
  1874. if (!m_PlanStatus.Equals("计划"))
  1875. {
  1876. MessageUtil.ShowWarning("轧管只允状态为计划的作业计划进行脱单");
  1877. return;
  1878. }
  1879. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateGPBack);
  1880. normalParameterList.Add(new List<Object>() { m_InwlId, m_StoveNo, m_ProPlanId, m_GxPlanNo,actlen, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), CommHelper.getProcessCode(CustomInfo), sepNum, m_loginusername });
  1881. }
  1882. else
  1883. {
  1884. if (m_PlanStatus.Equals("生产完成"))
  1885. {
  1886. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterialBackWhenFinish);
  1887. normalParameterList.Add(new List<Object>() { m_InwlId, m_StoveNo, m_GxPlanNo, m_BatchNo, m_BatchGroupNo, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), m_ProPlanId, CommHelper.getProcessCode(CustomInfo), sepNum, 0, m_loginusername });
  1888. }
  1889. else
  1890. {
  1891. normalSqlidList.Add(SqlIDDef.MaterialChoose.updateMaterialBack);
  1892. normalParameterList.Add(new List<Object>() { m_InwlId, m_StoveNo, m_GxPlanNo, m_BatchNo, m_BatchGroupNo, CommHelper.getProcessCode(CustomInfo), CommHelper.getProcessDesc(CustomInfo), m_ProPlanId, CommHelper.getProcessCode(CustomInfo), sepNum, 0, m_loginusername });
  1893. }
  1894. }
  1895. #endregion
  1896. #region 冲减作业计划量
  1897. double InWt = finalNum * MAT_sinlewt;//计划投入重量
  1898. int InNum = finalNum;//计划投入支数
  1899. double OutWt = finalNum * OUT_singlewt; //计划产出重量
  1900. int OutNum = finalNum;//计划产出支数
  1901. int sepCutSingleNum = 0;
  1902. double sepCutSingleWt = 0;
  1903. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1904. {
  1905. //冲减作业计划从表
  1906. var zyzgcs = EntityHelper.GetData<PlnZyZgCEntity>(MethodDef.StoveBase.queryZyC, new Object[] { SqlIDDef.PlanLuZG.queryZYZGC, m_heatplanno }, this.ob);
  1907. PlnZyZgCEntity zyzgc = zyzgcs.Where(c => c.LengthGp.ToString().Trim().Equals(actlen.ToString())).First();
  1908. sepCutSingleNum = sepNum * Convert.ToInt32(zyzgc.MultipleNum);
  1909. sepCutSingleWt = CommHelper.GetSpecDecimalBit(sepCutSingleNum * PlanComm.GpweightOfmi(Convert.ToDouble(orderrow.Cells["Aimoutdiameter"].Value)) * Convert.ToInt16(zyzgc.LenGpSingle)*0.001, 3);
  1910. OutNum = sepCutSingleNum * Convert.ToInt32(orderrow.Cells["OutnumCut"].Value);
  1911. OutWt = CommHelper.GetSpecDecimalBit(OutNum * PlanComm.WeightOfMi(Convert.ToDouble(orderrow.Cells["Aimoutdiameter"].Value), Convert.ToDouble(orderrow.Cells["Aimwallthick"].Value)) * Convert.ToDouble(orderrow.Cells["Aimlength"].Value), 3);
  1912. int CoriCutSingleNum = Convert.ToInt32(zyzgc.CutSingleNum);
  1913. double CoriCutSingleWt = Convert.ToDouble(zyzgc.CutSingleWt);
  1914. CoriCutSingleNum -= sepCutSingleNum;
  1915. CoriCutSingleWt -= sepCutSingleWt;
  1916. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZGC_GPWT_GPNUM);
  1917. normalParameterList.Add(new List<Object>() { CoriCutSingleNum,CoriCutSingleWt,finalNum,InWt,m_heatplanno,zyzgc.GpCutNo});
  1918. //冲减作业计划主表
  1919. var zyzgms = EntityHelper.GetData<PlnZyZgMEntity>(MethodDef.StoveBase.queryZy,new Object[]{SqlIDDef.PlanLuZG.queryZYZGM,m_heatplanno},this.ob);
  1920. PlnZyZgMEntity zyzgm = zyzgms.First();
  1921. int MoriCutSingleNum = Convert.ToInt32(zyzgm.CutSingleNum);
  1922. double MoriCutSingleWt = Convert.ToDouble(zyzgm.CutSingleWt);
  1923. int MoriOutNum = Convert.ToInt32(zyzgm.OutNum);
  1924. double MoriOutWt = Convert.ToDouble(zyzgm.OutWt);
  1925. int MoriPlanGpNum = Convert.ToInt32(zyzgm.PlanGpNum);
  1926. MoriCutSingleNum -= sepCutSingleNum;
  1927. MoriCutSingleWt -= sepCutSingleWt;
  1928. MoriOutNum -= OutNum;
  1929. MoriOutWt -= OutWt;
  1930. MoriPlanGpNum -= sepNum;
  1931. normalSqlidList.Add(SqlIDDef.PlanLuZG.UpdateZYZG_WT_NUM);
  1932. normalParameterList.Add(new List<Object>() {MoriCutSingleNum,MoriCutSingleWt,MoriOutNum,MoriOutWt,m_loginusername,MoriPlanGpNum,m_heatplanno });
  1933. }
  1934. else
  1935. {
  1936. normalSqlidList.Add(sqlID_UPDATEZY_WT_NUM);
  1937. normalParameterList.Add(new List<Object>() { InWt, InNum, OutNum, OutWt, m_loginusername, m_heatplanno });
  1938. }
  1939. #endregion
  1940. #region 冲减炉计划已排量
  1941. //
  1942. normalSqlidList.Add(sqlID_UPDATEORDER_WT_NUM);
  1943. int Ori_Batch_Num = 0;
  1944. double Ori_Batch_Wt = 0;
  1945. //原始支数
  1946. try
  1947. {
  1948. Ori_Batch_Num = Convert.ToInt32(orderrow.Cells["BatchedNum"].Text);
  1949. //原始重量
  1950. Ori_Batch_Wt = Convert.ToDouble(orderrow.Cells["BatchedWt"].Text);
  1951. }
  1952. catch
  1953. {
  1954. }
  1955. //冲减炉计划已排量
  1956. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1957. {
  1958. Ori_Batch_Num -= OutNum;
  1959. Ori_Batch_Wt -= OutWt;
  1960. }
  1961. else
  1962. {
  1963. Ori_Batch_Num -= sepNum;
  1964. Ori_Batch_Wt -= sepNum * OUT_singlewt;
  1965. }
  1966. normalParameterList.Add(new List<Object>() { Ori_Batch_Wt, Ori_Batch_Num, m_ProPlanId, m_GxPlanNo });
  1967. #endregion
  1968. #region 冲减投入利库量
  1969. //
  1970. if (nLockLiku == 1)//更新利库量
  1971. {
  1972. //原始投入利库支数
  1973. int Ori_Match_Num = Convert.ToInt32(orderrow.Cells["MatchNumIn"].Text);
  1974. //原始投入利库重量
  1975. double Ori_Match_Wt = Convert.ToDouble(orderrow.Cells["MatchWtIn"].Text);
  1976. //累加投入利库量
  1977. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1978. {
  1979. Ori_Match_Num -= OutNum;
  1980. Ori_Batch_Wt -= OutWt;
  1981. }
  1982. else
  1983. {
  1984. Ori_Match_Num -= sepNum;
  1985. Ori_Match_Wt -= sepNum * OUT_singlewt;
  1986. }
  1987. normalSqlidList.Add(sqlID_UPDATEOREER_MATCH_WT_NUM);
  1988. normalParameterList.Add(new List<Object>() { Ori_Match_Wt, Ori_Match_Num, m_ProPlanId, m_GxPlanNo });
  1989. }
  1990. #endregion
  1991. }
  1992. if (normalSqlidList.Count > 0)
  1993. {
  1994. BaseEntityDAL.ExcuteTransaction(normalSqlidList, normalParameterList, this.ob);
  1995. double singlewt = CommHelper.GetSpecDecimalBit(m_OriginTOtalWt / m_OriginTotalnum, 3);
  1996. if (CustomInfo != CustomInfoDef.DEFINE_CUSTOMER_ZG)
  1997. {
  1998. m_OriginNum = finalNum;
  1999. SetTempData(m_OriginNum, singlewt * m_OriginNum);
  2000. }
  2001. else
  2002. {
  2003. RowsCountsMapping[row] = finalNum;
  2004. }
  2005. }
  2006. }
  2007. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  2008. {
  2009. int count = 0;
  2010. foreach (var obj in RowsCountsMapping)
  2011. {
  2012. count += obj.Value;
  2013. }
  2014. m_OriginNum = count;
  2015. }
  2016. queryOrder();
  2017. }
  2018. }
  2019. }
  2020. private void queryOrder()
  2021. {
  2022. switch (CustomInfo)
  2023. {
  2024. case CustomInfoDef.DEFINE_CUSTOMER_DBK: this.plnOrderDbkSEntityBindingSource.DataSource = DBComm.queryOrderDBK("", "", m_ProPlanId, m_GxPlanNo, new string[] { "计划", "生产中", "生产完成", "关闭A" }, this.ob); break;
  2025. case CustomInfoDef.DEFINE_CUSTOMER_JG: this.plnOrderJgxSEntityBindingSource.DataSource = DBComm.QueryOrderJG("", "", m_ProPlanId, m_GxPlanNo, new string[] { "计划", "生产中", "生产完成", "关闭A" }, this.ob); break;
  2026. case CustomInfoDef.DEFINE_CUSTOMER_RCL: this.plnOrderRclSEntityBindingSource.DataSource = DBComm.QueryOrderRCL("", "", m_ProPlanId, m_GxPlanNo, new string[] { "计划", "生产中", "生产完成", "关闭A" }, this.ob); break;
  2027. case CustomInfoDef.DEFINE_CUSTOMER_ZG: this.plnOrderZgSEntityBindingSource.DataSource = DBComm.QueryOrderZG("", "", m_ProPlanId, m_GxPlanNo, new string[] { "计划", "生产中", "生产完成", "关闭A" }, this.ob); break;
  2028. }
  2029. DataTable dt = ServerHelper.GetData(MethodDef.StoveBase.queryBatchMatch, new Object[] { CommHelper.GetOrdertableName(CustomInfo), m_ProPlanId, m_GxPlanNo }, this.ob);
  2030. if (dt.Rows.Count > 0)
  2031. {
  2032. int InNumS = 0;
  2033. int ADD_NUM_IN = 0;
  2034. int BATCHED_NUM = 0;
  2035. try
  2036. {
  2037. InNumS = Convert.ToInt32(dt.Rows[0]["IN_NUM_S"].ToString());
  2038. ADD_NUM_IN = Convert.ToInt32(dt.Rows[0]["ADD_NUM_IN"].ToString());
  2039. }
  2040. catch
  2041. {
  2042. }
  2043. try
  2044. {
  2045. BATCHED_NUM = Convert.ToInt32(dt.Rows[0]["BATCHED_NUM"].ToString());
  2046. if (CustomInfo == CustomInfoDef.DEFINE_CUSTOMER_ZG)
  2047. {
  2048. DataTable dtInGpSum = ServerHelper.GetData(MethodDef.PlanLuZG.queryInNumInOrder, new Object[] { m_ProPlanId, m_GxPlanNo }, this.ob);
  2049. if (dtInGpSum.Rows.Count > 0)
  2050. {
  2051. BATCHED_NUM = Convert.ToInt32(dtInGpSum.Rows[0][0]);
  2052. }
  2053. }
  2054. }
  2055. catch
  2056. {
  2057. }
  2058. if (Isupdate)
  2059. {
  2060. m_MaxValidCount = InNumS + ADD_NUM_IN + m_OriginNum - BATCHED_NUM;
  2061. }
  2062. else
  2063. {
  2064. m_MaxValidCount = InNumS + ADD_NUM_IN - BATCHED_NUM;
  2065. }
  2066. }
  2067. }
  2068. private void queryMat()
  2069. {
  2070. DataTable dt = new DataTable();
  2071. if (Isupdate)
  2072. {
  2073. dt = DBComm.queryMaterialbyStv(m_InwlId,CustomInfo,m_StoveNo,m_BatchNo,m_BatchGroupNo,m_ProPlanId,m_GxPlanNo,this.ob);
  2074. }
  2075. else
  2076. {
  2077. dt = DBComm.queryMaterial(m_InwlId, CustomInfo, this.ob);
  2078. }
  2079. GridHelper.CopyDataToDatatable(dt,this.dataTable1,true);
  2080. }
  2081. /// <summary>
  2082. /// 根据物料编码更新MAT_GP_M表的前Usercount条数据的Process_Code和Process_DESC
  2083. /// </summary>
  2084. /// <param name="PROCESS_CDOE"></param>
  2085. /// <param name="PROCESS_DESC"></param>
  2086. /// <param name="MATERIAL_NO"></param>
  2087. /// <param name="USERCOUNT"></param>
  2088. /// <returns></returns>
  2089. private int UpdateMAT_GP_M(String PROCESS_CDOE, String PROCESS_DESC, String MATERIAL_NO, String JUDGE_STOVE_NO, int USERCOUNT)
  2090. {
  2091. int nret = 0;
  2092. nret = Core.Mes.Client.Comm.Server.ServerHelper.SetData(MethodDef.MaterialChoose.UpdateMAT_GP_M, new Object[] { PROCESS_CDOE, PROCESS_DESC, MATERIAL_NO, JUDGE_STOVE_NO, USERCOUNT }, this.ob);
  2093. return nret;
  2094. }
  2095. #endregion
  2096. }
  2097. }