FrmPipeSawResult.cs 227 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Server;
  11. using Core.Mes.Client.Comm.Control;
  12. using com.steering.mes.zgmil.entity;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Tool;
  15. using Core.StlMes.Client.ZGMil.NodeResultQuery;
  16. using Core.StlMes.Client.ZGMil.Entity;
  17. using System.Collections;
  18. using System.Net;
  19. using Core.StlMes.Client.ZGMil.ResultConrtrol;
  20. using Infragistics.Win;
  21. using Core.StlMes.Client.ZGMil.Common;
  22. using Core.StlMes.Client.ZGMil.Popup;
  23. using CoreFS.SA06;
  24. namespace Core.StlMes.Client.ZGMil.Result
  25. {
  26. public partial class FrmPipeSawResult : FrmBase
  27. {
  28. #region 初始化
  29. MilPlan QueryMainPlan = new MilPlan();
  30. MilPlan MainPlan = new MilPlan();
  31. MilSawResultEntity milSawResultEntity = new MilSawResultEntity();
  32. MilSawResultDeatilEntity milSawResultDeatilEntity = new MilSawResultDeatilEntity();
  33. private string ActiveJUDGE_STOVE_NO = null;//主计划活动行的判定炉号
  34. private string proPlanId = null;//轧管订单编号
  35. private string gxPlanNo = null;//工序排产序号
  36. private string lotNo = null;//生产批号
  37. private string ActiveStatus = null;//主计划活动行的状态
  38. private string ActiveResultNo = null;
  39. public int userRoom = 0; // 1-1#台 2-2#台
  40. private string Departm = "";//部门
  41. private string PlineCode = "";//产线
  42. private string TestMethod = "";
  43. string PlanStatusQuery = "69";
  44. string PlanStartStatusQuery = "00"; //查询结炉实绩起始状态
  45. private string Shift = "";
  46. private string Group = "";
  47. private string _User = "";
  48. private string _UserName = ""; //签名 姓名
  49. private string _Url = ""; //签名 Url
  50. private string _UserID = ""; //签名 签名ID
  51. private string ChangeUserID = "";
  52. ///// <summary>
  53. ///// 锯切刀数存储结构体
  54. ///// </summary>
  55. //public struct SawCount
  56. //{
  57. // public int CutHead;
  58. // public int CutTrail;
  59. // public int CutOrder;
  60. //}
  61. //SawCount sawCount1 = new SawCount();
  62. //SawCount sawCount2 = new SawCount();
  63. int RowNum = 0; //设置默认排支数
  64. int Flag = 0;
  65. int tempROW_NO1 = 0;//1#台排号
  66. int tempROW_NO2 = 0;//2#台排号
  67. int SAW_NUM = 0;//分切数
  68. public FrmPipeSawResult()
  69. {
  70. //FrmUserRomm fmuserromm = new FrmUserRomm();
  71. //fmuserromm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  72. //fmuserromm.ShowDialog();
  73. //if (fmuserromm.UserRomm == null)
  74. //{
  75. // this.Dispose();
  76. // this.Close();
  77. //}
  78. //else
  79. //{
  80. // userRoom = Int16.Parse(fmuserromm.UserRomm.Substring(2, 1));
  81. //}
  82. InitializeComponent();
  83. this.pipeSawResult1.UltraGrid2.ClickCellButton += new CellEventHandler(btnCUT_REV);
  84. this.pipeSawResult1.UltraGrid2.CellChange += new CellEventHandler(CutTypeChange);
  85. }
  86. /// <summary>
  87. /// 初始化控件
  88. /// </summary>
  89. public void InitControl()
  90. {
  91. if (chkLotNo.Checked)
  92. {
  93. txtLOT_NO.Enabled = true;
  94. }
  95. else
  96. {
  97. txtLOT_NO.Enabled = false;
  98. }
  99. if (chkHeatNo.Checked)
  100. {
  101. txtJudgeStoveNo.Enabled = true;
  102. }
  103. else
  104. {
  105. txtJudgeStoveNo.Enabled = false;
  106. }
  107. txtJudgeStoveNo.Enabled = false;
  108. txtLOT_NO.Enabled = false;
  109. }
  110. /// <summary>
  111. /// LOAD事件
  112. /// </summary>
  113. /// <param name="e"></param>
  114. protected override void OnLoad(EventArgs e)
  115. {
  116. base.OnLoad(e);
  117. rollingInfomation1.UltraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  118. rollingCard1.UltraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  119. this.pipeSawResult1.UltraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  120. ultraGridPlan.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  121. ultraGridMatSeq.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  122. foreach (UltraGridColumn ugc in ultraGridPlan.DisplayLayout.Bands[0].Columns)
  123. {
  124. ugc.SortIndicator = SortIndicator.Disabled;
  125. }
  126. }
  127. /// <summary>
  128. /// 页面开启事件
  129. /// </summary>
  130. /// <param name="e"></param>
  131. protected override void OnShown(EventArgs e)
  132. {
  133. base.OnShown(e);
  134. txtJudgeStoveNo.Enabled = false;
  135. txtLOT_NO.Enabled = false;
  136. string hostname = Dns.GetHostName();
  137. IPAddress ip = Dns.GetHostByName(hostname).AddressList[0];
  138. NativeMethodNew na = new NativeMethodNew(this.ob);
  139. TestMethod = na.GetOperateResult(ip.ToString(), "1");
  140. if (!TestMethod.Contains("管排锯"))
  141. {
  142. MessageBox.Show("提示:该电脑不是管排锯操作台电脑,不允许操作改界面。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  143. this.Dispose();
  144. this.Close();
  145. return;
  146. }
  147. Departm = UserInfo.GetDepartment();
  148. PlineCode = na.GetPCode(Departm);//获取 用户 对应的产线
  149. string plcode = na.GetOperateResult(ip.ToString(), "0");
  150. if (!PlineCode.Equals(plcode.Trim()))
  151. {
  152. MessageBox.Show("提示:您的账号所属产线与配置不符。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  153. this.Dispose();
  154. this.Close();
  155. return;
  156. }
  157. if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017") || PlineCode.Equals("C072"))
  158. {
  159. this.rollingCard1.ChangCard();
  160. }
  161. if (TestMethod.Contains("管排锯") && TestMethod.Contains("1"))
  162. {
  163. userRoom = 1;
  164. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO1"].Value = "1#锯";
  165. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO2"].Value = "2#锯";
  166. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N1"].Value = "3#锯";
  167. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N12"].Value = "4#锯";
  168. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N2"].Value = "3#锯";
  169. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N22"].Value = "4#锯";
  170. }
  171. if (TestMethod.Contains("管排锯") && TestMethod.Contains("2"))
  172. {
  173. userRoom = 2;
  174. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO1"].Value = "3#锯";
  175. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO2"].Value = "4#锯";
  176. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N1"].Value = "1#锯";
  177. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N12"].Value = "2#锯";
  178. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N2"].Value = "1#锯";
  179. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NO_N22"].Value = "2#锯";
  180. }
  181. PlanQuery();
  182. //foreach (UltraGridRow ugr in ultraGridPlan.Rows)
  183. //{
  184. // ugr.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugr.Cells["JUDGE_STOVE_NO"].Value.ToString());
  185. //}
  186. Shift = UserInfo.GetUserOrder();
  187. Group = UserInfo.GetUserGroup();
  188. Sign();
  189. ShowShift();
  190. ValueList va = new ValueList();
  191. va.ValueListItems.Add("被动切尾");
  192. va.ValueListItems.Add("主动切尾");
  193. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].ValueList = va;
  194. }
  195. #endregion
  196. private void ShowShift()
  197. {
  198. colShowShiftGroup1.Ob = this.ob;
  199. colShowShiftGroup1.Group = this.UserInfo.GetUserGroup();
  200. colShowShiftGroup1.Shift = this.UserInfo.GetUserOrder();
  201. colShowShiftGroup1.ShowShift();
  202. colShowShiftGroup1.Timer1.Enabled = true;
  203. }
  204. #region 方法
  205. /// <summary>
  206. /// 签名
  207. /// </summary>
  208. private void Sign()
  209. {
  210. ColUserName col = new ColUserName();
  211. col.StationId = "6";
  212. col.PlineCode = PlineCode;
  213. col.ColGroup = Group;
  214. col.Ob = this.ob;
  215. col.ShowDialog();
  216. _UserID = col.getUserId();
  217. _UserName = col.getUserName();
  218. }
  219. /// <summary>
  220. /// 刷新
  221. /// </summary>
  222. public void ReFresh()
  223. {
  224. }
  225. /// <summary>
  226. /// 判断是否能开始当前炉次
  227. /// </summary>
  228. /// <returns></returns>
  229. private bool IsStart()
  230. {
  231. bool Start = true;
  232. foreach (UltraGridRow ugr in ultraGridPlan.Rows)
  233. {
  234. if (ugr.Cells["IS_START"].Value.ToString() == "已开始分切")
  235. {
  236. MessageBox.Show("炉号【" + ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() + "】正在分切,不能两炉同时开始分切", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  237. Start = false; ;
  238. }
  239. }
  240. return Start;
  241. }
  242. /// <summary>
  243. /// 更改颜色
  244. /// </summary>
  245. public void ChangeGridColor()
  246. {
  247. foreach (UltraGridRow ugr in ultraGridPlan.Rows)
  248. {
  249. if (ugr.Cells["IS_START"].Value.ToString() == "已完成分切")
  250. {
  251. ugr.Appearance.BackColor = Color.YellowGreen;
  252. }
  253. }
  254. foreach (UltraGridRow ugr in ultraGridMatSeq.Rows)
  255. {
  256. if (ugr != null)
  257. {
  258. if (ugr != null)
  259. {
  260. switch (ugr.Cells["STATUS"].Value.ToString())
  261. {
  262. case "切前剔除":
  263. ugr.Appearance.BackColor = Color.Yellow;
  264. break;
  265. case "切后剔除":
  266. ugr.Appearance.BackColor = Color.YellowGreen;
  267. break;
  268. }
  269. switch (ugr.Cells["CHANGE_FLAG"].Value.ToString())
  270. {
  271. case "待接班确认":
  272. ugr.Appearance.BackColor = Color.LightGreen;
  273. break;
  274. }
  275. }
  276. }
  277. }
  278. }
  279. /// <summary>
  280. /// 查询管号队列
  281. /// </summary>
  282. public void GetMatRack(string JudgeStoveNo)
  283. {
  284. dtMat.Clear();
  285. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.getMatRackSeq", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  286. GridHelper.CopyDataToDatatable(ref dt, ref dtMat, true);
  287. //ultraGridMatSeq.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  288. if (SAW_NUM > 0)
  289. {
  290. Infragistics.Win.ValueList list = new Infragistics.Win.ValueList();
  291. for (int i = 1; i <= SAW_NUM; i++)
  292. {
  293. list.ValueListItems.Add(i);
  294. }
  295. ValueList va = new ValueList();
  296. va.ValueListItems.Add("被动切尾");
  297. va.ValueListItems.Add("主动切尾");
  298. ValueList var = new ValueList();
  299. var.ValueListItems.Add("工艺废");
  300. var.ValueListItems.Add("设备废");
  301. var.ValueListItems.Add("分切废");
  302. var.ValueListItems.Add("弯曲");
  303. var.ValueListItems.Add("来料短尺");
  304. foreach (UltraGridRow ugr in ultraGridMatSeq.Rows)
  305. {
  306. ugr.Cells["SCRAP_DBNUM"].ValueList = list;
  307. ugr.Cells["CUT_TYPE"].ValueList = va;
  308. ugr.Cells["SCRAP_REASON"].ValueList = var;
  309. //if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("正常"))
  310. //{
  311. ugr.Cells["ChangShift"].Value = "交班操作";
  312. ugr.Cells["BTNCHANGECOM"].Value = "接班操作";
  313. //}
  314. //if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("交班点"))
  315. //{
  316. // ugr.Cells["ChangShift"].Value = "交班回退";
  317. //}
  318. //ugr.Cells["RowNoChang"].Value = "排号修改";
  319. }
  320. }
  321. }
  322. /// <summary>
  323. /// 查询流通卡信息
  324. /// </summary>
  325. public void GetRollingCard()
  326. {
  327. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  328. if (ugr != null)
  329. {
  330. string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  331. DataTable dt = new DataTable();
  332. if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017"))
  333. {
  334. dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard1", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  335. }
  336. else
  337. {
  338. dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  339. }
  340. RollingCardEditGrid(dt, JudgeStoveNo);
  341. }
  342. }
  343. /// <summary>
  344. /// 查询结炉实绩
  345. /// </summary>
  346. public void NodeQuery()
  347. {
  348. string Shift = UserInfo.GetUserOrder();
  349. string Group = UserInfo.GetUserGroup();
  350. string PliceCode = PlineCode;
  351. string StartTime = DateTime.Now.ToString("yyyy-MM-dd");
  352. string EndTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
  353. string Date = StartTime;
  354. StartTime = StartTime + " 00:00:00";
  355. EndTime = EndTime + " 00:00:00";
  356. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleNodeResult", new object[] { PliceCode, Shift, Group, StartTime, EndTime }, this.ob);
  357. FrmNodeResultQuery frm = new FrmNodeResultQuery(dt, 9, Date, Shift, Group, this.ob);
  358. frm.ShowDialog();
  359. }
  360. #endregion
  361. #region 事件
  362. /// <summary>
  363. /// checkbox点击事件
  364. /// </summary>
  365. /// <param name="sender"></param>
  366. /// <param name="e"></param>
  367. private void chkDate_CheckedChanged(object sender, EventArgs e)
  368. {
  369. if (chkLotNo.Checked)
  370. {
  371. txtLOT_NO.Enabled = true;
  372. }
  373. else
  374. {
  375. txtLOT_NO.Enabled = false;
  376. }
  377. if (chkHeatNo.Checked)
  378. {
  379. txtJudgeStoveNo.Enabled = true;
  380. }
  381. else
  382. {
  383. txtJudgeStoveNo.Enabled = false;
  384. }
  385. if (chkStatusQuery.Checked)
  386. {
  387. PlanStatusQuery = "99";
  388. PlanStartStatusQuery = "70";
  389. }
  390. else
  391. {
  392. PlanStatusQuery = "69";
  393. PlanStartStatusQuery = "00";
  394. }
  395. }
  396. /// <summary>
  397. /// ToolBar按钮
  398. /// </summary>
  399. /// <param name="sender"></param>
  400. /// <param name="ToolbarKey"></param>
  401. public override void ToolBar_Click(object sender, string ToolbarKey)
  402. {
  403. switch (ToolbarKey)
  404. {
  405. case "Query": //查询
  406. PlanQuery();
  407. break;
  408. case "Save":
  409. SawResultSave();//保存
  410. break;
  411. case "Node":
  412. SawesultNode(); //结炉
  413. break;
  414. case "DoNodeBack":
  415. NodeBack();
  416. break;
  417. case "DoNodeQuery"://结炉实绩
  418. NodeQuery();
  419. break;
  420. case "DoStart":
  421. DoStart();
  422. break;
  423. case "DoStartBack":
  424. StartBack();
  425. break;
  426. case "pipsawfast"://快速分切
  427. pipsawfast();
  428. break;
  429. case "DoPrint":
  430. PrintResult();
  431. break;
  432. case "DoChangeCancel":
  433. ChangeShiftBack();
  434. // break;
  435. //case "colchang":
  436. // colchang();
  437. break;
  438. case "DoSign":
  439. Sign();
  440. break;
  441. case "Close":
  442. this.Dispose();
  443. this.Close();
  444. break;
  445. }
  446. }
  447. private String doQueryJugeNoStaus(string resultNo, string jugeNo, string plineCode)
  448. {
  449. string staus = "3";
  450. DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.doQueryResultStaus", new object[] { resultNo, jugeNo, plineCode, "5", proPlanId, gxPlanNo }, ob);
  451. if (ds.Rows.Count > 0)
  452. {
  453. staus = ds.Rows[0]["NODE_FUR_FLAG"].ToString();
  454. }
  455. return staus;
  456. }
  457. /// <summary>
  458. /// 修改IS_START名称
  459. /// </summary>
  460. public void ChangeCellName()
  461. {
  462. if (ultraGridPlan.Rows.Count > 0)
  463. {
  464. NativeMethodNew na = new NativeMethodNew(this.ob);
  465. foreach (UltraGridRow ugr in ultraGridPlan.Rows)
  466. {
  467. //String Judge_Stove_No = ugr.Cells["JUDGE_DTOVE_NO"].Value.ToString();
  468. //if (na.isBegineNode(Judge_Stove_No, 0))
  469. //{
  470. // ugr.Appearance.BackColor = Color.YellowGreen;
  471. //}
  472. if (ugr.Cells["IS_START"].Value.ToString() != "未开始分切" && ugr.Cells["IS_START"].Value.ToString() != "已开始分切" && ugr.Cells["IS_START"].Value.ToString() != "已完成分切")
  473. {
  474. switch (Convert.ToInt32(ugr.Cells["IS_START"].Value))
  475. {
  476. case 3:
  477. ugr.Cells["IS_START"].Value = "未开始分切";
  478. break;
  479. case 0:
  480. ugr.Cells["IS_START"].Value = "已开始分切";
  481. break;
  482. case 1:
  483. ugr.Cells["IS_START"].Value = "已完成分切";
  484. break;
  485. }
  486. }
  487. }
  488. }
  489. }
  490. /// <summary>
  491. /// 计划查询
  492. /// </summary>
  493. public void PlanQuery()
  494. {
  495. string PrimaKey = "";
  496. UltraGridRow ugr = this.ultraGridPlan.ActiveRow;
  497. if (ugr != null)
  498. {
  499. PrimaKey = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  500. }
  501. if (chkHeatNo.Checked == true)
  502. {
  503. if (string.IsNullOrEmpty(this.txtJudgeStoveNo.Text))
  504. {
  505. MessageBox.Show("请输入判定炉号后再执行查询操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  506. return;
  507. }
  508. QueryMainPlan.JudgeStoveNo = this.txtJudgeStoveNo.Text;
  509. }
  510. else
  511. {
  512. QueryMainPlan.JudgeStoveNo = "";
  513. }
  514. if (chkLotNo.Checked == true)
  515. {
  516. if (string.IsNullOrEmpty(this.txtLOT_NO.Text))
  517. {
  518. MessageBox.Show("请输入生产批号后再执行查询操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  519. return;
  520. }
  521. QueryMainPlan.LotNo = this.txtLOT_NO.Text;
  522. }
  523. else
  524. {
  525. QueryMainPlan.LotNo = "";
  526. }
  527. //dtMatSeq.Clear();
  528. dtPlan.Clear();
  529. QueryMainPlan.PlineCode = PlineCode;
  530. QueryMainPlan.Status = PlanStatusQuery;
  531. QueryMainPlan.StartStatus = PlanStartStatusQuery;
  532. //查询计划记录
  533. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob);
  534. if (dt.Rows.Count == 0)
  535. {
  536. MessageBox.Show("未查询到数据。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  537. return;
  538. }
  539. GridHelper.CopyDataToDatatable(ref dt, ref dtPlan, true);
  540. //ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  541. ChangeCellName();
  542. if (ugr != null)
  543. {
  544. foreach (UltraGridRow ugr1 in ultraGridPlan.Rows)
  545. {
  546. ugr1.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString());
  547. if (ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString() == PrimaKey)
  548. {
  549. ugr1.Activated = true;
  550. }
  551. }
  552. }
  553. ChangeGridColor();
  554. }
  555. /// <summary>
  556. /// 单击计划行
  557. /// </summary>
  558. /// <param name="sender"></param>
  559. /// <param name="e"></param>
  560. private void ultraGridPlan_AfterRowActivate(object sender, EventArgs e)
  561. {
  562. if (this.dtPlan.Rows.Count > 0)
  563. {
  564. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  565. if (ugr != null)
  566. {
  567. //查询主计 划信息
  568. dtMat.Clear();
  569. string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  570. proPlanId = ugr.Cells["PRO_PLAN_ID"].Value.ToString();
  571. gxPlanNo = ugr.Cells["GX_PLAN_NO"].Value.ToString();
  572. lotNo = ugr.Cells["LOT_NO"].Value.ToString();
  573. ActiveJUDGE_STOVE_NO = JudgeStoveNo;
  574. string resltNo = ugr.Cells["ID"].Value.ToString();
  575. //string Status = ugr.Cells["IS_START"].Value.ToString();
  576. string Status = doQueryJugeNoStaus(resltNo, JudgeStoveNo, PlineCode);
  577. ActiveStatus = Status;
  578. MainPlan.JudgeStoveNo = JudgeStoveNo;
  579. MainPlan.ProPlanId = proPlanId;
  580. MainPlan.GxPlanNo = gxPlanNo;
  581. DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob);
  582. if (dtMP.Rows.Count > 0)
  583. {
  584. GridEdit(dtMP); //轧制计划信息
  585. ActiveResultNo = dtMP.Rows[0]["ID"].ToString();
  586. GetSawResultEdit(JudgeStoveNo);//分切计划
  587. GetMilplanEdit(dtMP);//主计划赋值
  588. //查询流通卡信息
  589. DataTable dtRollingCard = new DataTable();
  590. if (PlineCode.Equals("C009") || PlineCode.Equals("C012") || PlineCode.Equals("C017"))
  591. {
  592. dtRollingCard = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard1", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  593. }
  594. else
  595. {
  596. dtRollingCard = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getRollingCard", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  597. }
  598. if (dtRollingCard.Rows.Count > 0)
  599. {
  600. RollingCardEditGrid(dtRollingCard, JudgeStoveNo);//流通卡赋值
  601. }
  602. }
  603. NativeMethodNew na = new NativeMethodNew(this.ob);
  604. if (na.isBegineNode(ActiveJUDGE_STOVE_NO, 6))
  605. {
  606. GetMatRack(JudgeStoveNo);
  607. }
  608. else
  609. {
  610. this.dtMat.Rows.Clear();
  611. }
  612. ChangeGridColor();
  613. //if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6))
  614. //{
  615. // return;
  616. //}
  617. if (Status == "1" || Status == "3")
  618. {
  619. return;
  620. }
  621. //查询定径结炉是否完成
  622. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  623. if (dt.Rows.Count == 0)
  624. {
  625. //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  626. return;
  627. }
  628. if (string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString()))
  629. {
  630. //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  631. return;
  632. }
  633. if (dt.Rows[0]["NODE_FUR_FLAG"].ToString() != "1")//
  634. {
  635. //MessageBox.Show("炉号【" + JudgeStoveNo + "】还未矫直完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  636. return;
  637. }
  638. UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0];
  639. UltraGridRow ugr2 = this.rollingCard1.UltraGrid4.Rows[0];
  640. //保存当前实绩
  641. MilSawResultEntity milsawresult = new MilSawResultEntity();
  642. this.pipeSawResult1.UltraGrid2.UpdateData();
  643. milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult);
  644. //来料支数
  645. int MatNum = 0;
  646. if (!string.IsNullOrEmpty(ugr2.Cells["QualifiedNum7"].Value.ToString()))
  647. {
  648. MatNum = Convert.ToInt32(ugr2.Cells["QualifiedNum7"].Value.ToString());
  649. }
  650. //切前合格支数
  651. milsawresult.CutNum = MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString3());
  652. //分切数
  653. int sawnum = int.Parse(ugr1.Cells["SAW_MUMP"].Value.ToString());
  654. //切后合格支数
  655. milsawresult.CutDbnum = (MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString3())) * sawnum - int.Parse(ugr2.Cells["ScrapNum10"].Value.ToString3());
  656. //交接班支数
  657. //milsawresult.ChangeNum = ugr1.Cells["CHANGE_NUM"].Value.ToString();
  658. milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString();
  659. //合格吨
  660. double DBHeight = 0;
  661. double BurnningRate = 0;
  662. double BurnningRate1 = 0;
  663. double DBNum = 1;
  664. NativeMethodNew na1 = new NativeMethodNew(this.ob);
  665. double percent0 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 0);
  666. double percent1 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 1);
  667. double percent2 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 2);
  668. if (percent0 == 100.0)
  669. {
  670. MessageBox.Show("炉号:【" + JudgeStoveNo + "】尚未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  671. return;
  672. }
  673. DataTable dtDBH = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getDbHeight", new object[] { JudgeStoveNo, ActiveResultNo, proPlanId, gxPlanNo }, this.ob);
  674. if (dtDBH.Rows.Count > 0)
  675. {
  676. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_HEIGHT"].ToString()))
  677. {
  678. DBHeight = double.Parse(dtDBH.Rows[0]["DB_HEIGHT"].ToString());
  679. }
  680. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNNING_RATE"].ToString()))
  681. {
  682. BurnningRate = double.Parse(dtDBH.Rows[0]["BURNNING_RATE"].ToString());
  683. }
  684. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNINGRATE"].ToString()))
  685. {
  686. BurnningRate1 = double.Parse(dtDBH.Rows[0]["BURNINGRATE"].ToString());
  687. }
  688. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_NUM"].ToString()))
  689. {
  690. DBNum = double.Parse(dtDBH.Rows[0]["DB_NUM"].ToString());
  691. }
  692. }
  693. //分产线 是否经过再加热炉
  694. if (this.PlineCode == "C009" || PlineCode == "C012" || PlineCode == "C017")
  695. {
  696. double temp = DBHeight * (1 - (BurnningRate / 100));
  697. double tempnum = double.Parse(milsawresult.CutDbnum.ToString());
  698. milsawresult.QaTon = temp * percent0 / 100 * tempnum;
  699. milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString());
  700. milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString());
  701. milsawresult.CutTrailLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutTrailLength.ToString()) ? "0" : milsawresult.CutTrailLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000;
  702. milsawresult.CutHeadLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutHeadLength.ToString()) ? "0" : milsawresult.CutHeadLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000;
  703. }
  704. else
  705. {
  706. double temp = DBHeight * (1 - (BurnningRate / 100)) * (1 - (BurnningRate1 / 100));
  707. double tempnum = double.Parse(milsawresult.CutDbnum.ToString());
  708. milsawresult.QaTon = temp * percent0 / 100 * tempnum;
  709. milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString());
  710. milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString());
  711. milsawresult.CutTrailLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutTrailLength.ToString()) ? "0" : milsawresult.CutTrailLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000;
  712. milsawresult.CutHeadLengthTotal = double.Parse(string.IsNullOrEmpty(milsawresult.CutHeadLength.ToString()) ? "0" : milsawresult.CutHeadLength.ToString()) * double.Parse(string.IsNullOrEmpty(milsawresult.CutNum.ToString()) ? "0" : milsawresult.CutNum.ToString()) / 1000;
  713. }
  714. milsawresult.ColGroup = UserInfo.GetUserGroup();
  715. milsawresult.ColShift = UserInfo.GetUserOrder();
  716. milsawresult.ColUser = UserInfo.GetUserName();
  717. int countafter = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.QuNum", new object[] { milsawresult }, this.ob);
  718. }
  719. }
  720. }
  721. /// <summary>
  722. /// 双击计划开始锯切
  723. /// </summary>
  724. /// <param name="sender"></param>
  725. /// <param name="e"></param>
  726. //private void ultraGridPlan_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
  727. private void DoStart()
  728. {
  729. if (this.PlineCode.Equals("C009"))
  730. {
  731. if (this.TestMethod.Contains("2"))
  732. {
  733. MessageBox.Show("您的操作台不允许进行分切开始操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  734. return;
  735. }
  736. }
  737. if (ultraGridPlan.Rows.Count > 0)
  738. {
  739. //if (!IsStart())
  740. //{
  741. // //return;mj
  742. //}
  743. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  744. UltraGridRow ugr1 = pipeSawResult1.UltraGrid2.Rows[0];
  745. if (ugr != null)
  746. {
  747. //int SawNum = int.Parse(ugr1.Cells["SAW_NUM"].Value.ToString());
  748. int Flag = 0; //0-开始分切 1-取消
  749. string HeatNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  750. ActiveJUDGE_STOVE_NO = HeatNo;
  751. string ResultNo = ugr.Cells["ID"].Value.ToString();
  752. //string Statue = ugr.Cells["IS_START"].Value.ToString();
  753. string Statue = doQueryJugeNoStaus(ResultNo, HeatNo,PlineCode);
  754. ActiveStatus = Statue;
  755. if (Statue == "1")
  756. {
  757. MessageBox.Show("炉号:【" + HeatNo + "】已完成分切操作,不允许再次进行管排锯操作!!!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  758. return;
  759. }
  760. MainPlan.JudgeStoveNo = HeatNo;
  761. MainPlan.ProPlanId = proPlanId;
  762. MainPlan.GxPlanNo = gxPlanNo;
  763. DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob);
  764. string rollLength = dtMP.Rows[0]["ROLL_LENGTH"].ToString();
  765. string orderlegth = dtMP.Rows[0]["TARGET_LENGTH"].ToString();
  766. SAW_NUM = int.Parse(dtMP.Rows[0]["SAW_NUM"].ToString());
  767. string tailegth = dtMP.Rows[0]["CUT_TRAIL_LENGTHP"].ToString();
  768. string headlengt = dtMP.Rows[0]["CUT_HEAD_LENGTHP"].ToString();
  769. ActiveResultNo = dtMP.Rows[0]["ID"].ToString();
  770. GridEdit(dtMP);//轧制计划信息
  771. GetRollingCard();//流通卡赋值
  772. GetMilplanEdit(dtMP);//主计划赋值
  773. GetSawResultEdit(HeatNo);//分切计划信息
  774. NativeMethodNew na = new NativeMethodNew(this.ob);
  775. if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6))
  776. {
  777. //if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + MainPlan.JudgeStoveNo + "】开始分切?") == DialogResult.No)
  778. //{
  779. // return;
  780. //}
  781. string PLineCode = dtMP.Rows[0]["PLINE_CODE"].ToString();
  782. string LotNo = dtMP.Rows[0]["LOT_NO"].ToString();
  783. string StoveNo = dtMP.Rows[0]["STOVE_NO"].ToString();
  784. //修改主计划状态为 65-开始锯切,新增锯切实绩信息
  785. milSawResultEntity.JudgeStoveNo = HeatNo;
  786. milSawResultEntity.ResultNo = ResultNo;
  787. milSawResultEntity.LotNo = LotNo;
  788. milSawResultEntity.StoveNo = StoveNo;
  789. milSawResultEntity.PlineCode = PLineCode;
  790. //milSawResultEntity.OrderLength = orderlegth;
  791. //milSawResultEntity.CutHeadLength = headlengt;
  792. //milSawResultEntity.CutTrailLength = tailegth;
  793. milSawResultEntity.OrderLength = "";
  794. milSawResultEntity.CutHeadLength = "";
  795. milSawResultEntity.CutTrailLength = "";
  796. milSawResultEntity.SawNum = SAW_NUM.ToString();
  797. milSawResultEntity.CutType = "被动切尾";
  798. milSawResultEntity.Status = "65";
  799. milSawResultEntity.NodeFurFlag = "0";
  800. milSawResultEntity.StartTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  801. milSawResultEntity.ColMode = "0";
  802. milSawResultEntity.ColGroup = UserInfo.GetUserGroup();
  803. milSawResultEntity.ColShift = UserInfo.GetUserOrder();
  804. milSawResultEntity.ColUser = UserInfo.GetUserName();
  805. milSawResultEntity.ProPlanId = proPlanId;
  806. milSawResultEntity.GxPlanNo = gxPlanNo;
  807. //1.更新主表Stutas=65,2、插入分切实绩
  808. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.startSaw", new object[] { milSawResultEntity }, this.ob);
  809. na.InsertSTAferDoubleClick(milSawResultEntity.JudgeStoveNo.ToString(), 6, "0", proPlanId, gxPlanNo);
  810. int countrack = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackrollLebgth", new object[] { HeatNo, rollLength, orderlegth, proPlanId, gxPlanNo }, this.ob);
  811. //刷新主表
  812. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob);
  813. GridHelper.CopyDataToDatatable(ref dt, ref dtPlan, true);
  814. //ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  815. ChangeCellName();
  816. foreach (UltraGridRow ugr_ in this.ultraGridPlan.Rows)
  817. {
  818. if (ugr_.Cells["JUDGE_STOVE_NO"].Value.ToString() == HeatNo)
  819. {
  820. ultraGridPlan.ActiveRow = ugr_;
  821. }
  822. }
  823. PlanQuery();
  824. ChangeGridColor();
  825. }
  826. else
  827. {
  828. MessageBox.Show("炉号【" + HeatNo + "】已经开始锯切,不能再次开始!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  829. }
  830. }
  831. }
  832. }
  833. /// <summary>
  834. /// 开始回退
  835. /// </summary>
  836. private void StartBack()
  837. {
  838. if (ultraGridPlan.Rows.Count > 0)
  839. {
  840. if (this.ultraGridPlan.ActiveRow == null)
  841. {
  842. MessageBox.Show("请选择需要回退的炉号!!!");
  843. return;
  844. }
  845. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  846. string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  847. string ResultNo = ugr.Cells["ID"].Value.ToString();
  848. //string StartStatus = ugr.Cells["IS_START"].Value.ToString();
  849. string StartStatus = doQueryJugeNoStaus(ResultNo, JudgeStoveNo,PlineCode);
  850. if (StartStatus == "1")
  851. {
  852. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】已结炉,不能入炉回退!!!!");
  853. return;
  854. }
  855. if (StartStatus == "3")
  856. {
  857. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】未开始分切,不能开始回退!!!!");
  858. return;
  859. }
  860. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.startBack", new object[] { JudgeStoveNo, ResultNo, 6, PlineCode, proPlanId, gxPlanNo }, this.ob);
  861. if (count > 0)
  862. {
  863. ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.pipsawfastback", new object[] { JudgeStoveNo, ResultNo, PlineCode, proPlanId, gxPlanNo }, this.ob);
  864. }
  865. GetMatRack(JudgeStoveNo);
  866. ChangeGridColor();
  867. ChangeCellName();
  868. PlanQuery();
  869. }
  870. }
  871. public void CutTypeChange(object sender, CellEventArgs e)
  872. {
  873. if (!e.Cell.Column.Key.ToString().Equals("CUT_TYPE"))
  874. {
  875. return;
  876. }
  877. else
  878. {
  879. if (this.ultraGridPlan.ActiveRow == null)
  880. {
  881. return;
  882. }
  883. if (!this.ultraGridPlan.ActiveRow.Cells["IS_START"].Value.ToString().Equals("已开始分切"))
  884. {
  885. return;
  886. }
  887. string heatno = this.ActiveJUDGE_STOVE_NO;
  888. DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  889. if (dtDeatail.Rows.Count > 0)
  890. {
  891. foreach (DataRow dr in dtDeatail.Rows)
  892. {
  893. if (!dr["SAW_FLAG"].Equals("3"))
  894. {
  895. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  896. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].Value = "被动切尾";
  897. return;
  898. //只针对快速分切,如果是逐排切的话则允许
  899. }
  900. }
  901. }
  902. this.pipeSawResult1.UltraGrid2.Update();
  903. if (this.pipeSawResult1.UltraGrid2.Rows[0].Cells["CUT_TYPE"].Text.ToString().Equals("主动切尾"))
  904. {
  905. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.SetResultCutTupe", new object[] { heatno }, this.ob);
  906. GetMatRack(heatno);
  907. }
  908. else
  909. {
  910. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.SetResultCutTupeBack", new object[] { heatno }, this.ob);
  911. GetMatRack(heatno);
  912. }
  913. }
  914. }
  915. /// <summary>
  916. /// 控件点击事件
  917. /// </summary>
  918. public void btnCUT_REV(object sender, CellEventArgs e)
  919. {
  920. MilSawResultDeatilEntity sawresultdetail = new MilSawResultDeatilEntity();
  921. UltraGridRow ugr = this.ultraGridPlan.ActiveRow;
  922. if (ugr == null)
  923. {
  924. MessageBox.Show("您未选择任何计划,请选择计划后再进行管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  925. return;
  926. }
  927. string HeatNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  928. string nodeFlag = "";
  929. DataTable dts = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  930. if (dts.Rows.Count > 0)
  931. {
  932. nodeFlag = dts.Rows[0]["NODE_FUR_FLAG"].ToString();
  933. }
  934. else
  935. {
  936. MessageBox.Show("判定炉号:【" + HeatNo + "】尚未开始定径,不允许进行管排锯操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  937. return;
  938. }
  939. sawresultdetail.JudgeStoveNo = HeatNo;
  940. sawresultdetail.LotNo = ugr.Cells["LOT_NO"].Value.ToString();
  941. //sawresultdetail.LotNo = ugr.Cells["STOVE_NO"].Value.ToString();
  942. sawresultdetail.PlineCode = PlineCode;
  943. sawresultdetail.ColGroup = this.UserInfo.GetUserGroup();
  944. sawresultdetail.ColUser = this.UserInfo.GetUserName();
  945. sawresultdetail.ColShift = this.UserInfo.GetUserOrder();
  946. sawresultdetail.ColMode = "1";
  947. sawresultdetail.Change = "0";
  948. string cellname = e.Cell.Column.Key.ToString();
  949. switch (cellname)
  950. {
  951. case "btnCUT_REV1":
  952. if (LimitCut(HeatNo) == 0 && nodeFlag.Equals("1"))
  953. {
  954. MessageBox.Show("炉号:【" + HeatNo + "】已完成分切操作,请结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  955. return;
  956. }
  957. if (this.userRoom == 1)//1# 台,1#锯
  958. {
  959. bool isinsert = this.isinsert(HeatNo, 1, 1);
  960. if (isinsert == false)
  961. {
  962. MessageBox.Show("已新增排号未切完不允许再新增排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  963. return;
  964. }
  965. //查询该炉已切实绩明细
  966. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  967. if (dtdetail.Rows.Count > 0)
  968. {
  969. for (int i = 0; i < dtdetail.Rows.Count; i++)
  970. {
  971. int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString());
  972. tempROW_NO1 = (tempROW_NO1 > s) ? tempROW_NO1 : s;
  973. }
  974. tempROW_NO1 += 1;
  975. sawresultdetail.RowNo = tempROW_NO1;//排号
  976. }
  977. else
  978. {
  979. sawresultdetail.RowNo = 1;
  980. tempROW_NO1 = 1;
  981. }
  982. sawresultdetail.SawNo = "1";//锯号
  983. sawresultdetail.SawFlag = "1";//分切标识
  984. //添加管排明细
  985. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob);
  986. if (count > 0)
  987. {
  988. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString();
  989. }
  990. }
  991. if (this.userRoom == 2)//2# 台,3#锯
  992. {
  993. bool isinsert = this.isinsert(HeatNo, 1, 3);
  994. bool isinserts = this.isinsert(HeatNo, 2, 3);
  995. if (isinsert && isinserts)//切头开始
  996. {
  997. //查询该炉已切实绩明细
  998. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  999. if (dtdetail.Rows.Count > 0)
  1000. {
  1001. for (int i = 0; i < dtdetail.Rows.Count; i++)
  1002. {
  1003. int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString());
  1004. tempROW_NO1 = (tempROW_NO1 > s) ? tempROW_NO1 : s;
  1005. }
  1006. tempROW_NO1 += 1;
  1007. sawresultdetail.RowNo = tempROW_NO1;//排号
  1008. }
  1009. else
  1010. {
  1011. sawresultdetail.RowNo = 1;
  1012. tempROW_NO1 = 1;
  1013. }
  1014. sawresultdetail.SawNoN = "3";//锯号
  1015. sawresultdetail.SawFlag = "2";//分切标识
  1016. //添加管排明细
  1017. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob);
  1018. if (count > 0)
  1019. {
  1020. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString();
  1021. }
  1022. }
  1023. else//切1# 台来料
  1024. {
  1025. //查询符合条件的值
  1026. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  1027. if (dtdetail.Rows.Count > 0)
  1028. {
  1029. foreach (DataRow dr in dtdetail.Rows)
  1030. {
  1031. if (dr["SAW_FLAG"].ToString() != "3" && dr["SAW_NO_N"].ToString() == "3")
  1032. {
  1033. sawresultdetail.RowNo = dr["ROW_NO"].ToString();
  1034. sawresultdetail.SawNo = dr["SAW_NO"].ToString();
  1035. sawresultdetail.RowCount = dr["ROW_COUNT"].ToString();
  1036. sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString();
  1037. }
  1038. }
  1039. }
  1040. tempROW_NO1 = Int16.Parse(sawresultdetail.RowNo.ToString());
  1041. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1042. sawresultdetail.SawNoN = "3";
  1043. sawresultdetail.SawFlag = "1";
  1044. sawresultdetail.Change = "1";
  1045. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO1"] = tempROW_NO1.ToString();
  1046. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"] = sawresultdetail.RowCount;
  1047. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"] = sawresultdetail.CutHeadLength;
  1048. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"] = sawresultdetail.OrderLength;
  1049. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"] = sawresultdetail.CutTrailLength;
  1050. //跟更新明细
  1051. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1052. }
  1053. }
  1054. break;
  1055. case "btnCUT_REV2":
  1056. if (LimitCut(HeatNo) == 0 && nodeFlag.Equals("1"))
  1057. {
  1058. MessageBox.Show("上一道工序已完成且没有可进行管排锯操作的母管", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1059. return;
  1060. }
  1061. if (this.userRoom == 1)//1#台,2#锯
  1062. {
  1063. bool isinserts = this.isinsert(HeatNo, 1, 2);
  1064. if (isinserts == false)
  1065. {
  1066. MessageBox.Show("已新增排号未切完不允许再新增排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1067. return;
  1068. }
  1069. //查询该炉已切实绩明细
  1070. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  1071. if (dtdetail.Rows.Count > 0)
  1072. {
  1073. for (int i = 0; i < dtdetail.Rows.Count; i++)
  1074. {
  1075. int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString());
  1076. tempROW_NO2 = (tempROW_NO2 > s) ? tempROW_NO2 : s;
  1077. }
  1078. tempROW_NO2 += 1;
  1079. sawresultdetail.RowNo = tempROW_NO2;//排号
  1080. }
  1081. else
  1082. {
  1083. sawresultdetail.RowNo = 1;
  1084. tempROW_NO2 = 1;
  1085. }
  1086. sawresultdetail.SawNo = "2";//锯号
  1087. sawresultdetail.SawFlag = "1";//分切标识
  1088. //添加管排明细
  1089. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob);
  1090. if (count > 0)
  1091. {
  1092. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString();
  1093. }
  1094. }
  1095. if (this.userRoom == 2)//2#台,4#锯
  1096. {
  1097. bool isinsert = this.isinsert(HeatNo, 1, 4);
  1098. bool isinserts = this.isinsert(HeatNo, 2, 4);
  1099. if (isinsert && isinserts)//切头开始
  1100. {
  1101. //查询该炉已切实绩明细
  1102. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  1103. if (dtdetail.Rows.Count > 0)
  1104. {
  1105. for (int i = 0; i < dtdetail.Rows.Count; i++)
  1106. {
  1107. int s = Int16.Parse(dtdetail.Rows[i]["ROW_NO"].ToString());
  1108. tempROW_NO2 = (tempROW_NO2 > s) ? tempROW_NO2 : s;
  1109. }
  1110. tempROW_NO2 += 1;
  1111. sawresultdetail.RowNo = tempROW_NO2;//排号
  1112. }
  1113. else
  1114. {
  1115. sawresultdetail.RowNo = 1;
  1116. tempROW_NO2 = 1;
  1117. }
  1118. sawresultdetail.SawNoN = "4";//锯号
  1119. sawresultdetail.SawFlag = "2";//分切标识
  1120. //添加管排明细
  1121. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.AddResultDetail", new object[] { sawresultdetail }, this.ob);
  1122. if (count > 0)
  1123. {
  1124. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString();
  1125. }
  1126. }
  1127. else//切1#/2# 台来料
  1128. {
  1129. //查询符合条件的值
  1130. DataTable dtdetail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { HeatNo, proPlanId, gxPlanNo }, this.ob);
  1131. if (dtdetail.Rows.Count > 0)
  1132. {
  1133. foreach (DataRow dr in dtdetail.Rows)
  1134. {
  1135. if (dr["SAW_FLAG"].ToString() != "3" && dr["SAW_NO_N"].ToString() == "4")
  1136. {
  1137. sawresultdetail.RowNo = dr["ROW_NO"].ToString();
  1138. sawresultdetail.SawNo = dr["SAW_NO"].ToString();
  1139. sawresultdetail.RowCount = dr["ROW_COUNT"].ToString();
  1140. sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString();
  1141. }
  1142. }
  1143. }
  1144. tempROW_NO2 = Int16.Parse(sawresultdetail.RowNo.ToString());
  1145. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1146. sawresultdetail.SawNoN = "4";
  1147. sawresultdetail.SawFlag = "1";
  1148. sawresultdetail.Change = "1";
  1149. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString();
  1150. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_NO2"] = tempROW_NO2.ToString();
  1151. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"] = sawresultdetail.RowCount;
  1152. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"] = sawresultdetail.CutHeadLength;
  1153. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"] = sawresultdetail.OrderLength;
  1154. this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"] = sawresultdetail.CutTrailLength;
  1155. //跟更新明细
  1156. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1157. }
  1158. }
  1159. break;
  1160. case "SAW_NO1"://1#锯
  1161. break;
  1162. case "SAW_NO2"://2#锯
  1163. break;
  1164. case "SAW_NO_N1":
  1165. if (this.userRoom == 1)//1#锯后选择3#锯
  1166. {
  1167. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1168. sawresultdetail.SawFlag = "1";
  1169. sawresultdetail.SawNo = "1";
  1170. sawresultdetail.SawNoN = "3";
  1171. sawresultdetail.Change = "0";
  1172. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1173. }
  1174. if (this.userRoom == 2)//3#锯后选择1#锯
  1175. {
  1176. }
  1177. break;
  1178. case "SAW_NO_N12":
  1179. if (this.userRoom == 1)//1#锯后选择4#锯
  1180. {
  1181. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1182. sawresultdetail.SawFlag = "1";
  1183. sawresultdetail.SawNo = "1";
  1184. sawresultdetail.SawNoN = "4";
  1185. sawresultdetail.Change = "0";
  1186. int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1187. }
  1188. if (this.userRoom == 2)//3#锯后选择2#锯
  1189. {
  1190. }
  1191. break;
  1192. case "SAW_NO_N2"://
  1193. if (this.userRoom == 1)//2#锯后选择3#锯
  1194. {
  1195. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1196. sawresultdetail.SawFlag = "1";
  1197. sawresultdetail.SawNoN = "3";
  1198. sawresultdetail.Change = "0";
  1199. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1200. }
  1201. if (this.userRoom == 2)//4#锯后选择1#锯
  1202. {
  1203. }
  1204. break;
  1205. case "SAW_NO_N22":
  1206. if (this.userRoom == 1)//2#锯后选择3#锯
  1207. {
  1208. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1209. sawresultdetail.SawFlag = "1";
  1210. sawresultdetail.SawNoN = "3";
  1211. sawresultdetail.Change = "0";
  1212. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1213. }
  1214. if (this.userRoom == 2)//4#锯后选择1#锯
  1215. {
  1216. }
  1217. break;
  1218. case "btnCUT_HEAD1":
  1219. if (this.userRoom == 1)//1#锯切头
  1220. {
  1221. bool isoperat = isOperate(HeatNo, 1, 1);
  1222. if (!isoperat)
  1223. {
  1224. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1225. return;
  1226. }
  1227. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1228. sawresultdetail.SawFlag = "1";
  1229. sawresultdetail.SawNo = "1";
  1230. sawresultdetail.Change = "0";
  1231. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString()))
  1232. {
  1233. MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1234. return;
  1235. }
  1236. sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString();
  1237. if (sawresultdetail.PlineCode != "C012")
  1238. {
  1239. //int s = LimitCut(HeatNo);
  1240. if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString()))
  1241. {
  1242. MessageBox.Show("未输入排支数,请检查后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1243. return;
  1244. }
  1245. else
  1246. {
  1247. if (int.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) > LimitCut(HeatNo))
  1248. {
  1249. MessageBox.Show("输入排支数超过可切支数,请检查后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1250. return;
  1251. }
  1252. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString();
  1253. sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString());
  1254. }
  1255. }
  1256. sawresultdetail.RowNo = tempROW_NO1;
  1257. this.updateROW_NOtoSawRack(sawresultdetail);
  1258. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1259. //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1260. GetMatRack(HeatNo);
  1261. }
  1262. if (this.userRoom == 2)//3#锯切头
  1263. {
  1264. bool isoperat = isOperate(HeatNo, 2, 3);
  1265. if (!isoperat)
  1266. {
  1267. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1268. return;
  1269. }
  1270. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1271. sawresultdetail.SawFlag = "2";
  1272. sawresultdetail.SawNoN = "3";
  1273. sawresultdetail.Change = "0";
  1274. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString()))
  1275. {
  1276. MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1277. return;
  1278. }
  1279. sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGHT1"].ToString();
  1280. if (sawresultdetail.PlineCode != "C012")
  1281. {
  1282. if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString()))
  1283. {
  1284. MessageBox.Show("未输入排支数,请检查后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1285. return;
  1286. }
  1287. else
  1288. {
  1289. if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT1"].Value.ToString()) > LimitCut(HeatNo))
  1290. {
  1291. MessageBox.Show("输入排完支数超过可切支数,请检查后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1292. return;
  1293. }
  1294. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString();
  1295. sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString());
  1296. }
  1297. }
  1298. sawresultdetail.RowNo = tempROW_NO1;
  1299. this.updateROW_NOtoSawRack(sawresultdetail);
  1300. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1301. //MessageBox.Show("切头操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1302. GetMatRack(HeatNo);
  1303. }
  1304. break;
  1305. case "btnCUT_Length1":
  1306. if (this.userRoom == 1)//1#锯定尺
  1307. {
  1308. bool isoperat = isOperate(HeatNo, 1, 1);
  1309. if (!isoperat)
  1310. {
  1311. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1312. return;
  1313. }
  1314. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1315. sawresultdetail.SawFlag = "1";
  1316. sawresultdetail.SawNo = "1";
  1317. sawresultdetail.Change = "0";
  1318. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString()))
  1319. {
  1320. MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1321. return;
  1322. }
  1323. sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString();
  1324. sawresultdetail.RowNo = tempROW_NO1;
  1325. this.UpdateSawRack(sawresultdetail);
  1326. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1327. //MessageBox.Show("切定尺操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1328. GetMatRack(HeatNo);
  1329. }
  1330. if (this.userRoom == 2)//3#锯定尺
  1331. {
  1332. bool isoperat = isOperate(HeatNo, 2, 3);
  1333. if (!isoperat)
  1334. {
  1335. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1336. return;
  1337. }
  1338. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1339. sawresultdetail.SawFlag = "2";
  1340. sawresultdetail.SawNoN = "3";
  1341. sawresultdetail.Change = "0";
  1342. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString()))
  1343. {
  1344. MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1345. return;
  1346. }
  1347. sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH1"].ToString();
  1348. this.UpdateSawRack(sawresultdetail);
  1349. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1350. //MessageBox.Show("切定尺操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1351. GetMatRack(HeatNo);
  1352. }
  1353. break;
  1354. case "btnCUT_TRAIL1":
  1355. if (this.userRoom == 1)//1#锯切尾
  1356. {
  1357. bool isoperat = isOperate(HeatNo, 1, 1);
  1358. if (!isoperat)
  1359. {
  1360. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1361. return;
  1362. }
  1363. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1364. sawresultdetail.SawFlag = "1";
  1365. sawresultdetail.SawNo = "1";
  1366. sawresultdetail.Change = "0";
  1367. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString()))
  1368. {
  1369. MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1370. return;
  1371. }
  1372. sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString();
  1373. if (sawresultdetail.PlineCode != "C012")
  1374. {
  1375. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()))
  1376. {
  1377. MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1378. return;
  1379. }
  1380. else
  1381. {
  1382. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString();
  1383. sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString());
  1384. }
  1385. }
  1386. sawresultdetail.RowNo = tempROW_NO1;
  1387. this.UpdateSawRack(sawresultdetail);
  1388. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1389. //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1390. GetMatRack(HeatNo);
  1391. }
  1392. if (this.userRoom == 2)//3#锯切尾
  1393. {
  1394. bool isoperat = isOperate(HeatNo, 2, 3);
  1395. if (!isoperat)
  1396. {
  1397. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1398. return;
  1399. }
  1400. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1401. sawresultdetail.SawFlag = "2";
  1402. sawresultdetail.SawNoN = "3";
  1403. sawresultdetail.Change = "0";
  1404. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString()))
  1405. {
  1406. MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1407. return;
  1408. }
  1409. sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGHT1"].ToString();
  1410. if (sawresultdetail.PlineCode != "C012")
  1411. {
  1412. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()))
  1413. {
  1414. MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1415. return;
  1416. }
  1417. else
  1418. {
  1419. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString();
  1420. sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT1"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString());
  1421. }
  1422. }
  1423. sawresultdetail.RowNo = tempROW_NO1;
  1424. this.UpdateSawRack(sawresultdetail);
  1425. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1426. GetMatRack(HeatNo);
  1427. //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1428. }
  1429. break;
  1430. case "btnCUT_END1":
  1431. if (this.userRoom == 1)//1#锯
  1432. {
  1433. bool isoperat = isOperate(HeatNo, 1, 1);
  1434. if (!isoperat)
  1435. {
  1436. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1437. return;
  1438. }
  1439. }
  1440. if (this.userRoom == 2)//3#锯
  1441. {
  1442. bool isoperat = isOperate(HeatNo, 2, 3);
  1443. if (!isoperat)
  1444. {
  1445. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1446. return;
  1447. }
  1448. }
  1449. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO1);
  1450. if (this.isCut_End(sawresultdetail))
  1451. {
  1452. sawresultdetail.RowNo = tempROW_NO1;
  1453. sawresultdetail.SawFlag = "3";
  1454. sawresultdetail.Change = "0";
  1455. RowNum = int.Parse(sawresultdetail.RowCount.ToString());
  1456. if (sawresultdetail.PlineCode != "C012")
  1457. {
  1458. string colno = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["COL_NO1"].Value.ToString();
  1459. colno = colno.Substring(0, 1);
  1460. int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteRackCOL_NO", new object[] { HeatNo, colno, RowNum, SAW_NUM }, this.ob);
  1461. }
  1462. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTEND", new object[] { sawresultdetail }, this.ob);
  1463. //MessageBox.Show("管排锯操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1464. if (LimitCut(HeatNo) == 0)
  1465. {
  1466. MessageBox.Show("当前炉已完成管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1467. }
  1468. }
  1469. else
  1470. {
  1471. MessageBox.Show("还有操作未完成,不允许执行锯切完成操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1472. return;
  1473. }
  1474. break;
  1475. case "btnCUT_HEAD2":
  1476. if (this.userRoom == 1)//2#锯切头
  1477. {
  1478. bool isoperat = isOperate(HeatNo, 1, 2);
  1479. if (!isoperat)
  1480. {
  1481. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1482. return;
  1483. }
  1484. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1485. sawresultdetail.SawFlag = "1";
  1486. sawresultdetail.SawNo = "2";
  1487. sawresultdetail.Change = "0";
  1488. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString()))
  1489. {
  1490. MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1491. return;
  1492. }
  1493. sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString();
  1494. if (sawresultdetail.PlineCode != "C012")
  1495. {
  1496. if (string.IsNullOrEmpty(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString()))
  1497. {
  1498. MessageBox.Show("未输入排支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1499. return;
  1500. }
  1501. else
  1502. {
  1503. if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString()) > LimitCut(HeatNo))
  1504. {
  1505. MessageBox.Show("输入排支数大于可切支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1506. return;
  1507. }
  1508. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString();
  1509. sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString());
  1510. }
  1511. }
  1512. sawresultdetail.RowNo = tempROW_NO2;
  1513. this.updateROW_NOtoSawRack(sawresultdetail);
  1514. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1515. GetMatRack(HeatNo);
  1516. //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1517. }
  1518. if (this.userRoom == 2)//4#锯切头
  1519. {
  1520. bool isoperat = isOperate(HeatNo, 2, 4);
  1521. if (!isoperat)
  1522. {
  1523. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1524. return;
  1525. }
  1526. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1527. sawresultdetail.SawFlag = "2";
  1528. sawresultdetail.SawNoN = "4";
  1529. sawresultdetail.Change = "0";
  1530. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString()))
  1531. {
  1532. MessageBox.Show("您未输入切头长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1533. return;
  1534. }
  1535. sawresultdetail.CutHeadLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_HEAD_LENGTH2"].ToString();
  1536. if (sawresultdetail.PlineCode != "C012")
  1537. {
  1538. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()))
  1539. {
  1540. MessageBox.Show("未输入排支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1541. return;
  1542. }
  1543. else
  1544. {
  1545. if (int.Parse(this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_COUNT2"].Value.ToString()) > LimitCut(HeatNo))
  1546. {
  1547. MessageBox.Show("输入排支数大于可切支数,请检验后重新输入。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1548. return;
  1549. }
  1550. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString();
  1551. sawresultdetail.CutHeadLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutHeadLength.ToString());
  1552. }
  1553. }
  1554. sawresultdetail.RowNo = tempROW_NO2;
  1555. this.updateROW_NOtoSawRack(sawresultdetail);
  1556. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1557. GetMatRack(HeatNo);
  1558. //MessageBox.Show("切头操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1559. }
  1560. break;
  1561. case "btnCUT_Length2":
  1562. if (this.userRoom == 1)//2#锯定尺
  1563. {
  1564. bool isoperat = isOperate(HeatNo, 1, 2);
  1565. if (!isoperat)
  1566. {
  1567. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1568. return;
  1569. }
  1570. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1571. sawresultdetail.SawFlag = "1";
  1572. sawresultdetail.SawNo = "2";
  1573. sawresultdetail.Change = "0";
  1574. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString()))
  1575. {
  1576. MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1577. return;
  1578. }
  1579. sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString();
  1580. sawresultdetail.RowNo = tempROW_NO2;
  1581. this.UpdateSawRack(sawresultdetail);
  1582. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1583. //MessageBox.Show("切定尺操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1584. GetMatRack(HeatNo);
  1585. }
  1586. if (this.userRoom == 2)//4#锯定尺
  1587. {
  1588. bool isoperat = isOperate(HeatNo, 2, 4);
  1589. if (!isoperat)
  1590. {
  1591. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1592. return;
  1593. }
  1594. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1595. sawresultdetail.SawFlag = "2";
  1596. sawresultdetail.SawNoN = "4";
  1597. sawresultdetail.Change = "0";
  1598. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString()))
  1599. {
  1600. MessageBox.Show("您未输入定尺长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1601. return;
  1602. }
  1603. sawresultdetail.OrderLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ORDER_LENGTH2"].ToString();
  1604. sawresultdetail.RowNo = tempROW_NO2;
  1605. this.UpdateSawRack(sawresultdetail);
  1606. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1607. //MessageBox.Show("切定尺操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1608. GetMatRack(HeatNo);
  1609. }
  1610. break;
  1611. case "btnCUT_TRAIL2":
  1612. if (this.userRoom == 1)//2#锯切尾
  1613. {
  1614. bool isoperat = isOperate(HeatNo, 1, 2);
  1615. if (!isoperat)
  1616. {
  1617. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1618. return;
  1619. }
  1620. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1621. sawresultdetail.SawFlag = "1";
  1622. sawresultdetail.SawNo = "2";
  1623. sawresultdetail.Change = "0";
  1624. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString()))
  1625. {
  1626. MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1627. return;
  1628. }
  1629. sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString();
  1630. if (sawresultdetail.PlineCode != "C012")
  1631. {
  1632. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()))
  1633. {
  1634. MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1635. return;
  1636. }
  1637. else
  1638. {
  1639. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString();
  1640. sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString());
  1641. }
  1642. }
  1643. sawresultdetail.RowNo = tempROW_NO2;
  1644. this.UpdateSawRack(sawresultdetail);
  1645. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1646. //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1647. GetMatRack(HeatNo);
  1648. }
  1649. if (this.userRoom == 2)//4#锯切尾
  1650. {
  1651. bool isoperat = isOperate(HeatNo, 2, 4);
  1652. if (!isoperat)
  1653. {
  1654. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1655. return;
  1656. }
  1657. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1658. sawresultdetail.SawFlag = "2";
  1659. sawresultdetail.SawNoN = "4";
  1660. sawresultdetail.Change = "0";
  1661. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString()))
  1662. {
  1663. MessageBox.Show("您未输入切尾长度或输入的格式不正确", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1664. return;
  1665. }
  1666. sawresultdetail.CutTrailLength = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["CUT_TRAIL_LENGTH2"].ToString();
  1667. if (sawresultdetail.PlineCode != "C012")
  1668. {
  1669. if (string.IsNullOrEmpty(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()))
  1670. {
  1671. MessageBox.Show("请先输入排支数,再进行管排锯切头操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1672. return;
  1673. }
  1674. else
  1675. {
  1676. sawresultdetail.RowCount = this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString();
  1677. sawresultdetail.CutTrailLengthTotal = Int16.Parse(this.pipeSawResult1.PipeSawDataSource1.Rows[0]["ROW_COUNT2"].ToString()) * double.Parse(sawresultdetail.CutTrailLength.ToString());
  1678. }
  1679. }
  1680. sawresultdetail.RowNo = tempROW_NO2;
  1681. this.UpdateSawRack(sawresultdetail);
  1682. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetail", new object[] { sawresultdetail }, this.ob);
  1683. //MessageBox.Show("切尾操作完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1684. GetMatRack(HeatNo);
  1685. }
  1686. break;
  1687. case "btnCUT_END2":
  1688. if (this.userRoom == 1)//2#锯
  1689. {
  1690. bool isoperat = isOperate(HeatNo, 1, 2);
  1691. if (!isoperat)
  1692. {
  1693. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1694. return;
  1695. }
  1696. }
  1697. if (this.userRoom == 2)//4#锯
  1698. {
  1699. bool isoperat = isOperate(HeatNo, 2, 4);
  1700. if (!isoperat)
  1701. {
  1702. MessageBox.Show("已由其它锯操作该排,不允许当前锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1703. return;
  1704. }
  1705. }
  1706. sawresultdetail = this.changeENtity(sawresultdetail, HeatNo, tempROW_NO2);
  1707. if (this.isCut_End(sawresultdetail))
  1708. {
  1709. sawresultdetail.RowNo = tempROW_NO2;
  1710. sawresultdetail.SawFlag = "3";
  1711. sawresultdetail.Change = "0";
  1712. RowNum = int.Parse(sawresultdetail.RowCount.ToString());
  1713. if (sawresultdetail.PlineCode != "C012")
  1714. {
  1715. string colno = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["COL_NO2"].Value.ToString();
  1716. colno = colno.Substring(0, 1);
  1717. int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteRackCOL_NO", new object[] { HeatNo, colno, RowNum, SAW_NUM }, this.ob);
  1718. }
  1719. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTEND", new object[] { sawresultdetail }, this.ob);
  1720. //MessageBox.Show("管排锯操作完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1721. if (LimitCut(HeatNo) == 0)
  1722. {
  1723. MessageBox.Show("当前炉已完成管排锯操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1724. }
  1725. }
  1726. else
  1727. {
  1728. MessageBox.Show("还有操作未完成,不允许执行锯切完成操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1729. return;
  1730. }
  1731. break;
  1732. case "btnCUT_BACK1":
  1733. if (isback(HeatNo, tempROW_NO1))
  1734. {
  1735. int count3 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTBACK", new object[] { tempROW_NO1, HeatNo }, this.ob);
  1736. tempROW_NO1 = tempROW_NO1 - 1;
  1737. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_NO1"].Value = "";
  1738. }
  1739. else
  1740. {
  1741. MessageBox.Show("已进行管排锯操作或无该条记录,不能回退。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1742. }
  1743. break;
  1744. case "btnCUT_BACK2":
  1745. if (isback(HeatNo, tempROW_NO2))
  1746. {
  1747. int count4 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdteResultDetailCUTBACK", new object[] { tempROW_NO2, HeatNo }, this.ob);
  1748. tempROW_NO2 = tempROW_NO2 - 1;
  1749. this.pipeSawResult1.UltraGrid2.Rows[0].Cells["ROW_NO2"].Value = "";
  1750. }
  1751. else
  1752. {
  1753. MessageBox.Show("已进行管排锯操作或无该条记录,不能回退。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1754. }
  1755. break;
  1756. }
  1757. }
  1758. /// <summary>
  1759. /// 是否插入记录//true插入,false不插入
  1760. /// </summary>
  1761. /// <param name="Heatno">判定炉号</param>
  1762. /// <param name="Sawflag">分切标识</param>
  1763. ///
  1764. /// <returns></returns>
  1765. public bool isinsert(string Heatno, int Sawflag, int Sawno)
  1766. {
  1767. bool result = true;//true插入,false不插入
  1768. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob);
  1769. if (dt.Rows.Count > 0)
  1770. {
  1771. foreach (DataRow dr in dt.Rows)
  1772. {
  1773. int temp = Int16.Parse(dr["SAW_FLAG"].ToString());
  1774. int temp1 = 0;
  1775. if (!string.IsNullOrEmpty(dr["SAW_NO"].ToString()))
  1776. {
  1777. temp1 = Int16.Parse(dr["SAW_NO"].ToString());
  1778. }
  1779. int temp2 = 0;
  1780. if (!string.IsNullOrEmpty(dr["SAW_NO_N"].ToString()))
  1781. {
  1782. temp2 = Int16.Parse(dr["SAW_NO_N"].ToString());
  1783. }
  1784. if (temp == Sawflag)
  1785. {
  1786. if (temp1 == Sawno || temp2 == Sawno)
  1787. {
  1788. result = false;
  1789. }
  1790. }
  1791. }
  1792. }
  1793. return result;
  1794. }
  1795. public bool isOperate(string Heatno, int Sawflag, int Sawno)
  1796. {
  1797. bool result = false;//true插入,false不插入
  1798. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob);
  1799. if (dt.Rows.Count > 0)
  1800. {
  1801. foreach (DataRow dr in dt.Rows)
  1802. {
  1803. int temp = Int16.Parse(dr["SAW_FLAG"].ToString());
  1804. int temp1 = 0;
  1805. if (!string.IsNullOrEmpty(dr["SAW_NO"].ToString()))
  1806. {
  1807. temp1 = Int16.Parse(dr["SAW_NO"].ToString());
  1808. }
  1809. int temp2 = 0;
  1810. if (!string.IsNullOrEmpty(dr["SAW_NO_N"].ToString()))
  1811. {
  1812. temp2 = Int16.Parse(dr["SAW_NO_N"].ToString());
  1813. }
  1814. if (temp == Sawflag)
  1815. {
  1816. if (temp1 == Sawno || temp2 == Sawno)
  1817. {
  1818. result = true;
  1819. }
  1820. }
  1821. }
  1822. }
  1823. return result;
  1824. }
  1825. /// <summary>
  1826. /// 能否回退
  1827. /// </summary>
  1828. /// <param name="Heatno"></param>
  1829. /// <returns></returns>
  1830. private bool isback(string Heatno, int tempno)
  1831. {
  1832. bool result = false;
  1833. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { Heatno, proPlanId, gxPlanNo }, this.ob);
  1834. if (dt.Rows.Count > 0)
  1835. {
  1836. foreach (DataRow dr in dt.Rows)
  1837. {
  1838. if (!string.IsNullOrEmpty(dr["ROW_NO"].ToString()))
  1839. {
  1840. if (int.Parse(dr["ROW_NO"].ToString()) == tempno)
  1841. {
  1842. if (string.IsNullOrEmpty(dr["ROW_COUNT"].ToString()) && string.IsNullOrEmpty(dr["ORDER_LENGTH"].ToString()) && string.IsNullOrEmpty(dr["CUT_HEAD_LENGTH"].ToString()) && string.IsNullOrEmpty(dr["CUT_TRAIL_LENGTH"].ToString()))
  1843. {
  1844. result = true;
  1845. }
  1846. }
  1847. }
  1848. }
  1849. }
  1850. return result;
  1851. }
  1852. /// <summary>
  1853. /// 查询当前符合条件的值,赋值给类,以更新
  1854. /// </summary>
  1855. /// <param name="sawresultdetail"></param>
  1856. /// <param name="heatno"></param>
  1857. /// <param name="sawflag"></param>
  1858. /// <param name="tempROW_NO"></param>
  1859. /// <returns></returns>
  1860. public MilSawResultDeatilEntity changeENtity(MilSawResultDeatilEntity sawresultdetail, string heatno, int tempROW_NO)
  1861. {
  1862. DataTable dtdetail1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { heatno, proPlanId, gxPlanNo }, this.ob);
  1863. if (dtdetail1.Rows.Count > 0)
  1864. {
  1865. foreach (DataRow dr in dtdetail1.Rows)
  1866. {
  1867. if (dr["ROW_NO"].ToString() == tempROW_NO.ToString())
  1868. {
  1869. sawresultdetail.SawNo = dr["SAW_NO"].ToString();
  1870. sawresultdetail.SawNoN = dr["SAW_NO_N"].ToString();
  1871. sawresultdetail.RowCount = dr["ROW_COUNT"].ToString();
  1872. sawresultdetail.OrderLength = dr["ORDER_LENGTH"].ToString();
  1873. sawresultdetail.CutHeadLength = dr["CUT_HEAD_LENGTH"].ToString();
  1874. sawresultdetail.CutTrailLength = dr["CUT_TRAIL_LENGTH"].ToString();
  1875. sawresultdetail.CutHeadLengthTotal = dr["CUT_HEAD_LENGTH_TOTAL"].ToString();
  1876. sawresultdetail.CutTrailLengthTotal = dr["CUT_TRAIL_LENGTH_TOTAL"].ToString();
  1877. }
  1878. }
  1879. }
  1880. return sawresultdetail;
  1881. }
  1882. /// <summary>
  1883. /// 获取当前可切最大支数
  1884. /// </summary>
  1885. /// <param name="heatno"></param>
  1886. /// <returns></returns>
  1887. public int LimitCut(string heatno)
  1888. {
  1889. string nodeFlag = "";
  1890. int result = 0;
  1891. //查询定径结炉是否完成
  1892. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { heatno, proPlanId, gxPlanNo }, this.ob);
  1893. if (!string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString()))
  1894. {
  1895. nodeFlag = dt.Rows[0]["NODE_FUR_FLAG"].ToString();
  1896. DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.LimitCut", new object[] { heatno, nodeFlag }, this.ob);
  1897. if (nodeFlag == "1")//已结炉
  1898. {
  1899. result = int.Parse(dt1.Rows[0]["Counts"].ToString());
  1900. }
  1901. if (nodeFlag == "0")
  1902. {
  1903. CoreClientParam ccp = new CoreClientParam();
  1904. ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult";
  1905. ccp.MethodName = "scrapMatCheck";
  1906. ccp.ServerParams = new Object[] { heatno, 7, proPlanId, gxPlanNo };
  1907. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1908. int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo);
  1909. int temp = int.Parse(dt1.Rows[0]["Counts"].ToString());
  1910. result = temp - ScrapNumBefore;
  1911. }
  1912. }
  1913. return result;
  1914. }
  1915. /// <summary>
  1916. /// 判断能否锯切完成
  1917. /// </summary>
  1918. /// <param name="heatno"></param>
  1919. /// <param name="tempROW_NO"></param>
  1920. /// <returns></returns>
  1921. public bool isCut_End(MilSawResultDeatilEntity sawresultdetail)
  1922. {
  1923. bool iscutend = false;
  1924. if (sawresultdetail.CutTrailLength.ToString() != "" && sawresultdetail.CutHeadLength.ToString() != "" && sawresultdetail.OrderLength.ToString() != "")
  1925. {
  1926. iscutend = true;
  1927. }
  1928. return iscutend;
  1929. }
  1930. /// <summary>
  1931. /// 更新跟踪记录表排号
  1932. /// </summary>
  1933. /// <param name="RowNo">排号</param>
  1934. /// <param name="heatno">判定炉号</param>
  1935. public void updateROW_NOtoSawRack(MilSawResultDeatilEntity MILSAWRACK)
  1936. {
  1937. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawRack", new object[] { MILSAWRACK }, this.ob);
  1938. if (dt.Rows.Count > 0)
  1939. {
  1940. foreach (DataRow dr in dt.Rows)
  1941. {
  1942. if (!string.IsNullOrEmpty(dr["ROW_NO"].ToString()))
  1943. {
  1944. if (dr["ROW_NO"].ToString() == MILSAWRACK.RowNo.ToString())
  1945. {
  1946. //MessageBox.Show("已完成切头操作,不允许重复执行", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1947. return;
  1948. }
  1949. }
  1950. }
  1951. }
  1952. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawRackRowNo", new object[] { MILSAWRACK }, this.ob);
  1953. }
  1954. /// <summary>
  1955. /// 更新跟踪记录表
  1956. /// </summary>
  1957. /// <param name="MILSAWRACK"></param>
  1958. public void UpdateSawRack(MilSawResultDeatilEntity MILSAWRACK)
  1959. {
  1960. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawRack", new object[] { MILSAWRACK }, this.ob);
  1961. }
  1962. /// <summary>
  1963. /// 切头确认
  1964. /// </summary>
  1965. /// <param name="SawNo 锯片号:1-1号锯 2-2号锯 3-3号锯 4-4号锯 "></param>
  1966. public void RowResultAdd(int SawNo)
  1967. {
  1968. MilSawResultDeatilEntity MilSawResultDeatilAdd = new MilSawResultDeatilEntity();
  1969. MilSawRackEntity MilSawRackSave = new MilSawRackEntity();
  1970. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  1971. UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0];
  1972. pipeSawResult1.UltraGrid2.UpdateData();
  1973. if (ugr != null)
  1974. {
  1975. MilSawResultDeatilAdd.JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  1976. MilSawResultDeatilAdd.LotNo = ugr.Cells["LOT_NO"].Value.ToString();
  1977. MilSawResultDeatilAdd.PlineCode = "";
  1978. if (SawNo == 1)
  1979. {
  1980. //排号
  1981. MilSawResultDeatilAdd.RowNo = ugr1.Cells["ROW_NO1"].ToString();
  1982. //锯号1
  1983. MilSawResultDeatilAdd.SawNo = ugr1.Cells["SAW_NO11"].ToString();
  1984. //锯号2
  1985. MilSawResultDeatilAdd.SawNoN = ugr1.Cells["SAW_NO12"].ToString();
  1986. //排支数
  1987. MilSawResultDeatilAdd.RowCount = ugr1.Cells["ROW_COUNT1"].ToString();
  1988. //切头长度
  1989. MilSawResultDeatilAdd.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString();
  1990. }
  1991. else
  1992. {
  1993. //排号
  1994. MilSawResultDeatilAdd.RowNo = ugr1.Cells["ROW_NO2"].ToString();
  1995. //锯号1
  1996. MilSawResultDeatilAdd.SawNo = ugr1.Cells["SAW_NO21"].ToString();
  1997. //锯号2
  1998. MilSawResultDeatilAdd.SawNoN = ugr1.Cells["SAW_NO22"].ToString();
  1999. //排支数
  2000. MilSawResultDeatilAdd.RowCount = ugr1.Cells["ROW_COUNT2"].ToString();
  2001. //切头长度
  2002. MilSawResultDeatilAdd.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString();
  2003. }
  2004. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.addRowResult", new object[] { MilSawResultDeatilAdd }, this.ob);
  2005. //确认管号队列对应管的排号
  2006. //排号
  2007. MilSawRackSave.RowNo = MilSawResultDeatilAdd.RowNo;
  2008. //锯号1
  2009. MilSawRackSave.SawNo = MilSawResultDeatilAdd.SawNo;
  2010. //锯号2
  2011. MilSawRackSave.SawNo = MilSawResultDeatilAdd.SawNoN;
  2012. //切头长度
  2013. MilSawRackSave.CutHeadLength = MilSawResultDeatilAdd.CutHeadLength;
  2014. MilSawRackSave.JudgeStoveNo = MilSawResultDeatilAdd.JudgeStoveNo;
  2015. //支数
  2016. int RowCount = int.Parse(MilSawResultDeatilAdd.RowCount.ToString());
  2017. int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateMatRowNo", new object[] { MilSawResultDeatilAdd, RowCount, MilSawResultDeatilAdd.JudgeStoveNo }, this.ob);
  2018. }
  2019. }
  2020. /// <summary>
  2021. /// 剔除操作
  2022. /// </summary>
  2023. /// <param name="sender"></param>
  2024. /// <param name="e"></param>
  2025. private void ultraGridMatSeq_ClickCellButton(object sender, CellEventArgs e)
  2026. {
  2027. MilSawRackEntity sawrack = new MilSawRackEntity();
  2028. MilSlabScrapSeqEntity ScrapSlab = new MilSlabScrapSeqEntity();
  2029. UltraGridRow ugr = ultraGridMatSeq.ActiveRow;
  2030. UltraGridRow ugr1 = ultraGridPlan.ActiveRow;
  2031. if (ugr == null || ugr1 == null)
  2032. {
  2033. MessageBox.Show("您未选择计划或管子,不允许操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2034. return;
  2035. }
  2036. //查看结炉标识
  2037. string JudgeStoveNo1 = ugr1.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2038. string PlanStatuss = ugr1.Cells["IS_START"].Value.ToString();
  2039. string ROW_NO = ugr.Cells["ROW_NO"].Value.ToString();//排号
  2040. string CUT_HEAD_LENGTH = ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString();//切头长度
  2041. string CUT_TRAIL_LENGTH = ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString();//切尾长度
  2042. int DBNUM = int.Parse(pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_MUMP"].Value.ToString());
  2043. Shift = UserInfo.GetUserOrder();
  2044. Group = UserInfo.GetUserGroup();
  2045. DataTable dtFlag = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.GetSingleJRLResult", new object[] { JudgeStoveNo1, proPlanId, gxPlanNo }, this.ob);
  2046. if (dtFlag.Rows.Count > 0)
  2047. {
  2048. if (string.IsNullOrEmpty(dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString()))
  2049. {
  2050. MessageBox.Show("炉号【" + JudgeStoveNo1 + "】未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2051. return;
  2052. }
  2053. if (dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString() == "1")
  2054. {
  2055. MessageBox.Show("炉号【" + JudgeStoveNo1 + "】已结炉,不允许操作管排锯", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2056. return;
  2057. }
  2058. }
  2059. if (PlanStatuss != "已开始分切")
  2060. {
  2061. MessageBox.Show("炉号【" + JudgeStoveNo1 + "】不是已开始分切,不允许修改管号队列。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2062. return;
  2063. }
  2064. int Scrapcount = 0;
  2065. int ScrapDBcount = 0;
  2066. if (ugr != null)
  2067. {
  2068. string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2069. int Seq = int.Parse(ugr.Cells["SEQ"].Value.ToString());
  2070. string MAT_NO = ugr.Cells["MAT_NO"].Value.ToString();
  2071. string PlanStatus = ugr1.Cells["IS_START"].Value.ToString();
  2072. string MatStatus = ugr.Cells["STATUS"].Value.ToString();
  2073. string shif = ugr.Cells["COL_SHIFT"].Value.ToString();
  2074. string group = ugr.Cells["COL_GROUP"].Value.ToString();
  2075. NativeMethodNew nasssss = new NativeMethodNew(this.ob);
  2076. if (nasssss.IsRackOperate(shif, group))
  2077. {
  2078. MessageBox.Show("序号:【" + Seq + "】母管已由" + shif + "," + group + "操作,不允许再进行操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2079. return;
  2080. }
  2081. if (e.Cell.Column.Key == "SCRAP")//切前剔
  2082. {
  2083. if (MatStatus == "切前剔除" || MatStatus == "切后剔除")
  2084. {
  2085. MessageBox.Show("序号:【" + Seq + "】母管已经进行过剔除操作,不允许再次剔除!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2086. return;
  2087. }
  2088. //if (MessageUtil.ShowYesNoAndQuestion("是否剔除该坯料") == DialogResult.No)
  2089. //{
  2090. // return;
  2091. //}
  2092. DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.FurResult.selectPortBacthSlample", new object[] { MAT_NO }, ob);
  2093. if (ds.Rows.Count > 0)
  2094. {
  2095. if (MessageUtil.ShowYesNoAndQuestion("此管坯已有被取为样管,是否继续剔除?") == DialogResult.No)
  2096. {
  2097. return;
  2098. }
  2099. }
  2100. if (!string.IsNullOrEmpty(ROW_NO) || !string.IsNullOrEmpty(CUT_HEAD_LENGTH))
  2101. {
  2102. MessageBox.Show("序号为【" + Seq + "】的管号已开始切头,不允许切前剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2103. return;
  2104. }
  2105. ScrapSlab.JudgeStoveNo = JudgeStoveNo;
  2106. ScrapSlab.Seq = Seq;
  2107. ScrapSlab.ProcessNo = "7";
  2108. ScrapSlab.Status = "3";
  2109. ScrapSlab.Flag = "0";
  2110. ScrapSlab.ColMode = "1";
  2111. ScrapSlab.MatNo = MAT_NO;
  2112. ScrapSlab.ColUser = UserInfo.GetUserName();
  2113. ScrapSlab.ColGroup = UserInfo.GetUserGroup();
  2114. ScrapSlab.ColShift = UserInfo.GetUserOrder();
  2115. ScrapSlab.ProPlanId = proPlanId;
  2116. ScrapSlab.GxPlanNo = gxPlanNo;
  2117. //剔管操作,:1、插入MIL_SLAB_SCRAP_SEQ表,2、管排锯跟踪记录表状态,3、修改加管排锯实绩表剔除支数
  2118. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMat", new Object[] { ScrapSlab }, this.ob);
  2119. if (count > 0)
  2120. {
  2121. //MessageBox.Show("母管序号【" + Seq + "】剔除成功!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2122. }
  2123. else
  2124. {
  2125. MessageBox.Show("母管序号【" + Seq + "】剔除失败!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2126. }
  2127. }
  2128. if (e.Cell.Column.Key == "SCRAP_DB")//切后剔
  2129. {
  2130. int counts = 0;
  2131. if (MatStatus == "切前剔除" || MatStatus == "切后剔除")
  2132. {
  2133. MessageBox.Show("序号:【" + Seq + "】母管已经进行过剔除操作,不允许再次剔除!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2134. return;
  2135. }
  2136. //if (MessageUtil.ShowYesNoAndQuestion("是否剔除该坯料") == DialogResult.No)
  2137. //{
  2138. // return;
  2139. //}
  2140. DataTable ds = ServerHelper.GetData("com.steering.mes.zgmil.coup.FurResult.selectPortBacthSlample", new object[] { MAT_NO }, ob);
  2141. if (ds.Rows.Count > 0)
  2142. {
  2143. if (MessageUtil.ShowYesNoAndQuestion("此管坯已有被取为样管,是否继续剔除?") == DialogResult.No)
  2144. {
  2145. return;
  2146. }
  2147. }
  2148. //查询前几道工序累计剔除多少半成品管(管坯等进行换算)
  2149. CoreClientParam ccp = new CoreClientParam();
  2150. ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult";
  2151. ccp.MethodName = "scrapMatCheck";
  2152. ccp.ServerParams = new Object[] { JudgeStoveNo, 8, proPlanId, gxPlanNo };
  2153. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2154. int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo);
  2155. if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq)
  2156. {
  2157. MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2158. return;
  2159. }
  2160. if (string.IsNullOrEmpty(ROW_NO) || string.IsNullOrEmpty(CUT_TRAIL_LENGTH))
  2161. {
  2162. MessageBox.Show("序号为【" + Seq + "】的管号未开始切尾,不允许切后剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2163. return;
  2164. }
  2165. if (!String.IsNullOrEmpty(ugr.Cells["SCRAP_DBNUM"].Value.ToString()))
  2166. {
  2167. ScrapSlab.ScrapDbnum = ugr.Cells["SCRAP_DBNUM"].Value.ToString();
  2168. if (int.Parse(ScrapSlab.ScrapDbnum.ToString()) > SAW_NUM)
  2169. {
  2170. MessageBox.Show("输入或选择的切后剔除支数违规,不允许进行切后剔除操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2171. return;
  2172. }
  2173. }
  2174. else
  2175. {
  2176. MessageBox.Show("请输入需要剔除的支数后在进行切后剔除操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2177. return;
  2178. }
  2179. if (string.IsNullOrEmpty(ugr.Cells["SCRAP_REASON"].Value.ToString()))
  2180. {
  2181. MessageBox.Show("您未输入或选择剔除原因,请重新输入后再进行剔除操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2182. return;
  2183. }
  2184. if (GetLength(ugr.Cells["SCRAP_REASON"].Value.ToString()) > 100)
  2185. {
  2186. MessageUtil.ShowTips("您输入的剔除原因字节过长,请重新输入!");
  2187. return;
  2188. }
  2189. for (int i = 0; i < int.Parse(ScrapSlab.ScrapDbnum.ToString()); i++)
  2190. {
  2191. ScrapSlab.JudgeStoveNo = JudgeStoveNo;
  2192. ScrapSlab.Seq = ((Seq - 1) * DBNUM + i + 1).ToString();
  2193. ScrapSlab.ProcessNo = "8";
  2194. ScrapSlab.Status = "4";
  2195. ScrapSlab.Flag = "0";
  2196. ScrapSlab.ColMode = "1";
  2197. ScrapSlab.MatNo = MAT_NO;
  2198. ScrapSlab.ColUser = UserInfo.GetUserName();
  2199. ScrapSlab.ColGroup = UserInfo.GetUserGroup();
  2200. ScrapSlab.ColShift = UserInfo.GetUserOrder();
  2201. ScrapSlab.ColNo = ugr.Cells["COL_NO"].Value.ToString();//排号
  2202. ScrapSlab.GxPlanNo = gxPlanNo;
  2203. ScrapSlab.ProPlanId = proPlanId;
  2204. //SCRAP_DBNUM//切后剔支数
  2205. //1、插入MIL_SLAB_SCRAP_SEQ表
  2206. counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMatDBSEQ", new Object[] { ScrapSlab }, this.ob);
  2207. }
  2208. string reason = ugr.Cells["SCRAP_REASON"].Value.ToString();
  2209. ScrapSlab.ScrapReason = reason;
  2210. ScrapSlab.Seq = Seq;
  2211. //剔管操作,:2、管排锯跟踪记录表状态,设置切后剔除的值,3、修改加管排锯实绩表剔除支数
  2212. counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.scrapInspectionMatDB", new Object[] { ScrapSlab }, this.ob);
  2213. if (counts > 0)
  2214. {
  2215. //MessageBox.Show("母管序号【" + Seq + "】切后剔除【" + ugr.Cells["SCRAP_DBNUM"].Value.ToString() + "】支子管成功!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2216. }
  2217. else
  2218. {
  2219. MessageBox.Show("母管序号【" + Seq + "】切后剔除【" + ugr.Cells["SCRAP_DBNUM"].Value.ToString() + "】支子管失败!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2220. }
  2221. }
  2222. if (e.Cell.Column.Key == "DELBACK")
  2223. {
  2224. //if (MessageUtil.ShowYesNoAndQuestion("是否回退该剔除的坯料") == DialogResult.No)
  2225. //{
  2226. // return;
  2227. //}
  2228. if (!MatStatus.Contains("剔除"))
  2229. {
  2230. MessageBox.Show("该坯料未被剔除,请确认后重新选择!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2231. return;
  2232. }
  2233. NativeMethodNew na = new NativeMethodNew(this.ob);
  2234. if (MatStatus.Equals("切前剔除"))
  2235. {
  2236. int counts = na.DeleteSlabSeq(JudgeStoveNo, Seq.ToString(), 7, 1, 0, proPlanId, gxPlanNo);
  2237. if (counts > 0)
  2238. {
  2239. //MessageBox.Show("剔料回退成功", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2240. }
  2241. else
  2242. {
  2243. MessageBox.Show("剔料回退失败", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2244. return;
  2245. }
  2246. }
  2247. if (MatStatus.Equals("切后剔除"))
  2248. {
  2249. int num = 0;
  2250. if (!string.IsNullOrEmpty(ultraGridMatSeq.ActiveRow.Cells["SCRAP_DBNUM"].Value.ToString()))
  2251. {
  2252. num = int.Parse(ultraGridMatSeq.ActiveRow.Cells["SCRAP_DBNUM"].Value.ToString());
  2253. }
  2254. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetRackScrpNum", new object[] { JudgeStoveNo, Seq.ToString(), proPlanId, gxPlanNo }, this.ob);
  2255. if (dt.Rows.Count > 0)
  2256. {
  2257. num = int.Parse(dt.Rows[0]["SCRAP_DBNUM"].ToString());
  2258. }
  2259. int counts = na.DeleteSlabSeq(JudgeStoveNo, Seq.ToString(), 8, num, DBNUM, proPlanId, gxPlanNo);
  2260. if (counts > 0)
  2261. {
  2262. //MessageBox.Show("剔料回退成功", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2263. }
  2264. else
  2265. {
  2266. MessageBox.Show("剔料回退失败", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2267. return;
  2268. }
  2269. }
  2270. }
  2271. if (e.Cell.Column.Key == "RowNoChang")//排号修改
  2272. {
  2273. }
  2274. #region 原来的交班操作
  2275. //if (e.Cell.Column.Key == "ChangShift")
  2276. //{
  2277. // //查询前几道工序累计剔除多少半成品管(管坯等进行换算)
  2278. // CoreClientParam ccp = new CoreClientParam();
  2279. // ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult";
  2280. // ccp.MethodName = "scrapMatCheck";
  2281. // ccp.ServerParams = new Object[] { JudgeStoveNo, 7 };
  2282. // ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2283. // int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo);
  2284. // if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq)
  2285. // {
  2286. // MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2287. // return;
  2288. // }
  2289. // NativeMethodNew nas = new NativeMethodNew(this.ob);
  2290. // string Shift = UserInfo.GetUserOrder();
  2291. // string Group = UserInfo.GetUserGroup();
  2292. // if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("正常"))
  2293. // {
  2294. // int count = nas.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1,"0");
  2295. // if (count < 1)
  2296. // {
  2297. // MessageBox.Show("交接班失败,请查找原因后重新操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2298. // return;
  2299. // }
  2300. // }
  2301. // if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("交班点"))//回退
  2302. // {
  2303. // NativeMethodNew nass = new NativeMethodNew(this.ob);
  2304. // nass.ChangeShiftBack(JudgeStoveNo, this.ActiveResultNo, this.PlineCode, Shift, Group, 6);
  2305. // }
  2306. //}
  2307. #endregion
  2308. //交班
  2309. if (e.Cell.Column.Key == "ChangShift")
  2310. {
  2311. string seqlast = "";
  2312. //查询前几道工序累计剔除多少半成品管(管坯等进行换算)
  2313. CoreClientParam ccp = new CoreClientParam();
  2314. ccp.ServerName = "com.steering.mes.zgmil.coup.EddyCurrentTestingResult";
  2315. ccp.MethodName = "scrapMatCheck";
  2316. ccp.ServerParams = new Object[] { JudgeStoveNo, 7, proPlanId, gxPlanNo };
  2317. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  2318. int ScrapNumBefore = Convert.ToInt32(ccp.ReturnInfo);
  2319. if (ultraGridMatSeq.Rows.Count - ScrapNumBefore < Seq)
  2320. {
  2321. MessageBox.Show("不存在序号为【" + Seq + "】的管号,可能是被前道工序剔除,不能再次剔除。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2322. return;
  2323. }
  2324. if (ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("确认交班") || ugr.Cells["CHANGE_FLAG"].Value.ToString().Equals("待接班确认"))
  2325. {
  2326. MessageBox.Show("序号:【" + Seq + "】已进行了交接班操作,不允许再次进行", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2327. return;
  2328. }
  2329. //找到本台交接班的第一只
  2330. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.EddyCurrentTestingResult.GetRackChangeFlag", new object[] { JudgeStoveNo, ActiveResultNo, Seq.ToString(), 0, "0", Shift, Group, proPlanId, gxPlanNo }, this.ob);
  2331. if (dt.Rows.Count > 0)
  2332. {
  2333. if (!string.IsNullOrEmpty(dt.Rows[0]["SEQ"].ToString()))
  2334. {
  2335. seqlast = dt.Rows[0]["SEQ"].ToString();
  2336. }
  2337. else
  2338. {
  2339. //seqlast = "1";
  2340. }
  2341. }
  2342. else
  2343. {
  2344. //seqlast = "1";
  2345. }
  2346. if (int.Parse(seqlast) > Seq)
  2347. {
  2348. MessageBox.Show("您所选的管号队列交接班支已被上一班操作,不允许进行交接班", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2349. return;
  2350. }
  2351. else
  2352. {
  2353. HOTMethod hm = new HOTMethod(this.ob);
  2354. hm.UpdateChangeFlag(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, Seq, 0);
  2355. }
  2356. }
  2357. //接班
  2358. if (e.Cell.Column.Key == "BTNCHANGECOM")
  2359. {
  2360. HOTMethod hm = new HOTMethod(this.ob);
  2361. int WaitChangeSeq = hm.GetWaitChangeSeq(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, 0, proPlanId, gxPlanNo);
  2362. if (WaitChangeSeq == 0)
  2363. {
  2364. MessageBox.Show("没有待交班确认的管号。");
  2365. return;
  2366. }
  2367. if (WaitChangeSeq != Seq)
  2368. {
  2369. MessageBox.Show("交班管序号与接班管序号不符,请确认后接班。");
  2370. return;
  2371. }
  2372. if (MessageUtil.ShowYesNoAndQuestion("确认炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】序号:【" + Seq + "】交班?") == DialogResult.No)
  2373. {
  2374. return;
  2375. }
  2376. if (this.DoRelogin(DoCheck))
  2377. {
  2378. //接班
  2379. NativeMethodNew nass = new NativeMethodNew(this.ob);
  2380. nass.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1, "0", proPlanId, gxPlanNo);
  2381. }
  2382. //}
  2383. //else
  2384. //{
  2385. // NativeMethodNew nass = new NativeMethodNew(this.ob);
  2386. // nass.ChangeShift(JudgeStoveNo, this.ActiveResultNo, Seq.ToString(), this.PlineCode, Shift, Group, 0, 1, "0");
  2387. //}
  2388. }
  2389. if (ultraGridPlan.Rows == null)
  2390. {
  2391. return;
  2392. }
  2393. //GetRollingCard();
  2394. ////分切计划(实绩)更新
  2395. //GetSawResultEdit(JudgeStoveNo);
  2396. ////管号队列重新赋值
  2397. //GetMatRack(JudgeStoveNo);
  2398. PlanQuery();
  2399. foreach (UltraGridRow ugr_1 in ultraGridMatSeq.Rows)
  2400. {
  2401. if (ugr_1.Cells["SEQ"].Value.ToString() == Seq.ToString())
  2402. {
  2403. ultraGridMatSeq.ActiveRow = ugr_1;
  2404. }
  2405. }
  2406. ChangeGridColor();
  2407. }
  2408. }
  2409. public static int GetLength(string str)
  2410. {
  2411. if (str.Length == 0) return 0;
  2412. ASCIIEncoding ascii = new ASCIIEncoding();
  2413. int tempLen = 0; byte[] s = ascii.GetBytes(str);
  2414. for (int i = 0; i < s.Length; i++)
  2415. {
  2416. if ((int)s[i] == 63)
  2417. {
  2418. tempLen += 2;
  2419. }
  2420. else
  2421. {
  2422. tempLen += 1;
  2423. }
  2424. }
  2425. return tempLen;
  2426. }
  2427. public string DoCheck(CoreUserInfo User)
  2428. {
  2429. return "";
  2430. }
  2431. private void ultraGridMatSeq_AfterCellUpdate(object sender, CellEventArgs e)
  2432. {
  2433. UltraGridRow ugr = null;
  2434. UltraGridRow ugr_plan = null;
  2435. ugr = this.ultraGridMatSeq.ActiveRow;
  2436. ugr_plan = this.ultraGridPlan.ActiveRow;
  2437. int rownomax = 0;
  2438. if (ugr == null)
  2439. {
  2440. return;
  2441. }
  2442. string heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2443. string seq = ugr.Cells["SEQ"].Value.ToString();
  2444. if (e.Cell.Column.Key == "SCRAP_DBNUM")
  2445. {
  2446. //ugr.Cells["SCRAP_DBNUM"].Value = "";
  2447. //GetMatRack(heatno);
  2448. //ChangeGridColor();
  2449. //foreach (UltraGridRow ugr111 in this.ultraGridMatSeq.Rows)
  2450. //{
  2451. // if (ugr111.Cells["SEQ"].Value.ToString().Equals(seq))
  2452. // {
  2453. // ultraGridMatSeq.ActiveRow = ugr111;
  2454. // }
  2455. //}
  2456. return;
  2457. }
  2458. string status = ugr.Cells["STATUS"].Value.ToString();
  2459. int scrapnum = int.Parse(ugr.Cells["SCRAP_DBNUM"].Value.ToString3());
  2460. if (status.Contains("剔除") && scrapnum == SAW_NUM)
  2461. {
  2462. MessageBox.Show("序号:【" + seq + "】所有子管均被剔除,不允许修改。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2463. GetMatRack(heatno);
  2464. ChangeGridColor();
  2465. return;
  2466. }
  2467. if (ugr_plan.Cells["IS_START"].Value.ToString().Equals("已完成分切"))
  2468. {
  2469. MessageBox.Show("炉号:【" + heatno + "】已完成分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2470. return;
  2471. }
  2472. DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  2473. if (dtDeatail.Rows.Count > 0)
  2474. {
  2475. foreach (DataRow dr in dtDeatail.Rows)
  2476. {
  2477. if (!dr["SAW_FLAG"].Equals("3"))
  2478. {
  2479. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2480. GetMatRack(heatno);
  2481. ChangeGridColor();
  2482. return;
  2483. //只针对快速分切,如果是逐排切的话则允许
  2484. }
  2485. rownomax = (rownomax > int.Parse(dr["ROW_NO"].ToString())) ? rownomax : (int.Parse(dr["ROW_NO"].ToString()));
  2486. }
  2487. }
  2488. else
  2489. {
  2490. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2491. GetMatRack(heatno);
  2492. ChangeGridColor();
  2493. return;
  2494. }
  2495. // string heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2496. string Seq = ugr.Cells["SEQ"].Value.ToString();
  2497. string remark = "";
  2498. string rowno = "";
  2499. string cuttype = "";
  2500. float cuthead = 0;
  2501. float cutorder = 0;
  2502. float cuttail = 0;
  2503. string sawno = "";
  2504. string sawnon = "";
  2505. int sawnum = this.SAW_NUM;
  2506. float lastorder = 0;
  2507. cuthead = float.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString());
  2508. cutorder = float.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString());
  2509. cuttail = float.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString());
  2510. if (e.Cell.Column.Key == "ROW_NO")
  2511. {
  2512. #region 修改排号
  2513. string rownobefor = "";
  2514. if (this.PlineCode.Equals("C009"))
  2515. {
  2516. if (this.TestMethod.Contains("2"))
  2517. {
  2518. MessageBox.Show("您的操作台不允许保修改排号。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2519. GetMatRack(heatno);
  2520. ChangeGridColor();
  2521. return;
  2522. }
  2523. }
  2524. string rownoafter = ugr.Cells["ROW_NO"].Value.ToString();
  2525. if (int.Parse(rownoafter) > (rownomax + 1))
  2526. {
  2527. MessageBox.Show("您输入的新排号【" + rownoafter + "】过大,请确认后重新输入", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2528. GetMatRack(heatno);
  2529. ChangeGridColor();
  2530. return;
  2531. }
  2532. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetRownoFromRack", new object[] { heatno, Seq }, this.ob);
  2533. if (dt.Rows.Count > 0)
  2534. {
  2535. if (dt.Rows[0]["ROW_NO"] == null || dt.Rows[0]["ROW_NO"] == "")
  2536. {
  2537. MessageBox.Show("序号:【" + Seq + "】母管还未进行分切,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2538. GetMatRack(heatno);
  2539. ChangeGridColor();
  2540. return;
  2541. }
  2542. else
  2543. {
  2544. rownobefor = dt.Rows[0]["ROW_NO"].ToString();
  2545. }
  2546. }
  2547. else
  2548. {
  2549. MessageBox.Show("序号:【" + Seq + "】母管还未进行分切,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2550. GetMatRack(heatno);
  2551. ChangeGridColor();
  2552. return;
  2553. }
  2554. MilSawRackEntity sawrackrowno = new MilSawRackEntity();
  2555. sawrackrowno.JudgeStoveNo = heatno;
  2556. sawrackrowno.Seq = Seq;
  2557. sawrackrowno.RowNo = rownoafter;
  2558. sawrackrowno.ProPlanId = proPlanId;
  2559. sawrackrowno.GxPlanNo = gxPlanNo;
  2560. foreach (DataRow drs in dtDeatail.Rows)
  2561. {
  2562. if (drs["ROW_NO"].ToString().Equals(rownobefor))
  2563. {
  2564. if (drs["ROW_COUNT"].ToString().Equals("1"))
  2565. {
  2566. MessageBox.Show("排号:【" + rownobefor + "】只剩一支母管,不允许修改排号", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2567. GetMatRack(heatno);
  2568. ChangeGridColor();
  2569. return;
  2570. }
  2571. }
  2572. }
  2573. int counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackRowNo", new object[] { sawrackrowno, rownobefor}, this.ob);
  2574. #endregion
  2575. }
  2576. if (e.Cell.Column.Key == "CUT_TYPE")
  2577. {
  2578. #region
  2579. if (ugr.Cells["CUT_TYPE"].Value != null)
  2580. {
  2581. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2582. milsawrack.JudgeStoveNo = heatno;
  2583. milsawrack.Seq = Seq;
  2584. milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString();
  2585. if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾"))
  2586. {
  2587. milsawrack.CutType = "1";
  2588. lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1);
  2589. milsawrack.LastOrderLength = lastorder;
  2590. }
  2591. else if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("被动切尾"))
  2592. {
  2593. milsawrack.CutType = "0";
  2594. //lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1);
  2595. milsawrack.LastOrderLength = ugr.Cells["LAST_ORDER_LENGTH"].Value.ToString();
  2596. }
  2597. else
  2598. {
  2599. MessageBox.Show("错误的切尾类型值,请重新选择", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2600. GetMatRack(heatno);
  2601. ChangeGridColor();
  2602. return;
  2603. }
  2604. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutType", new object[] { milsawrack }, this.ob);
  2605. GetMatRack(heatno);
  2606. ChangeGridColor();
  2607. }
  2608. else
  2609. {
  2610. MessageBox.Show("切尾类型为空,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2611. GetMatRack(heatno);
  2612. ChangeGridColor();
  2613. return;
  2614. }
  2615. #endregion
  2616. }
  2617. if (e.Cell.Column.Key == "REAL_ROLL_LENGTH")
  2618. {
  2619. #region
  2620. if (ugr.Cells["REAL_ROLL_LENGTH"].Value == null || ugr.Cells["REAL_ROLL_LENGTH"].Value == "")
  2621. {
  2622. MessageBox.Show("实际轧制长度为空,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2623. GetMatRack(heatno);
  2624. ChangeGridColor();
  2625. return;
  2626. }
  2627. if (Convert.ToInt16(ugr.Cells["REAL_ROLL_LENGTH"].Value) == 0)
  2628. {
  2629. MessageBox.Show("实际轧制长度类型错误或值为0,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2630. GetMatRack(heatno);
  2631. ChangeGridColor();
  2632. return;
  2633. }
  2634. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2635. milsawrack.JudgeStoveNo = heatno;
  2636. milsawrack.Seq = Seq;
  2637. milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString();
  2638. if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾"))
  2639. {
  2640. milsawrack.CutType = "1";
  2641. lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1);
  2642. milsawrack.LastOrderLength = lastorder;
  2643. }
  2644. if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("被动切尾"))
  2645. {
  2646. milsawrack.CutType = "0";
  2647. //lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 1000 - cuttail / 1000 - cutorder * (sawnum - 1);
  2648. milsawrack.LastOrderLength = ugr.Cells["LAST_ORDER_LENGTH"].Value.ToString();
  2649. }
  2650. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutType", new object[] { milsawrack }, this.ob);
  2651. GetMatRack(heatno);
  2652. ChangeGridColor();
  2653. #endregion
  2654. }
  2655. if (e.Cell.Column.Key == "SAW_NO")
  2656. {
  2657. #region
  2658. if (ugr.Cells["SAW_NO"].Value.ToString().Equals("1") || ugr.Cells["SAW_NO"].Value.ToString().Equals("2"))
  2659. {
  2660. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2661. milsawrack.JudgeStoveNo = heatno;
  2662. milsawrack.Seq = Seq;
  2663. milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString();
  2664. milsawrack.SawNo = ugr.Cells["SAW_NO"].Value.ToString();
  2665. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 0, milsawrack.SawNo.ToString(), "0" }, this.ob);
  2666. GetMatRack(heatno);
  2667. ChangeGridColor();
  2668. }
  2669. else
  2670. {
  2671. MessageBox.Show("锯号1输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2672. GetMatRack(heatno);
  2673. ChangeGridColor();
  2674. return;
  2675. }
  2676. #endregion
  2677. }
  2678. if (e.Cell.Column.Key == "SAW_NO_N")
  2679. {
  2680. #region
  2681. if (ugr.Cells["SAW_NO_N"].Value.ToString().Equals("3") || ugr.Cells["SAW_NO_N"].Value.ToString().Equals("4"))
  2682. {
  2683. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2684. milsawrack.JudgeStoveNo = heatno;
  2685. milsawrack.Seq = Seq;
  2686. milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString();
  2687. milsawrack.SawNoN = ugr.Cells["SAW_NO_N"].Value.ToString();
  2688. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 1, milsawrack.SawNoN.ToString(), "0" }, this.ob);
  2689. GetMatRack(heatno);
  2690. ChangeGridColor();
  2691. }
  2692. else
  2693. {
  2694. MessageBox.Show("锯号2输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2695. GetMatRack(heatno);
  2696. ChangeGridColor();
  2697. return;
  2698. }
  2699. #endregion
  2700. }
  2701. if (e.Cell.Column.Key == "CUT_HEAD_LENGTH")
  2702. {
  2703. #region
  2704. if (double.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString()) <= 0)
  2705. {
  2706. MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2707. GetMatRack(heatno);
  2708. ChangeGridColor();
  2709. return;
  2710. }
  2711. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2712. milsawrack.JudgeStoveNo = heatno;
  2713. milsawrack.Seq = Seq;
  2714. milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString();
  2715. milsawrack.CutHeadLength = ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString();
  2716. double cutheatbefore = 0.0;
  2717. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob);
  2718. if (dt.Rows.Count > 0)
  2719. {
  2720. cutheatbefore = double.Parse(dt.Rows[0]["CUT_HEAD_LENGTH"].ToString());
  2721. }
  2722. double temp = cutheatbefore - double.Parse(milsawrack.CutHeadLength.ToString());
  2723. double change = temp / 1000;
  2724. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 2, milsawrack.CutHeadLength.ToString(), change.ToString() }, this.ob);
  2725. GetMatRack(heatno);
  2726. ChangeGridColor();
  2727. #endregion
  2728. }
  2729. if (e.Cell.Column.Key == "ORDER_LENGTH")
  2730. {
  2731. #region
  2732. if (double.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString()) <= 0)
  2733. {
  2734. MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2735. GetMatRack(heatno);
  2736. ChangeGridColor();
  2737. return;
  2738. }
  2739. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2740. milsawrack.JudgeStoveNo = heatno;
  2741. milsawrack.Seq = Seq;
  2742. milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString();
  2743. milsawrack.OrderLength = ugr.Cells["ORDER_LENGTH"].Value.ToString();
  2744. double cutheatbefore = 0;
  2745. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob);
  2746. if (dt.Rows.Count > 0)
  2747. {
  2748. cutheatbefore = Convert.ToDouble(dt.Rows[0]["ORDER_LENGTH"].ToString());
  2749. }
  2750. double temp = cutheatbefore - double.Parse(milsawrack.OrderLength.ToString());
  2751. double change = (double)temp * (this.SAW_NUM - 1);
  2752. CoreClientParam ccp = new CoreClientParam();
  2753. ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult";
  2754. ccp.MethodName = "doUpdatePorcess";
  2755. ccp.ServerParams = new object[] { milsawrack, milsawrack.OrderLength.ToString() };
  2756. ccp = ob.ExecuteNonQuery(ccp,CoreInvokeType.Internal);
  2757. if (ccp.ReturnCode != -1)
  2758. {
  2759. if (ccp.ReturnInfo.Equals("修改成功!"))
  2760. {
  2761. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 3, milsawrack.OrderLength.ToString(), change.ToString() }, this.ob);
  2762. GetMatRack(heatno);
  2763. ChangeGridColor();
  2764. }
  2765. }
  2766. else
  2767. {
  2768. MessageUtil.ShowTips(ccp.ReturnInfo);
  2769. }
  2770. #endregion
  2771. }
  2772. if (e.Cell.Column.Key == "CUT_TRAIL_LENGTH")
  2773. {
  2774. #region
  2775. if (double.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString()) <= 0)
  2776. {
  2777. MessageBox.Show("切头长度输入的值为错误的值,请确认后重新修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2778. GetMatRack(heatno);
  2779. ChangeGridColor();
  2780. return;
  2781. }
  2782. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2783. milsawrack.JudgeStoveNo = heatno;
  2784. milsawrack.Seq = Seq;
  2785. milsawrack.RowNo = ugr.Cells["ROW_NO"].Value.ToString();
  2786. milsawrack.CutTrailLength = ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString();
  2787. double cutheatbefore = 0.0;
  2788. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSingleSawRack", new object[] { milsawrack }, this.ob);
  2789. if (dt.Rows.Count > 0)
  2790. {
  2791. cutheatbefore = double.Parse(dt.Rows[0]["CUT_TRAIL_LENGTH"].ToString());
  2792. }
  2793. double temp = cutheatbefore - double.Parse(milsawrack.CutTrailLength.ToString());
  2794. double change = temp / 1000;
  2795. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackCutX", new object[] { milsawrack, 4, milsawrack.CutTrailLength.ToString(), change.ToString() }, this.ob);
  2796. GetMatRack(heatno);
  2797. ChangeGridColor();
  2798. #endregion
  2799. }
  2800. if (e.Cell.Column.Key == "REMARK")
  2801. {
  2802. #region
  2803. if (ugr.Cells["REMARK"].Value != null)
  2804. {
  2805. remark = ugr.Cells["REMARK"].Value.ToString();
  2806. NativeMethodNew na = new NativeMethodNew(this.ob);
  2807. int count = na.SaveRackRemark(0, int.Parse(Seq), heatno, remark);
  2808. }
  2809. #endregion
  2810. }
  2811. //GetMatRack(heatno);
  2812. }
  2813. /// <summary>
  2814. /// 保存跟踪记录表备注
  2815. /// </summary>
  2816. public void SaveRackRemark()
  2817. {
  2818. DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  2819. if (dtDeatail.Rows.Count > 0)
  2820. {
  2821. foreach (DataRow dr in dtDeatail.Rows)
  2822. {
  2823. if (!dr["SAW_FLAG"].Equals("3"))
  2824. {
  2825. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2826. return;
  2827. //只针对快速分切,如果是逐排切的话则允许
  2828. }
  2829. }
  2830. }
  2831. else
  2832. {
  2833. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2834. return;
  2835. }
  2836. MilSawRackEntity milsawrack = new MilSawRackEntity();
  2837. UltraGridRow ugr = null;
  2838. string heatno = "";
  2839. int seq = 0;
  2840. string remark = "";
  2841. string rowno = "";
  2842. string cuttype = "";
  2843. float cuthead = 0;
  2844. float cutorder = 0;
  2845. float cuttail = 0;
  2846. string sawno = "";
  2847. string sawnon = "";
  2848. int sawnum = this.SAW_NUM;
  2849. float lastorder = 0;
  2850. ugr = this.ultraGridMatSeq.ActiveRow;
  2851. if (ugr == null)
  2852. {
  2853. MessageBox.Show("您未选择任何管号队列数据,请重新选择后再进行保存操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2854. return;
  2855. }
  2856. heatno = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2857. seq = Convert.ToInt16(ugr.Cells["SEQ"].Value.ToString());
  2858. rowno = ugr.Cells["ROW_NO"].Value.ToString();
  2859. cuthead = float.Parse(ugr.Cells["CUT_HEAD_LENGTH"].Value.ToString());
  2860. cutorder = float.Parse(ugr.Cells["ORDER_LENGTH"].Value.ToString());
  2861. cuttail = float.Parse(ugr.Cells["CUT_TRAIL_LENGTH"].Value.ToString());
  2862. sawno = ugr.Cells["SAW_NO"].Value.ToString();
  2863. sawnon = ugr.Cells["SAW_NO_N"].Value.ToString();
  2864. milsawrack.JudgeStoveNo = heatno;
  2865. milsawrack.Seq = seq;
  2866. milsawrack.RowNo = rowno;
  2867. milsawrack.CutHeadLength = cuthead;
  2868. milsawrack.OrderLength = cutorder;
  2869. milsawrack.CutTrailLength = cuttail;
  2870. milsawrack.SawNo = sawno;
  2871. milsawrack.SawNoN = sawnon;
  2872. if (!string.IsNullOrEmpty(ugr.Cells["REMARK"].Value.ToString()))
  2873. {
  2874. remark = ugr.Cells["REMARK"].Value.ToString();
  2875. }
  2876. else
  2877. {
  2878. remark = "";
  2879. }
  2880. milsawrack.Remark = remark;
  2881. milsawrack.RealRollLength = ugr.Cells["REAL_ROLL_LENGTH"].Value.ToString();
  2882. if (ugr.Cells["CUT_TYPE"].Value != null && ugr.Cells["CUT_TYPE"].Value != "")
  2883. {
  2884. if (ugr.Cells["CUT_TYPE"].Value.ToString().Equals("主动切尾"))
  2885. {
  2886. milsawrack.CutType = "1";
  2887. lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 100 - cuttail / 100 - cutorder * (sawnum - 1);
  2888. milsawrack.LastOrderLength = lastorder;
  2889. }
  2890. else
  2891. {
  2892. milsawrack.CutType = "0";
  2893. lastorder = float.Parse(milsawrack.RealRollLength.ToString()) - cuthead / 100 - cuttail / 100 - cutorder * (sawnum - 1);
  2894. milsawrack.LastOrderLength = lastorder;
  2895. }
  2896. }
  2897. //milsawrack.
  2898. }
  2899. /// <summary>
  2900. /// 保存当前实绩(该)
  2901. /// </summary>
  2902. public void SawResultSave()
  2903. {
  2904. string saveflag = "0";
  2905. MilSawResultEntity milsawresult = new MilSawResultEntity();
  2906. this.pipeSawResult1.UltraGrid2.UpdateData();
  2907. milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult);
  2908. milsawresult.OrderLength = milsawresult.TargetLength;
  2909. //milsawresult.SawNum = pipeSawResult1.UltraGrid2.// Rows[0]["SAW_NUM"].toString();
  2910. milsawresult.SawNum = this.pipeSawResult1.UltraGrid2.Rows[0].Cells["SAW_NUM"].Value.ToString();
  2911. if (this.ultraGridPlan.ActiveRow == null && ActiveJUDGE_STOVE_NO == null)
  2912. {
  2913. MessageBox.Show("未选择任何炉号,请选择炉号后进行保存操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2914. return;
  2915. }
  2916. if (this.ultraGridPlan.ActiveRow == null)
  2917. {
  2918. milsawresult.JudgeStoveNo = ActiveJUDGE_STOVE_NO;
  2919. }
  2920. else
  2921. {
  2922. milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString();
  2923. }
  2924. if (ActiveStatus == "3")
  2925. {
  2926. MessageBox.Show("炉号:【" + milsawresult.JudgeStoveNo + "】未开始进行分切,不允许进行保存操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2927. return;
  2928. }
  2929. if (ActiveStatus == "1")
  2930. {
  2931. saveflag = "1";
  2932. //MessageBox.Show("炉号:【" + milsawresult.JudgeStoveNo + "】已完成分切操作,不允许进行保存操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2933. //return;
  2934. }
  2935. //if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + milsawresult.JudgeStoveNo + "】保存实绩?") == DialogResult.No)
  2936. //{
  2937. // return;
  2938. //}
  2939. milsawresult.NodeFurFlag = "0";
  2940. milsawresult.ProPlanId = proPlanId;
  2941. milsawresult.GxPlanNo = gxPlanNo;
  2942. //插入实绩表
  2943. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawResult", new object[] { milsawresult, saveflag }, this.ob);
  2944. if (count == 1)
  2945. {
  2946. MessageBox.Show("保存操作完成!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2947. this.pipeSawResult1.IsCellSelect = false;
  2948. PlanQuery();
  2949. }
  2950. }
  2951. /// <summary>
  2952. /// 结炉操作
  2953. /// 1、判断上一道工序结炉状态,2、更新实绩表(包括结炉时间,结炉状态),3.更新主表NODE_STATUS
  2954. /// </summary>
  2955. public void SawesultNode()
  2956. {
  2957. SawResultSave();
  2958. if (this.PlineCode.Equals("C009"))
  2959. {
  2960. //if (this.TestMethod.Contains("1"))
  2961. //{
  2962. // MessageBox.Show("您的操作台不允许进行分切结炉操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2963. // return;
  2964. //}
  2965. }
  2966. //判断是否有重复剔除的坯子
  2967. foreach (UltraGridRow ugr4 in ultraGridMatSeq.Rows)
  2968. {
  2969. if (ugr4.Cells["MAT_NO"].Value.ToString().Equals("") && ugr4.Cells["STATUS"].Value.ToString().Equals("剔除"))
  2970. {
  2971. MessageBox.Show("不存在序号第【" + ugr4.Cells["SEQ"].Value.ToString() + "】的管子,它已被其它工序剔除,不能再次剔除", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2972. return;
  2973. }
  2974. }
  2975. HOTMethod hm = new HOTMethod(this.ob);
  2976. int WaitChangeSeq = hm.GetWaitChangeSeq(ActiveJUDGE_STOVE_NO, ActiveResultNo, "", 6, 0, proPlanId, gxPlanNo);
  2977. if (WaitChangeSeq > 0)
  2978. {
  2979. MessageBox.Show("管号【" + WaitChangeSeq + "】未接班确认,不能结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2980. return;
  2981. }
  2982. //UltraGridRow ugrRack = this.ultraGridMatSeq.ActiveRow;
  2983. //if (ugrRack == null)
  2984. //{
  2985. // return;
  2986. //}
  2987. //if (ugrRack.Cells["CUT_HEAD_LENGTH"].Text.Trim() == "")
  2988. //{
  2989. // MessageUtil.ShowTips("分切未成功,请开始回退后再进行分切!");
  2990. // return;
  2991. //}
  2992. UltraGridRow ugr_plan = this.ultraGridPlan.ActiveRow;
  2993. //UltraGridRow ugr = ultraGridPlan.ActiveRow;
  2994. UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0];
  2995. UltraGridRow ugr2 = this.rollingCard1.UltraGrid4.Rows[0];
  2996. pipeSawResult1.UltraGrid2.UpdateData();
  2997. if (ugr_plan != null)
  2998. {
  2999. string JudgeStoveNo = ugr_plan.Cells["JUDGE_STOVE_NO"].Value.ToString();
  3000. string resultNo = ugr_plan.Cells["ID"].Value.ToString();
  3001. //string Status = ugr_plan.Cells["IS_START"].Value.ToString();
  3002. string Status = doQueryJugeNoStaus(resultNo, JudgeStoveNo, PlineCode);
  3003. if (Status == "1")
  3004. {
  3005. MessageBox.Show("炉号:【" + JudgeStoveNo + "】已完成分切操作,不允许进行结炉操作!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3006. return;
  3007. }
  3008. //查询定径结炉是否完成
  3009. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetMIL_SIZING_RESULT", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  3010. if (dt.Rows.Count == 0)
  3011. {
  3012. MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3013. return;
  3014. }
  3015. if (string.IsNullOrEmpty(dt.Rows[0]["NODE_FUR_FLAG"].ToString()))
  3016. {
  3017. MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3018. return;
  3019. }
  3020. if (dt.Rows[0]["NODE_FUR_FLAG"].ToString() != "1")//
  3021. {
  3022. MessageBox.Show("炉号【" + JudgeStoveNo + "】还未定径完成,不能结炉!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3023. return;
  3024. }
  3025. int cut = LimitCut(JudgeStoveNo);
  3026. if (cut > 0)
  3027. {
  3028. MessageBox.Show("炉号:【" + JudgeStoveNo + "】存在【" + cut + "】支母管未进行分切操作,不允许结炉。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3029. return;
  3030. }
  3031. if (MessageUtil.ShowYesNoAndQuestion("确认炉号【" + JudgeStoveNo + "】结炉?") == DialogResult.No)
  3032. {
  3033. return;
  3034. }
  3035. DataTable dtDeatail = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetResultDetail", new object[] { this.ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  3036. if (dtDeatail.Rows.Count > 0)
  3037. {
  3038. int rownomax = 0;
  3039. foreach (DataRow dr in dtDeatail.Rows)
  3040. {
  3041. if (!dr["SAW_FLAG"].Equals("3"))
  3042. {
  3043. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】还未分切结束,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3044. return;
  3045. //只针对快速分切,如果是逐排切的话则允许
  3046. }
  3047. rownomax = (rownomax > int.Parse(dr["ROW_NO"].ToString())) ? rownomax : (int.Parse(dr["ROW_NO"].ToString()));
  3048. }
  3049. }
  3050. else
  3051. {
  3052. MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】尚未开始分切,不允许进行管号队列修改", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3053. return;
  3054. }
  3055. //保存当前实绩
  3056. MilSawResultEntity milsawresult = new MilSawResultEntity();
  3057. this.pipeSawResult1.UltraGrid2.UpdateData();
  3058. milsawresult = NativeMethod.GetUltraGridToEntityNEW(this.pipeSawResult1.UltraGrid2, milsawresult);
  3059. ////切前剔除支数
  3060. //if (!string.IsNullOrEmpty(ugr2.Cells["ScrapNum9"].Value.ToString()))
  3061. //{
  3062. // milsawresult.ScrapNum = ugr2.Cells["ScrapNum9"].Value.ToString();
  3063. //}
  3064. //else
  3065. //{
  3066. // milsawresult.ScrapNum = "0";
  3067. //}
  3068. ////切后剔除支数
  3069. //if (!string.IsNullOrEmpty(ugr2.Cells["ScrapNum10"].Value.ToString()))
  3070. //{
  3071. // milsawresult.ScrapDbnum = ugr2.Cells["ScrapNum10"].Value.ToString();
  3072. //}
  3073. //else
  3074. //{
  3075. // milsawresult.ScrapDbnum = "0";
  3076. //}
  3077. //来料支数
  3078. int MatNum = 0;
  3079. if (!string.IsNullOrEmpty(ugr2.Cells["QualifiedNum7"].Value.ToString()))
  3080. {
  3081. MatNum = Convert.ToInt32(ugr2.Cells["QualifiedNum7"].Value.ToString());
  3082. }
  3083. //切前合格支数
  3084. milsawresult.CutNum = MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString());
  3085. //分切数
  3086. int sawnum = int.Parse(ugr1.Cells["SAW_MUMP"].Value.ToString());
  3087. //切后合格支数
  3088. milsawresult.CutDbnum = (MatNum - int.Parse(ugr2.Cells["ScrapNum9"].Value.ToString())) * sawnum - int.Parse(ugr2.Cells["ScrapNum10"].Value.ToString());
  3089. //交接班支数
  3090. milsawresult.ChangeNum = ugr1.Cells["CHANGE_NUM"].Value.ToString();
  3091. milsawresult.JudgeStoveNo = this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString();
  3092. //合格吨
  3093. //切头切尾重量计算(待修改)
  3094. double DBHeight = 0;
  3095. double BurnningRate = 0;
  3096. double BurnningRate1 = 0;
  3097. double DBNum = 1;
  3098. int cutNum = 0;
  3099. NativeMethodNew na1 = new NativeMethodNew(this.ob);
  3100. double percent0 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 0);
  3101. double percent1 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 1);
  3102. double percent2 = na1.GetLengthPercent(JudgeStoveNo, this.ob, 2);
  3103. if (percent0 == 100.0)
  3104. {
  3105. MessageBox.Show("炉号:【" + JudgeStoveNo + "】尚未开始分切,不允许结炉", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3106. return;
  3107. }
  3108. DataTable dtDBH = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getDbHeight", new object[] { JudgeStoveNo, ActiveResultNo, proPlanId, gxPlanNo }, this.ob);
  3109. if (dtDBH.Rows.Count > 0)
  3110. {
  3111. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_HEIGHT"].ToString()))
  3112. {
  3113. DBHeight = double.Parse(dtDBH.Rows[0]["DB_HEIGHT"].ToString());
  3114. }
  3115. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNNING_RATE"].ToString()))
  3116. {
  3117. BurnningRate = double.Parse(dtDBH.Rows[0]["BURNNING_RATE"].ToString());
  3118. }
  3119. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["BURNINGRATE"].ToString()))
  3120. {
  3121. BurnningRate1 = double.Parse(dtDBH.Rows[0]["BURNINGRATE"].ToString());
  3122. }
  3123. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["DB_NUM"].ToString()))
  3124. {
  3125. DBNum = double.Parse(dtDBH.Rows[0]["DB_NUM"].ToString());
  3126. }
  3127. if (!string.IsNullOrEmpty(dtDBH.Rows[0]["CUT_NUM"].ToString()))
  3128. {
  3129. cutNum = int.Parse(dtDBH.Rows[0]["CUT_NUM"].ToString());
  3130. }
  3131. }
  3132. //分产线 是否经过再加热炉
  3133. if (this.PlineCode == "C008" || this.PlineCode == "C009" || PlineCode == "C012" || PlineCode == "C017" || PlineCode == "C010")
  3134. {
  3135. double temp = DBHeight * (1 - (BurnningRate / 100));
  3136. double tempnum = double.Parse(milsawresult.CutDbnum.ToString());
  3137. milsawresult.QaTon = temp * percent0 / 100 * tempnum;
  3138. //milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString());//单倍重*(1-烧损率)*定尺长度占比*切合支数
  3139. //milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString());
  3140. milsawresult.CutHeadHeightTotal = DBHeight * 1.02 * cutNum * percent1 / 1000;
  3141. milsawresult.CutTrailHeigthTotal = DBHeight * 1.02 * cutNum * percent2 / 1000;
  3142. milsawresult.CutTrailLengthTotal = double.Parse(milsawresult.CutTrailLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000;
  3143. milsawresult.CutHeadLengthTotal = double.Parse(milsawresult.CutHeadLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000;
  3144. }
  3145. //else
  3146. //{
  3147. // double temp = DBHeight * (1 - (BurnningRate / 100)) * (1 - (BurnningRate1 / 100));
  3148. // double tempnum = double.Parse(milsawresult.CutDbnum.ToString());
  3149. // milsawresult.QaTon = temp * percent0 / 100 * tempnum;
  3150. // milsawresult.CutHeadHeightTotal = temp * percent1 / 100 * int.Parse(milsawresult.CutNum.ToString());
  3151. // milsawresult.CutTrailHeigthTotal = temp * percent2 / 100 * int.Parse(milsawresult.CutNum.ToString());
  3152. // milsawresult.CutTrailLengthTotal = double.Parse(milsawresult.CutTrailLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000;
  3153. // milsawresult.CutHeadLengthTotal = double.Parse(milsawresult.CutHeadLength.ToString()) * double.Parse(milsawresult.CutNum.ToString()) / 1000;
  3154. //}
  3155. milsawresult.ColGroup = UserInfo.GetUserGroup();
  3156. milsawresult.ColShift = UserInfo.GetUserOrder();
  3157. milsawresult.ColUser = UserInfo.GetUserName();
  3158. milsawresult.UserId = _UserID;
  3159. milsawresult.ProPlanId = proPlanId;
  3160. milsawresult.GxPlanNo = gxPlanNo;
  3161. milsawresult.JudgeStoveNo = JudgeStoveNo;
  3162. milsawresult.LotNo = lotNo;
  3163. milsawresult.PlineCode = PlineCode;
  3164. //写进程表
  3165. CoreClientParam ccp = new CoreClientParam();
  3166. ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult";
  3167. ccp.MethodName = "updateMilSlab";
  3168. ccp.ServerParams = new object[] { JudgeStoveNo, proPlanId, gxPlanNo };
  3169. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  3170. if (ccp.ReturnCode != -1)
  3171. {
  3172. if (ccp.ReturnInfo.Equals("修改成功!"))
  3173. {
  3174. ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult";
  3175. ccp.MethodName = "updateProcessP";
  3176. ccp.ServerParams = new object[] { JudgeStoveNo, "7", "7", proPlanId, gxPlanNo, lotNo, PlineCode };
  3177. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  3178. if (ccp.ReturnCode != -1)
  3179. {
  3180. if (ccp.ReturnInfo.Equals("修改成功!"))
  3181. {
  3182. //插入实绩表
  3183. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateSawResultNode", new object[] { milsawresult }, this.ob);
  3184. NativeMethodNew na = new NativeMethodNew(this.ob);
  3185. na.InsertSTAferDoubleClick(JudgeStoveNo, 6, "1", proPlanId, gxPlanNo);
  3186. if (count == 1)
  3187. {
  3188. //插入MIL_SLAB_SCRAP表
  3189. //int count1 = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.scrapNodeMat", new object[] { JudgeStoveNo, 7, 0,PlineCode }, this.ob);
  3190. ccp.ServerName = "com.steering.mes.zgmil.coup.PipeSawResult";
  3191. ccp.MethodName = "assignmentMatNo";
  3192. ccp.ServerParams = new object[] { JudgeStoveNo, PlineCode, proPlanId, gxPlanNo };
  3193. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  3194. NativeMethod.CheckNodeMatStatus(JudgeStoveNo, proPlanId, gxPlanNo, 6, this.ob);
  3195. //MessageBox.Show("炉号【" + JudgeStoveNo + "】结炉完成", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3196. //----快速分切结炉时多余料回退
  3197. //1.计算已切的料
  3198. int CutNum = 0;
  3199. int CutNumReal = int.Parse(milsawresult.CutNum.ToString());
  3200. DataTable dtCutNum = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetCutNum", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);
  3201. if (dtCutNum.Rows.Count > 0)
  3202. {
  3203. CutNum = int.Parse(dtCutNum.Rows[0]["CutNum"].ToString());
  3204. }
  3205. if (CutNum > CutNumReal)
  3206. {
  3207. //执行回退
  3208. int countback = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.UpdateRackRowNo", new object[] { JudgeStoveNo, CutNum, CutNumReal, SAW_NUM, proPlanId, gxPlanNo }, this.ob);
  3209. }
  3210. //----
  3211. this.pipeSawResult1.IsCellSelect = false;
  3212. //刷新主表
  3213. DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlan", new object[] { QueryMainPlan, 7 }, this.ob);
  3214. GridHelper.CopyDataToDatatable(ref dt1, ref dtPlan, true);
  3215. // ultraGridPlan.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);
  3216. ChangeCellName();
  3217. ChangeGridColor();
  3218. foreach (UltraGridRow ugrs in this.ultraGridPlan.Rows)
  3219. {
  3220. ugrs.Cells["JUDGE_NO"].Value = BaseMethod.getJudgeStoveNo(ugrs.Cells["JUDGE_STOVE_NO"].Value.ToString());
  3221. if (ugrs.Cells["JUDGE_STOVE_NO"].Value.ToString() == JudgeStoveNo)
  3222. {
  3223. ultraGridPlan.ActiveRow = ugrs;
  3224. }
  3225. }
  3226. this.QueueDataSet.Clear();
  3227. }
  3228. }
  3229. }
  3230. else
  3231. {
  3232. MessageUtil.ShowTips(ccp.ReturnInfo);
  3233. }
  3234. }
  3235. }
  3236. }
  3237. }
  3238. /// <summary>
  3239. /// 结炉回退
  3240. /// </summary>
  3241. private void NodeBack()
  3242. {
  3243. if (this.ultraGridPlan.ActiveRow == null)
  3244. {
  3245. MessageBox.Show("请选择需要回退的炉号!!!");
  3246. return;
  3247. }
  3248. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  3249. string JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  3250. string ResultNo = ugr.Cells["ID"].Value.ToString();
  3251. string NodeFlag = doQueryJugeNoStaus(ResultNo, JudgeStoveNo,PlineCode);
  3252. //string NodeFlag = ugr.Cells["IS_START"].Value.ToString();
  3253. if (NodeFlag != "1")
  3254. {
  3255. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】未结炉,不能结炉回退!!!!");
  3256. return;
  3257. }
  3258. DataTable dtMat = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmOffLine.doQueryMatScrap", new object[] { JudgeStoveNo, PlineCode, proPlanId, gxPlanNo }, this.ob);
  3259. if (dtMat.Rows.Count > 0)
  3260. {
  3261. if (int.Parse(dtMat.Rows[0][0].ToString()) > 0)
  3262. {
  3263. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】的废品已发运,不能结炉回退!!!!");
  3264. return;
  3265. }
  3266. }
  3267. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.doNodeBackCheck", new object[] { JudgeStoveNo, ResultNo, proPlanId, gxPlanNo }, this.ob);
  3268. if (dt.Rows.Count > 0)
  3269. {
  3270. string NodeProcess = ""; //当前炉次结炉工序
  3271. string NodeStatus = dt.Rows[0][0].ToString();
  3272. switch (NodeStatus)
  3273. {
  3274. case "30":
  3275. NodeProcess = "穿孔";
  3276. break;
  3277. case "40":
  3278. NodeProcess = "连轧";
  3279. break;
  3280. case "50":
  3281. NodeProcess = "再加热炉";
  3282. break;
  3283. case "60":
  3284. NodeProcess = "定径";
  3285. break;
  3286. case "70":
  3287. NodeProcess = "分切";
  3288. break;
  3289. case "80":
  3290. NodeProcess = "矫直";
  3291. break;
  3292. case "90":
  3293. NodeProcess = "探伤";
  3294. break;
  3295. case "96":
  3296. NodeProcess = "质检";
  3297. break;
  3298. }
  3299. if (NodeStatus != "70")
  3300. {
  3301. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】 " + NodeProcess + "工序已结炉,当前工序不能结炉回退");
  3302. return;
  3303. }
  3304. }
  3305. string Group = UserInfo.GetUserGroup();
  3306. string Shift = UserInfo.GetUserOrder();
  3307. //查询结炉班次班组
  3308. DataTable dtNodeGroup = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.doNodeBackCheck", new object[] { JudgeStoveNo, ResultNo, 6, proPlanId, gxPlanNo }, this.ob);
  3309. if (dtNodeGroup.Rows.Count > 0)
  3310. {
  3311. string NodeShift = dtNodeGroup.Rows[0][0].ToString();
  3312. string NodeGroup = dtNodeGroup.Rows[0][1].ToString();
  3313. if (Shift == NodeShift && Group == NodeGroup)
  3314. {
  3315. //判断当前炉次下道工序是否结炉 下道工序结炉 - 不允许回退
  3316. int Seq = 0;
  3317. DataTable dt2 = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.changeFlagQuery", new object[] { JudgeStoveNo, ResultNo, 6, proPlanId, gxPlanNo }, this.ob);
  3318. if (dt2.Rows.Count > 0)
  3319. {
  3320. Seq = int.Parse(dt2.Rows[0][0].ToString());
  3321. }
  3322. int count3 = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateSlabSeq", new object[] { JudgeStoveNo, proPlanId, gxPlanNo }, this.ob);//情况作废表支材料号
  3323. int count2 = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.nodeBack", new object[] { JudgeStoveNo, ResultNo, 6, PlineCode, Seq, 0, 7, proPlanId, gxPlanNo, lotNo }, this.ob);
  3324. CoreClientParam ccp = new CoreClientParam();
  3325. ccp.ServerName = "com.steering.mes.zgmil.coup.FrmOffLine";
  3326. ccp.MethodName = "insertMatScrapBack";
  3327. ccp.ServerParams = new object[] { JudgeStoveNo, proPlanId, gxPlanNo, PlineCode, "7" };
  3328. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  3329. if (ccp.ReturnCode != -1)
  3330. { MessageUtil.ShowTips(ccp.ReturnInfo); }
  3331. ChangeGridColor();
  3332. PlanQuery();
  3333. }
  3334. else
  3335. {
  3336. switch (NodeShift)
  3337. {
  3338. case "0":
  3339. NodeShift = "白班";
  3340. break;
  3341. case "1":
  3342. NodeShift = "早班";
  3343. break;
  3344. case "2":
  3345. NodeShift = "中班";
  3346. break;
  3347. case "3":
  3348. NodeShift = "夜班";
  3349. break;
  3350. }
  3351. switch (NodeGroup)
  3352. {
  3353. case "1":
  3354. NodeGroup = "甲班";
  3355. break;
  3356. case "2":
  3357. NodeGroup = "乙班";
  3358. break;
  3359. case "3":
  3360. NodeGroup = "丙班";
  3361. break;
  3362. case "4":
  3363. NodeGroup = "丁班";
  3364. break;
  3365. }
  3366. switch (this.UserInfo.GetUserOrder())
  3367. {
  3368. case "0":
  3369. Shift = "白班";
  3370. break;
  3371. case "1":
  3372. Shift = "早班";
  3373. break;
  3374. case "2":
  3375. Shift = "中班";
  3376. break;
  3377. case "3":
  3378. Shift = "夜班";
  3379. break;
  3380. }
  3381. switch (this.UserInfo.GetUserGroup())
  3382. {
  3383. case "1":
  3384. Group = "甲班";
  3385. break;
  3386. case "2":
  3387. Group = "乙班";
  3388. break;
  3389. case "3":
  3390. Group = "丙班";
  3391. break;
  3392. case "4":
  3393. Group = "丁班";
  3394. break;
  3395. }
  3396. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(JudgeStoveNo) + "】已由" + NodeGroup + "," + NodeShift + "结炉,当班不能结炉回退");
  3397. return;
  3398. }
  3399. }
  3400. }
  3401. private void ChangeShiftBack()
  3402. {
  3403. if (string.IsNullOrEmpty(this.ActiveJUDGE_STOVE_NO))
  3404. {
  3405. MessageBox.Show("您未选择任何计划,不允许进行交班回退操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3406. return;
  3407. }
  3408. UltraGridRow ugr_plan = this.ultraGridPlan.ActiveRow;
  3409. string Status = ugr_plan.Cells["IS_START"].Value.ToString();
  3410. if (Status == "已完成分切")
  3411. {
  3412. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】已完成分切操作,不允许进行交班取消!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3413. return;
  3414. }
  3415. if (Status == "未开始分切")
  3416. {
  3417. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】未开始分切操作,不允许进行交班取消!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3418. return;
  3419. }
  3420. string Shift = UserInfo.GetUserOrder();
  3421. string Group = UserInfo.GetUserGroup();
  3422. NativeMethodNew na = new NativeMethodNew(this.ob);
  3423. if (na.ChangeShiftBackCheck(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "0") || na.ChangeShiftBackCheckelse(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "0", proPlanId, gxPlanNo))
  3424. {
  3425. int count = na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, proPlanId, gxPlanNo, this.PlineCode, Shift, Group, 6);
  3426. //na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "2");
  3427. //if (this.PlineCode.Equals("C010"))
  3428. //{
  3429. // na.ChangeShiftBack(this.ActiveJUDGE_STOVE_NO, this.ActiveResultNo, this.PlineCode, Shift, Group, 6, "3");
  3430. //}
  3431. if (count < 1)
  3432. {
  3433. //MessageBox.Show("交班回退失败, 请确认后重新操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3434. }
  3435. }
  3436. else
  3437. {
  3438. switch (Shift)
  3439. {
  3440. case "1":
  3441. Shift = "早班";
  3442. break;
  3443. case "2":
  3444. Shift = "中班";
  3445. break;
  3446. case "3":
  3447. Shift = "夜班";
  3448. break;
  3449. }
  3450. switch (Group)
  3451. {
  3452. case "1":
  3453. Group = "甲班";
  3454. break;
  3455. case "2":
  3456. Group = "乙班";
  3457. break;
  3458. case "3":
  3459. Group = "丙班";
  3460. break;
  3461. case "4":
  3462. Group = "丁班";
  3463. break;
  3464. }
  3465. MessageBox.Show("炉号【" + BaseMethod.getJudgeStoveNo(ActiveJUDGE_STOVE_NO) + "】未在" + Group + "," + Shift + "进行交班操作,不允许进行交班取消操作");
  3466. return;
  3467. }
  3468. GetSawResultEdit(ActiveJUDGE_STOVE_NO);//分切计划
  3469. GetMatRack(ActiveJUDGE_STOVE_NO);
  3470. ChangeGridColor();
  3471. }
  3472. private void PrintResult()
  3473. {
  3474. DateTime SeverTime = NativeMethod.GetSeverTime(this.ob);
  3475. string Time = SeverTime.ToLongTimeString();
  3476. string StartTime = "";
  3477. string EndTime = "";
  3478. string strurl = "";
  3479. if (this.PlineCode.Equals("C009"))
  3480. {
  3481. if (this.TestMethod.Contains("2"))
  3482. {
  3483. MessageBox.Show("您的操作台不允许保存原始记录。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3484. return;
  3485. }
  3486. }
  3487. switch (PlineCode)
  3488. {
  3489. case "C008": //250
  3490. Time = Time.Replace(":", "");
  3491. if (int.Parse(Time) < 070000)
  3492. {
  3493. StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00";
  3494. EndTime = SeverTime.ToShortDateString() + " 07:00:00";
  3495. string Date2 = SeverTime.ToString("yyyy-MM-dd");
  3496. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult250.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3497. }
  3498. else
  3499. {
  3500. StartTime = SeverTime.ToShortDateString() + " 07:00:00";
  3501. EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00";
  3502. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult250.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3503. }
  3504. break;
  3505. case "C009": //258
  3506. //晚班
  3507. Time = Time.Replace(":", "");
  3508. if (int.Parse(Time) < 070000)
  3509. {
  3510. StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00";
  3511. EndTime = SeverTime.ToShortDateString() + " 07:00:00";
  3512. string Date2 = SeverTime.ToString("yyyy-MM-dd");
  3513. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult258.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3514. }
  3515. else
  3516. {
  3517. StartTime = SeverTime.ToShortDateString() + " 07:00:00";
  3518. EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00";
  3519. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult258.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3520. }
  3521. break;
  3522. case "C072": //508
  3523. //晚班
  3524. Time = Time.Replace(":", "");
  3525. if (int.Parse(Time) < 070000)
  3526. {
  3527. StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00";
  3528. EndTime = SeverTime.ToShortDateString() + " 07:00:00";
  3529. string Date2 = SeverTime.ToString("yyyy-MM-dd");
  3530. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult508.cpt&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3531. }
  3532. else
  3533. {
  3534. StartTime = SeverTime.ToShortDateString() + " 07:00:00";
  3535. EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00";
  3536. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult508.cpt&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3537. }
  3538. break;
  3539. case "C010": //168
  3540. Time = Time.Replace(":", "");
  3541. if (int.Parse(Time) < 070000)
  3542. {
  3543. StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00";
  3544. EndTime = SeverTime.ToShortDateString() + " 07:00:00";
  3545. string Date2 = SeverTime.ToString("yyyy-MM-dd");
  3546. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult168.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3547. }
  3548. else
  3549. {
  3550. StartTime = SeverTime.ToShortDateString() + " 07:00:00";
  3551. EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00";
  3552. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult168.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3553. }
  3554. break;
  3555. case "C012": //Arssel
  3556. break;
  3557. case "C017": //460
  3558. Time = Time.Replace(":", "");
  3559. if (int.Parse(Time) < 070000)
  3560. {
  3561. StartTime = SeverTime.AddDays(-1).ToShortDateString() + " 07:00:00";
  3562. EndTime = SeverTime.ToShortDateString() + " 07:00:00";
  3563. string Date2 = SeverTime.ToString("yyyy-MM-dd");
  3564. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult460.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3565. }
  3566. else
  3567. {
  3568. StartTime = SeverTime.ToShortDateString() + " 07:00:00";
  3569. EndTime = SeverTime.AddDays(1).ToShortDateString() + " 07:00:00";
  3570. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMilSawResult460.cpt&format=pdf&SHIFT=" + Shift + "&GROUP=" + Group + "&DATE=" + StartTime + "&PLINECODE=" + PlineCode + "&DATE2=" + EndTime + "&USERID=" + _UserID;
  3571. }
  3572. break;
  3573. }
  3574. FrmExcel fre = new FrmExcel(this.ob, strurl);
  3575. // FrmRepExcel fre = new FrmRepExcel(this.ob, strurl);
  3576. fre.AutoSize = true;
  3577. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  3578. fre.WindowState = FormWindowState.Maximized;
  3579. fre.Show();
  3580. }
  3581. /// <summary>
  3582. /// 计划表ROW点击变换判断
  3583. /// </summary>
  3584. /// <param name="sender"></param>
  3585. /// <param name="e"></param>
  3586. private void ultraGridPlan_BeforeRowActivate(object sender, RowEventArgs e)
  3587. {
  3588. if (this.pipeSawResult1.IsCellSelect == true)
  3589. {
  3590. NativeMethodNew na = new NativeMethodNew(this.ob);
  3591. if (!na.isBegineNode(ActiveJUDGE_STOVE_NO, 6))
  3592. {
  3593. this.pipeSawResult1.IsCellSelect = false;
  3594. return;
  3595. }
  3596. //if (MessageBox.Show("提示:探伤实绩可能已修改,是否保存", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
  3597. //{
  3598. this.pipeSawResult1.IsCellSelect = false;
  3599. //保存探伤实绩
  3600. SawResultSave();
  3601. //}
  3602. //else
  3603. //{
  3604. this.pipeSawResult1.IsCellSelect = false;
  3605. foreach (UltraGridRow ugr in this.ultraGridPlan.Rows)
  3606. {
  3607. if (ugr.Cells["JUDGE_STOVE_NO"].Value.ToString() == ActiveJUDGE_STOVE_NO)
  3608. {
  3609. this.ultraGridPlan.ActiveRow = ugr;
  3610. }
  3611. }
  3612. return;
  3613. //}
  3614. }
  3615. }
  3616. /// <summary>
  3617. /// 排数据保存
  3618. /// </summary>
  3619. /// <param name="SawNo 锯片号:1-1号锯 2-2号锯 3-3号锯 4-4号锯"></param>
  3620. public void RowResultSave(int SawNo)
  3621. {
  3622. MilSawResultDeatilEntity MilSawResultDeatilSave = new MilSawResultDeatilEntity();
  3623. UltraGridRow ugr = ultraGridPlan.ActiveRow;
  3624. UltraGridRow ugr1 = this.pipeSawResult1.UltraGrid2.Rows[0];
  3625. if (ugr != null)
  3626. {
  3627. MilSawResultDeatilSave.JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  3628. if (SawNo == 1)
  3629. {
  3630. //排号
  3631. MilSawResultDeatilSave.RowNo = ugr1.Cells["ROW_NO1"].ToString();
  3632. //锯号1
  3633. MilSawResultDeatilSave.SawNo = ugr1.Cells["SAW_NO11"].ToString();
  3634. //锯号2
  3635. MilSawResultDeatilSave.SawNoN = ugr1.Cells["SAW_NO12"].ToString();
  3636. //切头
  3637. MilSawResultDeatilSave.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString();
  3638. //切尾
  3639. MilSawResultDeatilSave.CutTrailLength = ugr1.Cells["CUT_HEAD_LENGTH1"].ToString();
  3640. //定尺
  3641. MilSawResultDeatilSave.OrderLength = ugr1.Cells["ORDER_LENGTH1"].ToString();
  3642. //切头总长度 = 切头 * 排支数
  3643. MilSawResultDeatilSave.CutHeadLengthTotal = ugr1.Cells["CUT_HEAD_LENGTH_TOTAL1"].ToString();
  3644. //切尾总长度 = 切尾 * 排支数
  3645. MilSawResultDeatilSave.CutTrailLengthTotal = ugr1.Cells["CUT_TRAIL_LENGTH_TOTAL1"].ToString();
  3646. //切头总重量
  3647. MilSawResultDeatilSave.CutHeadHeightTotal = ugr1.Cells["CUT_HEAD_HEIGTH_TOTAL1"].ToString();
  3648. //切尾总重量
  3649. MilSawResultDeatilSave.CutTrailHeigthTotal = ugr1.Cells["CUT_TRAIL_HEIGTH_TOTAL1"].ToString();
  3650. }
  3651. else
  3652. {
  3653. //排号
  3654. MilSawResultDeatilSave.RowNo = ugr1.Cells["ROW_NO2"].ToString();
  3655. //锯号1
  3656. MilSawResultDeatilSave.SawNo = ugr1.Cells["SAW_NO21"].ToString();
  3657. //锯号2
  3658. MilSawResultDeatilSave.SawNoN = ugr1.Cells["SAW_NO22"].ToString();
  3659. //切头
  3660. MilSawResultDeatilSave.CutHeadLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString();
  3661. //切尾
  3662. MilSawResultDeatilSave.CutTrailLength = ugr1.Cells["CUT_HEAD_LENGTH2"].ToString();
  3663. //定尺
  3664. MilSawResultDeatilSave.OrderLength = ugr1.Cells["ORDER_LENGTH2"].ToString();
  3665. //切头总长度 = 切头 * 排支数
  3666. MilSawResultDeatilSave.CutHeadLengthTotal = ugr1.Cells["CUT_HEAD_LENGTH_TOTAL2"].ToString();
  3667. //切尾总长度 = 切尾 * 排支数
  3668. MilSawResultDeatilSave.CutTrailLengthTotal = ugr1.Cells["CUT_TRAIL_LENGTH_TOTAL2"].ToString();
  3669. //切头总重量
  3670. MilSawResultDeatilSave.CutHeadHeightTotal = ugr1.Cells["CUT_HEAD_HEIGTH_TOTAL2"].ToString();
  3671. //切尾总重量
  3672. MilSawResultDeatilSave.CutTrailHeigthTotal = ugr1.Cells["CUT_TRAIL_HEIGTH_TOTAL2"].ToString();
  3673. }
  3674. MilSawResultDeatilSave.ColUser = UserInfo.GetUserName();
  3675. MilSawResultDeatilSave.ColGroup = UserInfo.GetUserGroup();
  3676. MilSawResultDeatilSave.ColShift = UserInfo.GetUserOrder();
  3677. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.PipeSawResult.updateRowResult", new object[] { MilSawResultDeatilSave }, this.ob);
  3678. }
  3679. }
  3680. #endregion
  3681. //#region 控件赋值
  3682. /// <summary>
  3683. /// 轧制信息Grid赋值
  3684. /// </summary>
  3685. /// <param name="dt">轧制计划信息datatable</param>
  3686. public void GridEdit(DataTable dt)
  3687. {
  3688. if (dt.Rows.Count > 0)
  3689. {
  3690. DataRow row1 = dt.Rows[0];
  3691. //熔炼炉号
  3692. this.rollingInfomation1.Value.StoveNo = row1["stove_no"].ToString();
  3693. //炉号
  3694. this.rollingInfomation1.Value.JudgeStoveNo = BaseMethod.getJudgeStoveNo(row1["judge_stove_no"].ToString());
  3695. //生产批号
  3696. this.rollingInfomation1.Value.LotNo = row1["lot_no"].ToString();
  3697. //工序合同号
  3698. this.rollingInfomation1.Value.ContractNo = row1["contract_no"].ToString();
  3699. //执行工艺号
  3700. this.rollingInfomation1.Value.ImpProcess = row1["imp_process"].ToString();
  3701. //执行工艺号路径
  3702. this.rollingInfomation1.Value.ImpProcessPath = row1["imp_process_path"].ToString();
  3703. //产线代码
  3704. this.rollingInfomation1.Value.PlineCode = row1["pline_code"].ToString();
  3705. //状态
  3706. this.rollingInfomation1.Value.Status = row1["STATUS"].ToString();
  3707. //监制
  3708. this.rollingInfomation1.Value.Producer = row1["producer"].ToString();
  3709. //工艺状态
  3710. this.rollingInfomation1.Value.ProcessStatus = row1["process_status"].ToString();
  3711. //单倍长
  3712. this.rollingInfomation1.Value.DbLength = row1["db_length"].ToString();
  3713. //单倍重
  3714. this.rollingInfomation1.Value.DbHeight = row1["db_height"].ToString();
  3715. //轧制长度
  3716. this.rollingInfomation1.Value.RollLength = row1["roll_length"].ToString();
  3717. //分切数
  3718. this.rollingInfomation1.Value.SawNum = row1["saw_num"].ToString();
  3719. //目标长度
  3720. this.rollingInfomation1.Value.TargetLength = row1["target_length"].ToString();
  3721. //最终用户
  3722. this.rollingInfomation1.Value.FinishUser = row1["finish_user"].ToString();
  3723. //目标库
  3724. this.rollingInfomation1.Value.TargetLiabrary = row1["target_liabrary"].ToString();
  3725. //品种
  3726. this.rollingInfomation1.Value.Varieties = row1["varieties"].ToString();
  3727. //成品规格
  3728. this.rollingInfomation1.Value.PipeSize = row1["pipe_size"].ToString();
  3729. //扣型
  3730. this.rollingInfomation1.Value.BuckleType = row1["buckle_type"].ToString();
  3731. //长度范围
  3732. this.rollingInfomation1.Value.LengthRange = row1["length_range"].ToString();
  3733. //轧管判定标准
  3734. this.rollingInfomation1.Value.RollStandrad = row1["roll_standrad"].ToString();
  3735. //断面
  3736. this.rollingInfomation1.Value.PipeSection = row1["pipe_section"].ToString();
  3737. //钢种代码
  3738. this.rollingInfomation1.Value.SteelCode = row1["steelcode"].ToString();
  3739. //钢种名称
  3740. this.rollingInfomation1.Value.SteelName = row1["steelname"].ToString();
  3741. //钢级代码
  3742. this.rollingInfomation1.Value.GradeCode = row1["gradecode"].ToString();
  3743. //钢级名称
  3744. this.rollingInfomation1.Value.GradeName = row1["gradename"].ToString();
  3745. //炼钢判定标准
  3746. this.rollingInfomation1.Value.SteelStandrad = row1["steel_standrad"].ToString();
  3747. //去向
  3748. this.rollingInfomation1.Value.Target = row1["target"].ToString();
  3749. //支
  3750. this.rollingInfomation1.Value.PlanNum = row1["BRANCH"].ToString();
  3751. //吨
  3752. this.rollingInfomation1.Value.PlanTon = row1["TON"].ToString();
  3753. //切损去向
  3754. this.rollingInfomation1.Value.CutTarget = row1["cut_target"].ToString();
  3755. //切损长度
  3756. this.rollingInfomation1.Value.CutLength = row1["cut_length"].ToString();
  3757. //切损重量
  3758. this.rollingInfomation1.Value.CutHeight = row1["CUT_WEIGHT"].ToString();
  3759. //倍尺数
  3760. this.rollingInfomation1.Value.DbNum = row1["DB_NUM"].ToString();
  3761. //标准类别代码
  3762. this.rollingInfomation1.Value.StdStyle = row1["STD_STYLE"].ToString();
  3763. //标准类别描述
  3764. this.rollingInfomation1.Value.StdStyleDesc = row1["STD_STYLE_DESC"].ToString();
  3765. //成品备注
  3766. this.rollingInfomation1.Value.ReMark = row1["ReMark"].ToString();
  3767. this.rollingInfomation1.UpdateData();
  3768. }
  3769. }
  3770. /// <summary>
  3771. /// 流通卡赋值
  3772. /// </summary>
  3773. /// <param name="dt"></param>
  3774. public void RollingCardEditGrid(DataTable dt, string heatno)
  3775. {
  3776. if (dt.Rows.Count > 0)
  3777. {
  3778. //上料切前剔除支数
  3779. this.rollingCard1.Value.FeedScrapNum = dt.Rows[0]["SCRAP_FEED"].ToString();
  3780. //上料切前合格支数
  3781. this.rollingCard1.Value.FeedQualifiedNum = dt.Rows[0]["QUALIFIED_FEED"].ToString();
  3782. //上料剔除支数
  3783. this.rollingCard1.Value.FeedScrapDBNum = dt.Rows[0]["SCRAP_DBFEED"].ToString();
  3784. //上料合格支数
  3785. this.rollingCard1.Value.FeedQualifiedDBNum = dt.Rows[0]["QUALIFIED_DBFEED"].ToString();
  3786. //加热炉剔除支数
  3787. this.rollingCard1.Value.FurScrapNum = dt.Rows[0]["SCRAP_FUR"].ToString();
  3788. //加热炉合格支数
  3789. this.rollingCard1.Value.FurQualifiedNum = dt.Rows[0]["QUALIFIED_FUR"].ToString();
  3790. //穿孔剔除支数
  3791. this.rollingCard1.Value.PerScrapNum = dt.Rows[0]["SCRAP_PER"].ToString();
  3792. //穿孔合格支数
  3793. this.rollingCard1.Value.PerQualifiedNum = dt.Rows[0]["QUALIFIED_PER"].ToString();
  3794. //连轧剔除支数
  3795. this.rollingCard1.Value.RollingScrapNum = dt.Rows[0]["SCRAP_ROLLING"].ToString();
  3796. //连轧合格支数
  3797. this.rollingCard1.Value.RollingQualifiedNum = dt.Rows[0]["QUALIFIED_ROLLING"].ToString();
  3798. //再加热炉剔除支数
  3799. this.rollingCard1.Value.RefurScrapNum = dt.Rows[0]["SCRAP_REFUR"].ToString();
  3800. //再加热炉合格支数
  3801. this.rollingCard1.Value.RefurQualifiedNum = dt.Rows[0]["QUALIFIED_REFUR"].ToString();
  3802. //定径剔除支数
  3803. this.rollingCard1.Value.SizingScrapNum = dt.Rows[0]["SCRAP_SIZING"].ToString();
  3804. //定径合格支数
  3805. this.rollingCard1.Value.SizingQualifiedNum = dt.Rows[0]["QUALIFIED_SIZING"].ToString();
  3806. //分切前剔除支数
  3807. this.rollingCard1.Value.SawScrapNumBE = dt.Rows[0]["SCRAP_SAW_BE"].ToString();
  3808. //分切前合格支数
  3809. this.rollingCard1.Value.SawQualifiedNumBE = dt.Rows[0]["QUALIFIED_SAW_BE"].ToString();
  3810. //分切剔除支数
  3811. this.rollingCard1.Value.SawScrapNum = dt.Rows[0]["SCRAP_SAW"].ToString();
  3812. //分切合格支数
  3813. this.rollingCard1.Value.SawQualifiedNum = dt.Rows[0]["QUALIFIED_SAW"].ToString();
  3814. //矫直剔除支数
  3815. this.rollingCard1.Value.StraightScrapNum = dt.Rows[0]["SCRAP_STRAIGHT"].ToString();
  3816. //矫直合格支数
  3817. this.rollingCard1.Value.StraightQualifiedNum = dt.Rows[0]["QUALIFIED_STRAIGHT"].ToString();
  3818. //矫直下线支数
  3819. this.rollingCard1.Value.OfflineStraight = dt.Rows[0]["OFFLINE_STRAIGHT"].ToString();
  3820. //矫直返线支数
  3821. this.rollingCard1.Value.BacklineStraight = dt.Rows[0]["BACKLINE_STRAIGHT"].ToString();
  3822. //探伤剔除支数
  3823. this.rollingCard1.Value.TestingScrapNum = dt.Rows[0]["SCRAP_TESTING"].ToString();
  3824. //探伤合格支数
  3825. this.rollingCard1.Value.TestingQualifiedNum = dt.Rows[0]["QUALIFIED_TESTING"].ToString();
  3826. NativeMethodNew na = new NativeMethodNew(this.ob);
  3827. if (na.isBegineNode(heatno, 8) || na.isBegineNode(heatno, 9) || na.isBegineNode(heatno, 10))
  3828. {
  3829. //探伤下线支数
  3830. this.rollingCard1.Value.OfflineTesting = dt.Rows[0]["OFFLINE_TESTING"].ToString();
  3831. this.rollingCard1.Value.BacklineTesting = dt.Rows[0]["BACKLINE_TESTING"].ToString();
  3832. }
  3833. else
  3834. {
  3835. if (dt.Rows[0]["OFFLINE_TESTING"].ToString() == "0")
  3836. {
  3837. this.rollingCard1.Value.OfflineTesting = "";
  3838. this.rollingCard1.Value.BacklineTesting = "";
  3839. }
  3840. else
  3841. {
  3842. //探伤下线支数
  3843. this.rollingCard1.Value.OfflineTesting = dt.Rows[0]["OFFLINE_TESTING"].ToString();
  3844. this.rollingCard1.Value.BacklineTesting = dt.Rows[0]["BACKLINE_TESTING"].ToString();
  3845. }
  3846. }
  3847. this.rollingCard1.UpdateData();
  3848. }
  3849. else
  3850. {
  3851. this.rollingCard1.ClearData();
  3852. }
  3853. }
  3854. /// <summary>
  3855. /// 分切计划信息(实绩)
  3856. /// </summary>
  3857. /// <param name="str"></param>
  3858. public void GetSawResultEdit(string str)
  3859. {
  3860. MilSawResultEntity milsawresult = new MilSawResultEntity();
  3861. //查询分切实绩主表
  3862. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawResult", new object[] { str, proPlanId, gxPlanNo }, this.ob);
  3863. if (dt.Rows.Count > 0)
  3864. {
  3865. //探伤卡赋值
  3866. milsawresult = NativeMethod.GetTableToEntity(dt, milsawresult);
  3867. this.pipeSawResult1.MilSawResult = milsawresult;
  3868. //this.crackDetectionResult1.UpdateData();
  3869. }
  3870. else
  3871. {
  3872. this.pipeSawResult1.Clear();
  3873. milsawresult.Clear();
  3874. //this.crackDetectionResult1.milet = milet;
  3875. //this.crackDetectionResult1.UpdateData();
  3876. // GridHelper.InitCardGrid(pipeSawResult1.PipeSawDataSource1,pipeSawResult1.UltraGrid2 );
  3877. }
  3878. }
  3879. /// <summary>
  3880. /// 主计划信息(七条)
  3881. /// </summary>
  3882. /// <param name="str"></param>
  3883. public void GetMilplanEdit(DataTable dtMP)
  3884. {
  3885. MilPlan milplan = new MilPlan();
  3886. if (dtMP.Rows.Count > 0)
  3887. {
  3888. milplan = NativeMethod.GetTableToEntity(dtMP, milplan);
  3889. }
  3890. SAW_NUM = Int16.Parse(string.IsNullOrEmpty(milplan.SawNum.ToString())?"0" : milplan.SawNum.ToString());
  3891. this.pipeSawResult1.MilPlan = milplan;
  3892. this.pipeSawResult1.UpdateDate_milplan();
  3893. }
  3894. /// <summary>
  3895. /// 快速分切
  3896. /// </summary>
  3897. public void pipsawfast()
  3898. {
  3899. if (doQueryJugeNoStaus(this.ultraGridPlan.ActiveRow.Cells["ID"].Value.ToString(), this.ultraGridPlan.ActiveRow.Cells["JUDGE_STOVE_NO"].Value.ToString(),PlineCode) != "0")
  3900. {
  3901. MessageBox.Show("该计划不是开始分切状态,不允许进行分切。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3902. return;
  3903. }
  3904. //if (userRoom == 2)
  3905. //{
  3906. // MessageBox.Show("该台不允许进行快速分切。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3907. // return;
  3908. //}
  3909. if (string.IsNullOrEmpty(MainPlan.JudgeStoveNo))
  3910. {
  3911. MessageBox.Show("您未选择任何生产计划,请确认后重新进行快速分切操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3912. return;
  3913. }
  3914. DataTable dtMP = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getSingleMainPlanForHeatNo", new object[] { MainPlan }, this.ob);
  3915. if (dtMP.Rows.Count > 0)
  3916. {
  3917. string PlinCode = dtMP.Rows[0]["PLINE_CODE"].ToString();
  3918. string HeatNo = dtMP.Rows[0]["JUDGE_STOVE_NO"].ToString();
  3919. string OrderLength = dtMP.Rows[0]["TARGET_LENGTH"].ToString();
  3920. string HeadLength = dtMP.Rows[0]["CUT_HEAD_LENGTHP"].ToString();
  3921. string TailLengeh = dtMP.Rows[0]["CUT_TRAIL_LENGTHP"].ToString();
  3922. string lotno = dtMP.Rows[0]["LOT_NO"].ToString();
  3923. string stoveno = dtMP.Rows[0]["STOVE_NO"].ToString();
  3924. string CUT_HEAD_LENGTHA = dtMP.Rows[0]["CUT_HEAD_LENGTHA"].ToString();
  3925. string CUT_TRAIL_LENGTHA = dtMP.Rows[0]["CUT_TRAIL_LENGTHA"].ToString();
  3926. string ORDER_LENGTHA = dtMP.Rows[0]["ORDER_LENGTHA"].ToString();
  3927. PipSawFast p1 = new PipSawFast(this.ob, PlinCode, HeatNo, proPlanId, gxPlanNo, OrderLength, HeadLength, TailLengeh, lotno, stoveno, SAW_NUM, CUT_HEAD_LENGTHA, CUT_TRAIL_LENGTHA, ORDER_LENGTHA);
  3928. p1.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
  3929. if (p1.ShowDialog() == DialogResult.OK)
  3930. {
  3931. GetMatRack(HeatNo);
  3932. ChangeGridColor();
  3933. GetSawResultEdit(HeatNo);//分切计划信息
  3934. }
  3935. }
  3936. }
  3937. public void colchang()
  3938. {
  3939. if (string.IsNullOrEmpty(ActiveJUDGE_STOVE_NO))
  3940. {
  3941. MessageBox.Show("您未选择任何住计划,不允许执行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3942. return;
  3943. }
  3944. DataTable dtResult = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.getPerResult", new object[] { ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  3945. DataTable dtFlag = ServerHelper.GetData("com.steering.mes.zgmil.coup.FrmStraighteningResult.GetSingleJRLResult", new object[] { ActiveJUDGE_STOVE_NO, proPlanId, gxPlanNo }, this.ob);
  3946. if (dtFlag.Rows.Count == 0)
  3947. {
  3948. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始分切,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3949. return;
  3950. }
  3951. if (string.IsNullOrEmpty(dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString()))
  3952. {
  3953. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始分切,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3954. return;
  3955. }
  3956. if (!dtFlag.Rows[0]["NODE_FUR_FLAG"].ToString().Equals("1"))
  3957. {
  3958. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】分切工序尚未结炉,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3959. return;
  3960. }
  3961. if (dtResult.Rows.Count == 0)
  3962. {
  3963. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3964. return;
  3965. }
  3966. if (string.IsNullOrEmpty(dtResult.Rows[0]["NODE_FUR_FLAG"].ToString()))
  3967. {
  3968. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】尚开始矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3969. return;
  3970. }
  3971. if (dtResult.Rows[0]["NODE_FUR_FLAG"].ToString().Equals("1"))
  3972. {
  3973. MessageBox.Show("炉号:【" + ActiveJUDGE_STOVE_NO + "】已完成矫直,不允许进行子管换台操作", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3974. return;
  3975. }
  3976. ColNoChanges col = new ColNoChanges(this.ob, "00", ActiveJUDGE_STOVE_NO, PlineCode, proPlanId, gxPlanNo);
  3977. if (col.ShowDialog() == DialogResult.OK)
  3978. {
  3979. this.GetMatRack(ActiveJUDGE_STOVE_NO);
  3980. ChangeGridColor();
  3981. }
  3982. }
  3983. #region
  3984. /// <summary>
  3985. /// 分切计划信息
  3986. /// </summary>
  3987. /// <param name="dt"></param>
  3988. ////public void GetSawResultEdit(string str)
  3989. //{
  3990. // //查询分切实绩主表
  3991. // DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.GetSawResult", new object[] { str }, this.ob);
  3992. // if (dt.Rows.Count > 0)
  3993. // {
  3994. // //切头长度
  3995. // this.pipeSawResult1.Value.CutHeadLength = dt.Rows[0]["CUT_HEAD_LENGTH"].ToString();
  3996. // //切尾长度
  3997. // this.pipeSawResult1.Value.CutTrailLength = dt.Rows[0]["CUT_TRAIL_LENGTH"].ToString();
  3998. // //控制壁厚
  3999. // this.pipeSawResult1.Value.ColThick = dt.Rows[0]["COL_THICK"].ToString();
  4000. // //分切数
  4001. // this.pipeSawResult1.Value.CutNum = dt.Rows[0]["CUT_NUM"].ToString();
  4002. // //目标长度
  4003. // this.pipeSawResult1.Value.TargetLength = dt.Rows[0]["TARGET_LENGTH"].ToString();
  4004. // //切尾类型
  4005. // this.pipeSawResult1.Value.CutType = dt.Rows[0]["CUT_TYPE"].ToString();
  4006. // //切前剔除支数
  4007. // this.pipeSawResult1.Value.ScrapNum = dt.Rows[0]["SCRAP_NUM"].ToString();
  4008. // //切后剔除支数
  4009. // this.pipeSawResult1.Value.ScrapDbnum = dt.Rows[0]["SCRAP_DBNUM"].ToString();
  4010. // //合格支数
  4011. // this.pipeSawResult1.Value.CutNum = dt.Rows[0]["CUT_NUM"].ToString();
  4012. // //交接班支数
  4013. // this.pipeSawResult1.Value.ChangeNum = dt.Rows[0]["CHANGE_NUM"].ToString();
  4014. // //备注
  4015. // this.pipeSawResult1.Value.Remark = dt.Rows[0]["REMARK"].ToString();
  4016. // //开始时间
  4017. // this.pipeSawResult1.Value.StartTime = dt.Rows[0]["START_TIME"].ToString();
  4018. // //结束时间
  4019. // this.pipeSawResult1.Value.EndTime = dt.Rows[0]["ENDTIME"].ToString();
  4020. // this.pipeSawResult1.UpdateDate();
  4021. // }
  4022. //}
  4023. /// <summary>
  4024. /// 1号锯 每排指定锯切刀数
  4025. /// </summary>
  4026. public void SawCountEdit1()
  4027. {
  4028. }
  4029. /// <summary>
  4030. /// 2号锯 每排指定锯切刀数
  4031. /// </summary>
  4032. public void SawCountEdit2()
  4033. {
  4034. }
  4035. #endregion
  4036. /*
  4037. #region 信号处理
  4038. /// <summary>
  4039. /// 锯切信号处理
  4040. /// </summary>
  4041. /// <param name="Flag">0-切头信号 1-切尾信号 2-倍尺信号</param>
  4042. /// <param name="Length">长度</param>
  4043. public void GetCutSignal(int Flag, string SawNo, double Length)
  4044. {
  4045. switch (Flag)
  4046. {
  4047. case 0:
  4048. CutHeadSignal(SawNo, Length);
  4049. break;
  4050. case 1:
  4051. CutTrailSignal(SawNo, Length);
  4052. break;
  4053. default:
  4054. CutTrailSignal(SawNo, Length);
  4055. break;
  4056. }
  4057. }
  4058. /// <summary>
  4059. /// 切头信号
  4060. /// </summary>
  4061. /// <param name="Length"> 切头长度</param>
  4062. /// <param name="SawNo">锯片号</param>
  4063. public void CutHeadSignal(string SawNo, double Length)
  4064. {
  4065. //判断当前是否有正在分切的炉次
  4066. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.PipeSawResult.getStartSawQuery", new object[] { }, this.ob);
  4067. UltraGridRow ugr = this.pipeSawResult1.UltraGrid2.Rows[0];
  4068. if (dt.Rows.Count == 0)
  4069. {
  4070. MessageBox.Show("当前没有正在分切的炉次计划,请点击下一炉开始分切,并点击手动切头", "提示:", MessageBoxButtons.OK,MessageBoxIcon.Warning);
  4071. milSawResultDeatilEntity.CutHeadLength = Length.ToString();
  4072. return;
  4073. }
  4074. //判断当前锯片需锯切刀数是否完成
  4075. if (IsCutDown("1"))
  4076. {
  4077. //锯切完成 --- 更新锯切刀数 赋值切头长度 排支数 清空切尾长度 切尾总长度
  4078. this.pipeSawResult1.Value.CutHeadLength = Length;
  4079. }
  4080. else
  4081. {
  4082. int CutHeadCount = Convert.ToInt32(ugr.Cells["CUT_HEAD_COUNT1"].Value.ToString());
  4083. if (CutHeadCount < 1)
  4084. {
  4085. MessageBox.Show("当前锯片切头刀数为0,不能切头!!!");
  4086. return;
  4087. }
  4088. }
  4089. //当前排支数
  4090. this.pipeSawResult1.ValueDeatil.RowCount = RowNum;
  4091. //得到排号
  4092. int RowNo = 0;
  4093. // DataTable dt1 = ServerHelper.GetData();
  4094. if (dt.Rows.Count > 0)
  4095. {
  4096. RowNo = int.Parse(dt.Rows[0][0].ToString());
  4097. }
  4098. pipeSawResult1.ValueDeatil.RowNo = RowNo;
  4099. this.pipeSawResult1.Value.CutHeadLength = Length;
  4100. }
  4101. /// <summary>
  4102. /// 切头信号确认
  4103. /// </summary>
  4104. /// <param name="sender"></param>
  4105. /// <param name="e"></param>
  4106. public void UltraGrid3_ClickCellButton(object sender, CellEventArgs e)
  4107. {
  4108. string JudgeStoveNo = "";
  4109. UltraGridRow ugr = this.ultraGridPlan.ActiveRow;
  4110. if (ugr != null)
  4111. {
  4112. JudgeStoveNo = ugr.Cells["JUDGE_STOVE_NO"].Value.ToString();
  4113. }
  4114. //int count = 0;
  4115. switch (e.Cell.Column.Key)
  4116. {
  4117. case "btnCUT_HEAD1":
  4118. RowResultAdd(1);
  4119. break;
  4120. case "btnCUT_HEAD2":
  4121. RowResultAdd(2);
  4122. break;
  4123. }
  4124. }
  4125. /// <summary>
  4126. /// 切尾信号
  4127. /// </summary>
  4128. /// <param name="Length">切尾长度</param>
  4129. /// <param name="SawNo">锯片号</param>
  4130. public void CutTrailSignal(string SawNo, double Length)
  4131. {
  4132. //判断切头信号是否已接收 是-继续 否-手动切头后继续手动切尾
  4133. if (SawNo == "1")
  4134. {
  4135. }
  4136. else if (SawNo == "2")
  4137. {
  4138. }
  4139. }
  4140. /// <summary>
  4141. /// 定尺信号
  4142. /// </summary>
  4143. /// <param name="Length">定尺长度</param>
  4144. /// <param name="SawNo">锯片号</param>
  4145. public void CutOrderSignal(string SawNo, double Length)
  4146. {
  4147. //判断切头信号是否已接收 是-继续 否-手动切头后继续手动切定尺
  4148. if (SawNo == "1")
  4149. {
  4150. }
  4151. else if (SawNo == "2")
  4152. {
  4153. }
  4154. }
  4155. /// <summary>
  4156. /// 当前排 锯切是否完成
  4157. /// </summary>
  4158. /// <param name="SawNo">锯片号</param>
  4159. /// <returns>ture 完成 false 未完成</returns>
  4160. public bool IsCutDown(string SawNo)
  4161. {
  4162. UltraGridRow ugr = this.pipeSawResult1.UltraGrid2.Rows[0];
  4163. int CutHeadCount;
  4164. int CutTrailCount;
  4165. int CutOrderCount;
  4166. //1号锯片
  4167. if (SawNo == "1")
  4168. {
  4169. CutHeadCount = int.Parse(ugr.Cells["CUT_HEAD_COUNT1"].Value.ToString());
  4170. CutTrailCount = int.Parse(ugr.Cells["CUT_TRAIL_COUNT1"].Value.ToString());
  4171. CutOrderCount = int.Parse(ugr.Cells["CUT_ORDER_COUNT1"].Value.ToString());
  4172. }
  4173. //2号锯片
  4174. else
  4175. {
  4176. CutHeadCount = int.Parse(ugr.Cells["CUT_HEAD_COUNT2"].Value.ToString());
  4177. CutTrailCount = int.Parse(ugr.Cells["CUT_TRAIL_COUNT2"].Value.ToString());
  4178. CutOrderCount = int.Parse(ugr.Cells["CUT_ORDER_COUNT2"].Value.ToString());
  4179. }
  4180. if (CutHeadCount == 0 && CutTrailCount == 0 && CutOrderCount == 0)
  4181. {
  4182. return true;
  4183. }
  4184. else
  4185. {
  4186. return false;
  4187. }
  4188. }
  4189. /// <summary>
  4190. /// 修改锯切刀数
  4191. /// </summary>
  4192. //public void UpdateSawCount()
  4193. //{
  4194. // FrmPipeSawStart frmSaw = new FrmPipeSawStart(userRoom, SawNum, 1, RowNum);
  4195. // frmSaw.ShowDialog();
  4196. // if (frmSaw.ShowDialog == DialogResult.OK)
  4197. // {
  4198. // Flag = frmSaw.Flag;
  4199. // sawCount1.CutHead = frmSaw.sawCount1.CutHeadCount;
  4200. // sawCount1.CutTrail = frmSaw.sawCount1.CutTrailCount;
  4201. // sawCount1.CutOrder = frmSaw.sawCount1.CutOrderCount;
  4202. // sawCount2.CutHead = frmSaw.sawCount2.CutHeadCount;
  4203. // sawCount2.CutTrail = frmSaw.sawCount2.CutTrailCount;
  4204. // sawCount2.CutOrder = frmSaw.sawCount2.CutOrderCount;
  4205. // frmSaw.Close();
  4206. // if (Flag == 1)
  4207. // {
  4208. // return;
  4209. // }
  4210. // }
  4211. // milSawResultEntity.CutHeadCount1 = sawCount1.CutHead;
  4212. // milSawResultEntity.CutTrailCount1 = sawCount1.CutTrail;
  4213. // milSawResultEntity.CutOrderCount1 = sawCount1.CutOrder;
  4214. // this.pipeSawResult1.UpdateCutNum1();
  4215. // milSawResultEntity.CutHeadCount2 = sawCount2.CutHead;
  4216. // milSawResultEntity.CutTrailCount2 = sawCount2.CutTrail;
  4217. // milSawResultEntity.CutOrderCount2 = sawCount2.CutOrder;
  4218. // this.pipeSawResult1.UpdateCutNum2();
  4219. //}
  4220. #endregion
  4221. #endregion
  4222. */
  4223. }
  4224. }