SAPDataLogicPartial.cs 254 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896
  1. 
  2. using Dongke.IBOSS.PRD.Basics.BaseResources;
  3. using Dongke.IBOSS.PRD.Basics.DataAccess;
  4. using Dongke.IBOSS.PRD.Basics.Library;
  5. using Dongke.IBOSS.PRD.Service.WMSDataService;
  6. using Dongke.IBOSS.PRD.WCF.DataModels;
  7. using Newtonsoft.Json.Linq;
  8. using Oracle.ManagedDataAccess.Client;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. using System.IO;
  13. using System.Linq;
  14. using System.Net;
  15. using System.Reflection;
  16. using System.Text;
  17. using System.Threading;
  18. namespace Dongke.IBOSS.PRD.Service.SAPHegiiDataService
  19. {
  20. public partial class SAPDataLogic
  21. {
  22. #region 跨车间作业
  23. /// <summary>
  24. /// 同步SAP数据(自动)
  25. /// </summary>
  26. /// <param name="date"></param>
  27. public static void CrossWorkshopToSAP(DateTime date, DateTime ndate)
  28. {
  29. IDBTransaction oracleConn = null;
  30. ServiceResultEntity sre = new ServiceResultEntity();
  31. OracleParameter[] paras = null;
  32. int logid = 0;
  33. string message = string.Empty;
  34. string sqlString = string.Empty;
  35. try
  36. {
  37. #region 生成日志
  38. paras = new OracleParameter[]
  39. {
  40. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  41. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  42. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  43. };
  44. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  45. DataSet ds = oracleConn.ExecStoredProcedure("pro_sap_hegii_workdata_kcjzy", paras);
  46. int.TryParse(paras[1].Value + "", out logid);
  47. message = paras[2].Value + "";
  48. oracleConn.Commit();
  49. #endregion
  50. #region 同步SAP
  51. // 手动推
  52. //logid = 28;
  53. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  54. sqlString = @"
  55. SELECT TO_CHAR(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
  56. TO_CHAR(B.EXECUTEDATEEND - 1 / 24 / 60 / 60, 'yyyymmddhh24miss') AS ZYWJS,
  57. TO_CHAR(SYSDATE, 'yyyymmddhh24miss') AS ZMONT,
  58. A.WORKCODE AS WERKS,
  59. A.SAPCODE AS MATNR,
  60. A.GOODSCODE AS GROES,
  61. A.WORKSHOP AS ZSCCJ,
  62. A.WORKSHOP AS ZSSCJ,
  63. A.DATACODE AS ZJDNU,
  64. A.ITEM AS ZZYLX,
  65. A.NUM AS MENGE,
  66. 'T' AS ZSCS,
  67. CASE WHEN A.TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
  68. '' AS ZTYPE1,
  69. '' AS ZMSG1
  70. FROM TSAP_HEGII_WORKDATA_KCJZY A
  71. INNER JOIN TSAP_HEGII_DATALOG_KCJZY B
  72. ON B.LOGID = A.LOGID
  73. WHERE A.LOGID = :LOGID ";
  74. paras = new OracleParameter[]
  75. {
  76. new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
  77. };
  78. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  79. //sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  80. //string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  81. if (workData != null && workData.Rows.Count > 0)
  82. {
  83. string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
  84. // 配置文件
  85. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  86. string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
  87. // 测试
  88. //string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
  89. // 正式
  90. //string url033 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM033";
  91. string ztype, msg = string.Empty;
  92. try
  93. {
  94. string result = PostData(url033, postString, "POST");
  95. ztype = JObject.Parse(result)["ZTYPE"].ToString();
  96. msg = JObject.Parse(result)["ZMSG"].ToString();
  97. }
  98. catch (Exception ex)
  99. {
  100. ztype = "E";
  101. msg = ex.Message;
  102. }
  103. sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
  104. paras = new OracleParameter[]
  105. {
  106. new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  107. new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  108. new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
  109. };
  110. oracleConn.ExecuteNonQuery(sqlString, paras);
  111. oracleConn.Commit();
  112. }
  113. #endregion
  114. }
  115. catch (Exception ex)
  116. {
  117. OutputLog.TraceLog(LogPriority.Error,
  118. "CrossWorkshopToSAP",
  119. "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  120. ex.ToString(),
  121. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  122. }
  123. finally
  124. {
  125. if (oracleConn != null)
  126. {
  127. oracleConn.Close();
  128. }
  129. }
  130. }
  131. public static void CrossWorkshopToSAP_test(DateTime date, DateTime ndate)
  132. {
  133. IDBTransaction oracleConn = null;
  134. ServiceResultEntity sre = new ServiceResultEntity();
  135. int logid = 0;
  136. string message = string.Empty;
  137. string sqlString = string.Empty;
  138. try
  139. {
  140. #region 同步SAP
  141. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  142. //sqlString = "select workcode from tp_mst_account where rownum = 1";
  143. //string workcode = oracleConn.GetSqlResultToStr(sqlString);
  144. //workcode = "5000";
  145. sqlString = @"SELECT
  146. to_char(:v_datebegin, 'yyyymmddhh24miss') AS ZYWKS,
  147. to_char(:in_dateend, 'yyyymmddhh24miss') AS ZYWJS,
  148. to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,
  149. '5000' AS WERKS,
  150. MATERIALCODE AS MATNR,
  151. GOODSCODE AS GROES,
  152. to_char(WORKSHOP) AS ZSCCJ,
  153. to_char(DATACODE) AS ZJDNU,
  154. to_char(ITEM) AS ZZYLX,
  155. to_char(count( * )) AS MENGE,
  156. 'T' AS ZSCS,
  157. CASE WHEN TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
  158. '' AS ZTYPE1,
  159. '' AS ZMSG1
  160. FROM
  161. (--产量
  162. SELECT
  163. GDD.MATERIALCODE,
  164. gdd.goodscode,
  165. HGDI.WORKSHOP,
  166. HGDI.DATACODE,
  167. 1 AS ITEM,
  168. GDD.TESTMOULDFLAG,
  169. G.GOODS_LINE_CODE AS ZSCS
  170. FROM
  171. TP_PM_PRODUCTIONDATA PD
  172. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  173. INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  174. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  175. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  176. AND HGDI.ITEMTYPE = 1
  177. AND HGDI.ITEMID = PD.PROCEDUREID
  178. AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  179. WHERE
  180. PD.VALUEFLAG = 1
  181. AND PD.CREATETIME >= :v_datebegin
  182. AND PD.CREATETIME < :in_dateend
  183. AND(
  184. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  185. OR(
  186. HGDI.WORKSHOP = 3
  187. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  188. )
  189. )
  190. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
  191. UNION ALL
  192. --产量撤销
  193. SELECT
  194. GDD.MATERIALCODE,
  195. GDD.goodscode,
  196. HGDI.WORKSHOP,
  197. HGDI.DATACODE AS DATACODE,
  198. 2 AS ITEM,
  199. GDD.TESTMOULDFLAG,
  200. G.GOODS_LINE_CODE AS ZSCS
  201. FROM
  202. TP_PM_PRODUCTIONDATA PD
  203. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  204. INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  205. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  206. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  207. AND HGDI.ITEMID = PD.PROCEDUREID
  208. AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  209. WHERE
  210. PD.VALUEFLAG = 0
  211. AND PD.BACKOUTTIME >= :v_datebegin
  212. AND PD.BACKOUTTIME < :in_dateend
  213. AND(
  214. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  215. OR(
  216. HGDI.WORKSHOP = 3
  217. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  218. )
  219. )
  220. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损
  221. UNION ALL
  222. SELECT
  223. GDD.MATERIALCODE,
  224. GDD.goodscode,
  225. HGDI.WORKSHOP,
  226. HGDI.DATACODE AS DATACODE,
  227. 3 AS ITEM,
  228. GDD.TESTMOULDFLAG,
  229. G.GOODS_LINE_CODE AS ZSCS
  230. FROM
  231. TP_PM_SCRAPPRODUCT SP
  232. INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
  233. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  234. INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  235. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  236. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  237. AND HGDI.ITEMTYPE = 2
  238. AND HGDI.ITEMID = PD.PROCEDUREID
  239. AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  240. WHERE
  241. SP.AUDITSTATUS = 1
  242. AND SP.AUDITDATE >= :v_datebegin
  243. AND SP.AUDITDATE < :in_dateend
  244. AND(
  245. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  246. OR(
  247. HGDI.WORKSHOP = 3
  248. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  249. )
  250. )
  251. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损撤销
  252. UNION ALL
  253. SELECT
  254. GDD.MATERIALCODE,
  255. GDD.goodscode,
  256. HGDI.WORKSHOP,
  257. HGDI.DATACODE AS DATACODE,
  258. 4 AS ITEM,
  259. GDD.TESTMOULDFLAG,
  260. G.GOODS_LINE_CODE AS ZSCS
  261. FROM
  262. TP_PM_SCRAPPRODUCT SP
  263. INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
  264. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  265. INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
  266. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  267. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  268. AND HGDI.ITEMTYPE = 2
  269. AND HGDI.ITEMID = PD.PROCEDUREID
  270. AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
  271. WHERE
  272. SP.AUDITSTATUS = 1
  273. AND SP.VALUEFLAG = '0'
  274. AND SP.BACKOUTTIME >= :v_datebegin
  275. AND SP.BACKOUTTIME < :in_dateend
  276. AND(
  277. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  278. OR(
  279. HGDI.WORKSHOP = 3
  280. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  281. )
  282. )
  283. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 盘点清除
  284. UNION ALL
  285. SELECT
  286. GDD.MATERIALCODE,
  287. GDD.GOODSCODE,
  288. HGDI.WORKSHOP,
  289. HGDI.DATACODE,
  290. 5 AS ITEM,
  291. GDD.TESTMOULDFLAG ,
  292. G.GOODS_LINE_CODE AS ZSCS
  293. FROM
  294. TP_PM_GOODSCHANGEHISTORY GH
  295. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
  296. INNER JOIN TP_MST_GOODS G ON GH.GOODSID = G.GOODSID
  297. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  298. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  299. AND HGDI.ITEMTYPE = 2
  300. AND HGDI.ITEMID = GH.OTHERID
  301. WHERE
  302. GH.CREATETIME >= :v_datebegin
  303. AND GH.CREATETIME < :in_dateend
  304. AND GH.DATATYPE IN( 11, 12 )
  305. AND(
  306. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  307. OR(
  308. HGDI.WORKSHOP = 3
  309. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  310. )
  311. )
  312. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 干补
  313. UNION ALL
  314. SELECT
  315. GDD.MATERIALCODE,
  316. GDD.GOODSCODE,
  317. HGDI.WORKSHOP,
  318. HGDI.DATACODE,
  319. 6 AS ITEM,
  320. GDD.TESTMOULDFLAG,
  321. G.GOODS_LINE_CODE AS ZSCS
  322. FROM
  323. TP_PM_SCRAPPRODUCT SP
  324. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
  325. INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
  326. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  327. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  328. AND HGDI.ITEMTYPE = 2
  329. AND HGDI.ITEMID = SP.PROCEDUREID
  330. WHERE
  331. SP.AUDITSTATUS = 1
  332. AND SP.VALUEFLAG = '1'
  333. AND SP.GOODSLEVELTYPEID = 9
  334. AND SP.SPECIALREPAIRTIME >= :v_datebegin
  335. AND SP.SPECIALREPAIRTIME < :in_dateend
  336. AND(
  337. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  338. OR(
  339. HGDI.WORKSHOP = 3
  340. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  341. )
  342. )
  343. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 回收
  344. UNION ALL
  345. SELECT
  346. GDD.MATERIALCODE,
  347. GDD.GOODSCODE,
  348. HGDI.WORKSHOP,
  349. HGDI.DATACODE,
  350. 7 AS ITEM,
  351. GDD.TESTMOULDFLAG,
  352. G.GOODS_LINE_CODE AS ZSCS
  353. FROM
  354. TP_PM_SCRAPPRODUCT SP
  355. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
  356. INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
  357. INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
  358. INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
  359. AND HGDI.ITEMTYPE = 2
  360. AND HGDI.ITEMID = SP.PROCEDUREID
  361. WHERE
  362. SP.AUDITSTATUS = 1
  363. AND SP.VALUEFLAG = '1'
  364. AND SP.RECYCLINGFLAG = '1'
  365. AND SP.RECYCLINGTIME >= :v_datebegin
  366. AND SP.RECYCLINGTIME < :in_dateend
  367. AND(
  368. (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
  369. OR(
  370. HGDI.WORKSHOP = 3
  371. AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
  372. )
  373. )
  374. AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
  375. )
  376. GROUP BY
  377. MATERIALCODE,
  378. GOODSCODE,
  379. WORKSHOP,
  380. DATACODE,
  381. ITEM,
  382. TESTMOULDFLAG,
  383. ZSCS
  384. ORDER BY
  385. DATACODE,
  386. ITEM,
  387. WORKSHOP";
  388. OracleParameter[] paras = new OracleParameter[]
  389. {
  390. new OracleParameter(":v_datebegin", OracleDbType.Date, date, ParameterDirection.Input),
  391. new OracleParameter(":in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  392. };
  393. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  394. sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  395. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  396. if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
  397. {
  398. string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
  399. //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  400. //string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
  401. string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
  402. string result = PostData(url033, postString, "POST");
  403. string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  404. string msg = JObject.Parse(result)["ZMSG"].ToString();
  405. //sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
  406. //paras = new OracleParameter[]
  407. //{
  408. // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  409. // new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  410. // new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
  411. //};
  412. //oracleConn.ExecuteNonQuery(sqlString, paras);
  413. oracleConn.Commit();
  414. }
  415. #endregion
  416. }
  417. catch (Exception ex)
  418. {
  419. OutputLog.TraceLog(LogPriority.Error,
  420. "CrossWorkshopToSAP",
  421. "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  422. ex.ToString(),
  423. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  424. }
  425. finally
  426. {
  427. if (oracleConn != null)
  428. {
  429. oracleConn.Close();
  430. }
  431. }
  432. }
  433. /// <summary>
  434. /// 查询跨车间作业同步日志
  435. /// </summary>
  436. /// <param name="cre"></param>
  437. /// <param name="userInfo"></param>
  438. /// <returns></returns>
  439. public static ServiceResultEntity GetDataLog_kczzy(ClientRequestEntity cre)
  440. {
  441. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  442. ServiceResultEntity sre = new ServiceResultEntity();
  443. try
  444. {
  445. string sqlString = "SELECT\n" +
  446. " dl.logid,\n" +
  447. " dl.begintime,\n" +
  448. " dl.endtime,\n" +
  449. " dl.yyyymmdd,\n" +
  450. " dl.workcode,\n" +
  451. " dl.datastuts,\n" +
  452. " dl.datamsg,\n" +
  453. " dl.executedatebegin,\n" +
  454. " dl.executedateend,\n" +
  455. " u.usercode synusercode\n" +
  456. "FROM\n" +
  457. " tsap_hegii_datalog_kcjzy dl\n" +
  458. " LEFT JOIN tp_mst_user u ON u.userid = dl.createuserid \n" +
  459. "WHERE\n" +
  460. " dl.EXECUTEDATEBEGIN >= :datebegin \n" +
  461. " AND dl.EXECUTEDATEEND <= :dateend \n";
  462. OracleParameter[] oracleParameter = new OracleParameter[]
  463. {
  464. new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  465. new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  466. };
  467. string datastuts = cre.Properties["datastuts"] + "";
  468. if (!string.IsNullOrEmpty(datastuts))
  469. {
  470. sqlString += " and dl.datastuts in (" + datastuts + ")\n";
  471. }
  472. sqlString += "ORDER BY dl.logid DESC\n";
  473. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  474. return sre;
  475. }
  476. catch (Exception ex)
  477. {
  478. throw ex;
  479. }
  480. finally
  481. {
  482. if (oracleConn != null)
  483. {
  484. oracleConn.Close();
  485. }
  486. }
  487. }
  488. /// <summary>
  489. /// 查询同步明细
  490. /// </summary>
  491. /// <param name="logid"></param>
  492. /// <param name="userInfo"></param>
  493. /// <returns></returns>
  494. public static ServiceResultEntity GetWorkData_kczzy(ClientRequestEntity cre)
  495. {
  496. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  497. ServiceResultEntity sre = new ServiceResultEntity();
  498. try
  499. {
  500. int logid = Convert.ToInt32(cre.Request);
  501. string sqlString = "\n" +
  502. "select wd.workshop\n" +
  503. " ,case when wd.workshop = 2 then '二车间' when wd.workshop = 3 then '三车间' else '-' end workshopname\n " +
  504. " ,case when wd.item = 1 then '产量' when wd.item = 2 then '产量撤销' when wd.item = 3 then '工序报损' when wd.item = 4 then '工序报损撤销' \n" +
  505. " when wd.item = 5 then '盘点清除' when wd.item = 6 then '干补' when wd.item = 7 then '回收' else '-' end as itemname\n" +
  506. " ,item\n" +
  507. " ,wd.datacode\n" +
  508. " ,dc.datacodename\n" +
  509. " ,wd.goodscode\n" +
  510. " ,wd.sapcode\n" +
  511. " ,wd.num\n" +
  512. " ,wd.createtime\n" +
  513. " ,wd.testmouldflag\n" +
  514. " ,wd.zscs\n" +
  515. " ,case when wd.zscs = 'L' then '立浇【L】' when wd.zscs = 'G' then '高压【G】' when wd.zscs = 'M' then '粘接高压(三水厂)【M】' when wd.zscs = 'Q' then '吊装线【Q】' else '-' end as zscsname\n" +
  516. " ,wd.logid\n" +
  517. " from tsap_hegii_workdata_kcjzy wd\n" +
  518. " inner join tsap_hegii_datacode dc\n" +
  519. " on dc.datacode = wd.datacode\n";
  520. if (logid > 0)
  521. {
  522. sqlString += " where wd.logid = :logid \n";
  523. }
  524. else
  525. {
  526. sqlString += " inner join tsap_hegii_datalog_kcjzy dl\n" +
  527. " on wd.logid=dl.logid \n" +
  528. " where dl.EXECUTEDATEBEGIN>= :datebegin \n" +
  529. " and dl.EXECUTEDATEEND<= :dateend \n";
  530. }
  531. sqlString += " order by wd.datacode,wd.item,wd.workshop \n";
  532. OracleParameter[] oracleParameter = new OracleParameter[]
  533. {
  534. new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  535. new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  536. new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  537. };
  538. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  539. return sre;
  540. }
  541. catch (Exception ex)
  542. {
  543. throw ex;
  544. }
  545. finally
  546. {
  547. if (oracleConn != null)
  548. {
  549. oracleConn.Close();
  550. }
  551. }
  552. }
  553. #endregion
  554. #region 报工
  555. ///// <summary>
  556. ///// 同步SAP数据(自动)
  557. ///// </summary>
  558. ///// <param name="date"></param>
  559. //public static void AutoWorkDataToSAP5000(DateTime date, string funCode)
  560. //{
  561. // if (string.IsNullOrWhiteSpace(funCode))
  562. // {
  563. // //return;
  564. // funCode = "ALL";
  565. // }
  566. // funCode = "," + funCode + ",";
  567. // ServiceResultEntity sre = null;
  568. // // 10 模具
  569. // if (funCode == ",ALL," || funCode.Contains(",10,"))
  570. // {
  571. // try
  572. // {
  573. // sre = SetWorkData10_50(date, "10", 0);
  574. // if (sre.Status != Constant.ServiceResultStatus.Success ||
  575. // "S" != sre.Result + "")
  576. // {
  577. // OutputLog.TraceLog(LogPriority.Warning,
  578. // "AutoWorkDataToSAP",
  579. // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  580. // JsonHelper.ToJson(sre),
  581. // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  582. // }
  583. // }
  584. // catch (Exception ex)
  585. // {
  586. // OutputLog.TraceLog(LogPriority.Error,
  587. // "AutoWorkDataToSAP",
  588. // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  589. // ex.ToString(),
  590. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  591. // }
  592. // }
  593. // // 20 湿坯
  594. // if (funCode == ",ALL," || funCode.Contains(",20,"))
  595. // {
  596. // try
  597. // {
  598. // sre = SetWorkData10_50(date, "20", 0);
  599. // if (sre.Status != Constant.ServiceResultStatus.Success ||
  600. // "S" != sre.Result + "")
  601. // {
  602. // OutputLog.TraceLog(LogPriority.Warning,
  603. // "AutoWorkDataToSAP",
  604. // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  605. // JsonHelper.ToJson(sre),
  606. // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  607. // }
  608. // }
  609. // catch (Exception ex)
  610. // {
  611. // OutputLog.TraceLog(LogPriority.Error,
  612. // "AutoWorkDataToSAP",
  613. // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  614. // ex.ToString(),
  615. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  616. // }
  617. // }
  618. // // 30 精坯
  619. // if (funCode == ",ALL," || funCode.Contains(",30,"))
  620. // {
  621. // try
  622. // {
  623. // sre = SetWorkData10_50(date, "30", 0);
  624. // if (sre.Status != Constant.ServiceResultStatus.Success ||
  625. // "S" != sre.Result + "")
  626. // {
  627. // OutputLog.TraceLog(LogPriority.Warning,
  628. // "AutoWorkDataToSAP",
  629. // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  630. // JsonHelper.ToJson(sre),
  631. // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  632. // }
  633. // }
  634. // catch (Exception ex)
  635. // {
  636. // OutputLog.TraceLog(LogPriority.Error,
  637. // "AutoWorkDataToSAP",
  638. // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  639. // ex.ToString(),
  640. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  641. // }
  642. // }
  643. // // 40 釉坯
  644. // if (funCode == ",ALL," || funCode.Contains(",40,"))
  645. // {
  646. // try
  647. // {
  648. // sre = SetWorkData10_50(date, "40", 0);
  649. // if (sre.Status != Constant.ServiceResultStatus.Success ||
  650. // "S" != sre.Result + "")
  651. // {
  652. // OutputLog.TraceLog(LogPriority.Warning,
  653. // "AutoWorkDataToSAP",
  654. // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  655. // JsonHelper.ToJson(sre),
  656. // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  657. // }
  658. // }
  659. // catch (Exception ex)
  660. // {
  661. // OutputLog.TraceLog(LogPriority.Error,
  662. // "AutoWorkDataToSAP",
  663. // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  664. // ex.ToString(),
  665. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  666. // }
  667. // }
  668. // // 50 烧成
  669. // if (funCode == ",ALL," || funCode.Contains(",50,"))
  670. // {
  671. // try
  672. // {
  673. // sre = SetWorkData10_50(date, "50", 0);
  674. // if (sre.Status != Constant.ServiceResultStatus.Success ||
  675. // "S" != sre.Result + "")
  676. // {
  677. // OutputLog.TraceLog(LogPriority.Warning,
  678. // "AutoWorkDataToSAP",
  679. // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  680. // JsonHelper.ToJson(sre),
  681. // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  682. // }
  683. // }
  684. // catch (Exception ex)
  685. // {
  686. // OutputLog.TraceLog(LogPriority.Error,
  687. // "AutoWorkDataToSAP",
  688. // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  689. // ex.ToString(),
  690. // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  691. // }
  692. // }
  693. // //// 6001 成品明细
  694. // //if (funCode == ",ALL," || funCode.Contains(",6001,"))
  695. // //{
  696. // // try
  697. // // {
  698. // // sre = SetFP6001(date, 0);
  699. // // if (sre.Status != Constant.ServiceResultStatus.Success ||
  700. // // "S" != sre.Result + "")
  701. // // {
  702. // // OutputLog.TraceLog(LogPriority.Warning,
  703. // // "AutoWorkDataToSAP",
  704. // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  705. // // JsonHelper.ToJson(sre),
  706. // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  707. // // }
  708. // // }
  709. // // catch (Exception ex)
  710. // // {
  711. // // OutputLog.TraceLog(LogPriority.Error,
  712. // // "AutoWorkDataToSAP",
  713. // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  714. // // ex.ToString(),
  715. // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  716. // // }
  717. // //}
  718. // //// 6001 成品明细(小时)-20分钟
  719. // //if (funCode == ",6002,")
  720. // //{
  721. // // try
  722. // // {
  723. // // sre = SetFP6002(date, 0);
  724. // // if (sre.Status != Constant.ServiceResultStatus.Success ||
  725. // // "S" != sre.Result + "")
  726. // // {
  727. // // OutputLog.TraceLog(LogPriority.Warning,
  728. // // "AutoWorkDataToSAP",
  729. // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  730. // // JsonHelper.ToJson(sre),
  731. // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  732. // // }
  733. // // }
  734. // // catch (Exception ex)
  735. // // {
  736. // // OutputLog.TraceLog(LogPriority.Error,
  737. // // "AutoWorkDataToSAP",
  738. // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
  739. // // ex.ToString(),
  740. // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
  741. // // }
  742. // //}
  743. //}
  744. /// <summary>
  745. /// 同步SAP数据(自动)(重载)
  746. /// </summary>
  747. /// <param name="date">当前时间</param>
  748. /// <param name="funCode">工序码</param>
  749. /// <param name="ndate">本次要执行到的时间</param>
  750. public static void AutoWorkDataToSAP5000(string funCode, DateTime ndate)
  751. {
  752. if (string.IsNullOrWhiteSpace(funCode))
  753. {
  754. //return;
  755. funCode = "ALL";
  756. }
  757. funCode = "," + funCode + ",";
  758. ServiceResultEntity sre = null;
  759. // 1001 模具生产
  760. if (funCode == ",ALL," || funCode.Contains(",1001,"))
  761. {
  762. try
  763. {
  764. sre = SetWorkData1001_5000("1001", ndate);
  765. if (sre.Status != Constant.ServiceResultStatus.Success ||
  766. "S" != sre.Result + "")
  767. {
  768. OutputLog.TraceLog(LogPriority.Warning,
  769. "AutoWorkDataToSAP5000",
  770. "1001 模具生产 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  771. JsonHelper.ToJson(sre),
  772. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  773. }
  774. }
  775. catch (Exception ex)
  776. {
  777. OutputLog.TraceLog(LogPriority.Error,
  778. "AutoWorkDataToSAP5000",
  779. "1001 模具生产 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  780. ex.ToString(),
  781. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  782. }
  783. }
  784. // 10 模具
  785. if (funCode == ",ALL," || funCode.Contains(",10,"))
  786. {
  787. try
  788. {
  789. sre = SetWorkData10_50_5000("10", ndate);
  790. if (sre.Status != Constant.ServiceResultStatus.Success ||
  791. "S" != sre.Result + "")
  792. {
  793. OutputLog.TraceLog(LogPriority.Warning,
  794. "AutoWorkDataToSAP5000",
  795. "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  796. JsonHelper.ToJson(sre),
  797. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  798. }
  799. }
  800. catch (Exception ex)
  801. {
  802. OutputLog.TraceLog(LogPriority.Error,
  803. "AutoWorkDataToSAP5000",
  804. "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  805. ex.ToString(),
  806. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  807. }
  808. }
  809. // 20 湿坯
  810. if (funCode == ",ALL," || funCode.Contains(",20,"))
  811. {
  812. try
  813. {
  814. sre = SetWorkData10_50_5000("20", ndate);
  815. if (sre.Status != Constant.ServiceResultStatus.Success ||
  816. "S" != sre.Result + "")
  817. {
  818. OutputLog.TraceLog(LogPriority.Warning,
  819. "AutoWorkDataToSAP5000",
  820. "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  821. JsonHelper.ToJson(sre),
  822. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  823. }
  824. }
  825. catch (Exception ex)
  826. {
  827. OutputLog.TraceLog(LogPriority.Error,
  828. "AutoWorkDataToSAP5000",
  829. "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  830. ex.ToString(),
  831. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  832. }
  833. }
  834. // 30 精坯
  835. if (funCode == ",ALL," || funCode.Contains(",30,"))
  836. {
  837. try
  838. {
  839. sre = SetWorkData10_50_5000("30", ndate);
  840. if (sre.Status != Constant.ServiceResultStatus.Success ||
  841. "S" != sre.Result + "")
  842. {
  843. OutputLog.TraceLog(LogPriority.Warning,
  844. "AutoWorkDataToSAP5000",
  845. "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  846. JsonHelper.ToJson(sre),
  847. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  848. }
  849. }
  850. catch (Exception ex)
  851. {
  852. OutputLog.TraceLog(LogPriority.Error,
  853. "AutoWorkDataToSAP5000",
  854. "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  855. ex.ToString(),
  856. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  857. }
  858. }
  859. // 40 釉坯
  860. if (funCode == ",ALL," || funCode.Contains(",40,"))
  861. {
  862. try
  863. {
  864. sre = SetWorkData10_50_5000("40", ndate);
  865. if (sre.Status != Constant.ServiceResultStatus.Success ||
  866. "S" != sre.Result + "")
  867. {
  868. OutputLog.TraceLog(LogPriority.Warning,
  869. "AutoWorkDataToSAP5000",
  870. "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  871. JsonHelper.ToJson(sre),
  872. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  873. }
  874. }
  875. catch (Exception ex)
  876. {
  877. OutputLog.TraceLog(LogPriority.Error,
  878. "AutoWorkDataToSAP5000",
  879. "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  880. ex.ToString(),
  881. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  882. }
  883. }
  884. // 50 烧成
  885. if (funCode == ",ALL," || funCode.Contains(",50,"))
  886. {
  887. try
  888. {
  889. sre = SetWorkData10_50_5000("50", ndate);
  890. if (sre.Status != Constant.ServiceResultStatus.Success ||
  891. "S" != sre.Result + "")
  892. {
  893. OutputLog.TraceLog(LogPriority.Warning,
  894. "AutoWorkDataToSAP5000",
  895. "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  896. JsonHelper.ToJson(sre),
  897. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  898. }
  899. }
  900. catch (Exception ex)
  901. {
  902. OutputLog.TraceLog(LogPriority.Error,
  903. "AutoWorkDataToSAP5000",
  904. "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  905. ex.ToString(),
  906. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  907. }
  908. }
  909. // 55 裸辞包装
  910. if (funCode == ",ALL," || funCode.Contains(",55,"))
  911. {
  912. try
  913. {
  914. sre = SetWorkData10_50_5000("55", ndate);
  915. if (sre.Status != Constant.ServiceResultStatus.Success ||
  916. "S" != sre.Result + "")
  917. {
  918. OutputLog.TraceLog(LogPriority.Warning,
  919. "AutoWorkDataToSAP5000",
  920. "55 裸辞包装 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  921. JsonHelper.ToJson(sre),
  922. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  923. }
  924. }
  925. catch (Exception ex)
  926. {
  927. OutputLog.TraceLog(LogPriority.Error,
  928. "AutoWorkDataToSAP5000",
  929. "55 裸辞包装" + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  930. ex.ToString(),
  931. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  932. }
  933. }
  934. // 60 产成品
  935. if (funCode == ",ALL," || funCode.Contains(",60,"))
  936. {
  937. try
  938. {
  939. sre = SyncSap5000_60(ndate);
  940. if (sre.Status != Constant.ServiceResultStatus.Success ||
  941. "S" != sre.Result + "")
  942. {
  943. OutputLog.TraceLog(LogPriority.Warning,
  944. "AutoWorkDataToSAP5000",
  945. "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  946. JsonHelper.ToJson(sre),
  947. LocalPath.LogExePath + "SAP_HEGII\\Warn_");
  948. }
  949. }
  950. catch (Exception ex)
  951. {
  952. OutputLog.TraceLog(LogPriority.Error,
  953. "AutoWorkDataToSAP5000",
  954. "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
  955. ex.ToString(),
  956. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  957. }
  958. }
  959. }
  960. /// <summary>
  961. /// 商标变更插入数据
  962. /// </summary>
  963. /// <param name="date">当前时间</param>
  964. /// <param name="ndate">本次要执行到的时间</param>
  965. public static void AutoWorkDataToSAP5000SBBG(DateTime ndate)
  966. {
  967. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  968. ServiceResultEntity sre = new ServiceResultEntity();
  969. try
  970. {
  971. // 查询该时间段内的所有商标变更 的条码
  972. string sqlString = "SELECT T.*\n" +
  973. " FROM (SELECT lh.barcode\n" +
  974. " ,lh.oldlogoid\n" +
  975. " ,nvl(gls.materialcode, g.materialcode) materialcode\n" +
  976. " ,nvl(gls1.materialcode, g.materialcode) newmaterialcode\n" +
  977. " ,lh.newlogoid\n" +
  978. " ,gdd.goodsid\n" +
  979. " ,lh.createtime\n" +
  980. " ,lh.SAPFLAG\n" +
  981. " FROM tp_pm_logochangedrecord lh\n" +
  982. " LEFT JOIN tp_pm_groutingdailydetail gdd\n" +
  983. " ON gdd.barcode = lh.barcode\n" +
  984. " INNER JOIN tp_mst_goods g\n" +
  985. " ON g.goodsid = gdd.goodsid\n" +
  986. " LEFT JOIN tp_mst_goodslogosap gls\n" +
  987. " ON gdd.goodsid = gls.goodsid\n" +
  988. " AND gls.logoid = lh.oldlogoid\n" +
  989. " LEFT JOIN tp_mst_goodslogosap gls1\n" +
  990. " ON gdd.goodsid = gls1.goodsid\n" +
  991. " AND gls1.logoid = lh.newlogoid\n" +
  992. " WHERE lh.createtime >= DATE '2024-03-01'\n" +
  993. " AND lh.SAPFLAG = 0 " +
  994. " AND lh.oldlogoid <> lh.newlogoid " +
  995. " AND nvl(gls.materialcode, g.materialcode) <> nvl(gls1.materialcode, g.materialcode) " +
  996. " order by lh.createtime) T\n" +
  997. " WHERE rownum < 15";
  998. DataTable barcodeTable = oracleTrConn.GetSqlResultToDt(sqlString, null);
  999. int returnRows = 0;
  1000. if (barcodeTable != null && barcodeTable.Rows.Count > 0)
  1001. {
  1002. for (int i = 0; i < barcodeTable.Rows.Count; i++)
  1003. {
  1004. string barcode = barcodeTable.Rows[i]["barcode"].ToString();
  1005. string oldMatnr = barcodeTable.Rows[i]["materialcode"].ToString();
  1006. string newMatnr = barcodeTable.Rows[i]["newmaterialcode"].ToString();
  1007. string cretetime = barcodeTable.Rows[i]["createtime"].ToString();
  1008. int logoid = Convert.ToInt32(barcodeTable.Rows[i]["newlogoid"]);
  1009. if (oldMatnr != newMatnr)
  1010. {
  1011. #region 先查询sap数据
  1012. DataSet sapDataSet = new DataSet();
  1013. //查询变更的型号信息
  1014. OracleParameter[] paras = new OracleParameter[]
  1015. {
  1016. new OracleParameter("IN_BARCODE", OracleDbType.Varchar2, barcode, ParameterDirection.Input),
  1017. new OracleParameter("IN_GOODSID", OracleDbType.Int32, 0, ParameterDirection.Input),
  1018. new OracleParameter("IN_LOGOID", OracleDbType.Int32, logoid, ParameterDirection.Input),
  1019. new OracleParameter("OUT_RESULT", OracleDbType.RefCursor, null, ParameterDirection.Output),
  1020. };
  1021. sapDataSet = oracleTrConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG_BIANGENG", paras);
  1022. #endregion
  1023. #region sap报工
  1024. if (sapDataSet != null && sapDataSet.Tables.Count > 0 && sapDataSet.Tables[0].Rows.Count > 0 && !string.IsNullOrEmpty(oldMatnr))
  1025. {
  1026. DataTable sapresultTable = sapDataSet.Tables[0];
  1027. //记录所有logid,先设置状态为Q,加完明细改为F
  1028. List<int> logids = new List<int>();
  1029. DataTable dTable = new DataTable();
  1030. //获取总单datacode
  1031. DataView dv = new DataView(sapresultTable);
  1032. dTable = dv.ToTable(true, "DATACODE");
  1033. #region 注释原方式,启用新表,合并推送
  1034. //for (int j = 0; j < dTable.Rows.Count; j++)
  1035. //{
  1036. // //sap日志总单(不同节点)
  1037. // string sqlText = "SELECT SEQ_TSAP_DATALOG_BG.nextval FROM dual";
  1038. // //判断有几个节点 20,30,40,50
  1039. // #region 20节点
  1040. // if (dTable.Rows[j]["DATACODE"].ToString() == "20")
  1041. // {
  1042. // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  1043. // //记录logid
  1044. // logids.Add(logid);
  1045. // #region log总单
  1046. // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  1047. // " (LOGID,\n" +
  1048. // " LOGTYPE,\n" +
  1049. // " BEGINTIME,\n" +
  1050. // " YYYYMMDD,\n" +
  1051. // " WORKCODE,\n" +
  1052. // " DATACODE,\n" +
  1053. // " DATASTUTS,\n" +
  1054. // " DATAMSG,\n" +
  1055. // " DATALOGID,\n" +
  1056. // " EXECUTEDATEBEGIN,\n" +
  1057. // " EXECUTEDATEEND,\n" +
  1058. // " REMARKS,\n" +
  1059. // " SAPGUID)\n" +
  1060. // " VALUES\n" +
  1061. // " (:LOGID,\n" +
  1062. // " '4',\n" +
  1063. // " SYSDATE,\n" +
  1064. // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1065. // " '5000',\n" +
  1066. // " '20',\n" +
  1067. // " 'Q',\n" +
  1068. // " '',\n" +
  1069. // " :LOGID,\n" +
  1070. // " SYSDATE,\n" +
  1071. // " SYSDATE,\n" +
  1072. // " :REMARKS,\n" +
  1073. // " SYS_GUID())";
  1074. // paras = new OracleParameter[]
  1075. // {
  1076. // new OracleParameter(":LOGID",logid),
  1077. // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
  1078. // };
  1079. // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1080. // #endregion
  1081. // #region 明细
  1082. // DataTable table20 = sapresultTable.Copy();
  1083. // DataRow[] drRow20 = table20.Select("DATACODE = 20");
  1084. // foreach (DataRow row in drRow20)
  1085. // {
  1086. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1087. // " (YYYYMMDD,\n" +
  1088. // " WORKCODE,\n" +
  1089. // " DATACODE,\n" +
  1090. // " GOODSCODE,\n" +
  1091. // " SAPCODE,\n" +
  1092. // " USERCODE,\n" +
  1093. // " OUTPUTNUM,\n" +
  1094. // " SCRAPNUM,\n" +
  1095. // " CLEANUPNUM,\n" +
  1096. // " REPAIRNUM,\n" +
  1097. // " WORKSHOP,\n" +
  1098. // " LOGID,\n" +
  1099. // " TESTMOULDFLAG,\n" +
  1100. // " ZSCS,\n" +
  1101. // " CHARG)\n" +
  1102. // " VALUES\n" +
  1103. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1104. // " '5000',\n" +
  1105. // " '20',\n" +
  1106. // " :GOODSCODE,\n" +
  1107. // " :SAPCODE,\n" +
  1108. // " :USERCODE,\n" +
  1109. // " :OUTPUTNUM,\n" +
  1110. // " :SCRAPNUM,\n" +
  1111. // " :CLEANUPNUM,\n" +
  1112. // " :REPAIRNUM,\n" +
  1113. // " :WORKSHOP,\n" +
  1114. // " :LOGID,\n" +
  1115. // " :TESTMOULDFLAG,\n" +
  1116. // " :ZSCS,\n" +
  1117. // " :CHARG)";
  1118. // paras = new OracleParameter[]
  1119. // {
  1120. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1121. // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1122. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1123. // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1124. // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1125. // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1126. // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1127. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1128. // new OracleParameter(":LOGID",logid),
  1129. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1130. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1131. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1132. // };
  1133. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1134. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1135. // " (YYYYMMDD,\n" +
  1136. // " WORKCODE,\n" +
  1137. // " DATACODE,\n" +
  1138. // " GOODSCODE,\n" +
  1139. // " SAPCODE,\n" +
  1140. // " USERCODE,\n" +
  1141. // " OUTPUTNUM,\n" +
  1142. // " SCRAPNUM,\n" +
  1143. // " CLEANUPNUM,\n" +
  1144. // " REPAIRNUM,\n" +
  1145. // " WORKSHOP,\n" +
  1146. // " LOGID,\n" +
  1147. // " TESTMOULDFLAG,\n" +
  1148. // " ZSCS,\n" +
  1149. // " CHARG)\n" +
  1150. // " VALUES\n" +
  1151. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1152. // " '5000',\n" +
  1153. // " '20',\n" +
  1154. // " :GOODSCODE,\n" +
  1155. // " :SAPCODE,\n" +
  1156. // " :USERCODE,\n" +
  1157. // " :OUTPUTNUM,\n" +
  1158. // " :SCRAPNUM,\n" +
  1159. // " :CLEANUPNUM,\n" +
  1160. // " :REPAIRNUM,\n" +
  1161. // " :WORKSHOP,\n" +
  1162. // " :LOGID,\n" +
  1163. // " :TESTMOULDFLAG,\n" +
  1164. // " :ZSCS,\n" +
  1165. // " :CHARG)";
  1166. // paras = new OracleParameter[]
  1167. // {
  1168. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1169. // new OracleParameter(":SAPCODE",oldMatnr),
  1170. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1171. // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1172. // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1173. // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1174. // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1175. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1176. // new OracleParameter(":LOGID",logid),
  1177. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1178. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1179. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1180. // };
  1181. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1182. // }
  1183. // #endregion
  1184. // }
  1185. // #endregion
  1186. // #region 30节点
  1187. // else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
  1188. // {
  1189. // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  1190. // //记录logid
  1191. // logids.Add(logid);
  1192. // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  1193. // " (LOGID,\n" +
  1194. // " LOGTYPE,\n" +
  1195. // " BEGINTIME,\n" +
  1196. // " YYYYMMDD,\n" +
  1197. // " WORKCODE,\n" +
  1198. // " DATACODE,\n" +
  1199. // " DATASTUTS,\n" +
  1200. // " DATAMSG,\n" +
  1201. // " DATALOGID,\n" +
  1202. // " EXECUTEDATEBEGIN,\n" +
  1203. // " EXECUTEDATEEND,\n" +
  1204. // " REMARKS,\n" +
  1205. // " SAPGUID)\n" +
  1206. // " VALUES\n" +
  1207. // " (:LOGID,\n" +
  1208. // " '4',\n" +
  1209. // " SYSDATE,\n" +
  1210. // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1211. // " 5000,\n" +
  1212. // " :DATACODE,\n" +
  1213. // " 'Q',\n" +
  1214. // " '',\n" +
  1215. // " :LOGID,\n" +
  1216. // " SYSDATE,\n" +
  1217. // " SYSDATE,\n" +
  1218. // " :REMARKS,\n" +
  1219. // " SYS_GUID())";
  1220. // paras = new OracleParameter[]
  1221. // {
  1222. // new OracleParameter(":LOGID",logid),
  1223. // new OracleParameter(":DATACODE","30"),
  1224. // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
  1225. // };
  1226. // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1227. // #region 明细
  1228. // DataTable table30 = sapresultTable.Copy();
  1229. // DataRow[] drRow30 = table30.Select("DATACODE = 30");
  1230. // foreach (DataRow row in drRow30)
  1231. // {
  1232. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1233. // " (YYYYMMDD,\n" +
  1234. // " WORKCODE,\n" +
  1235. // " DATACODE,\n" +
  1236. // " GOODSCODE,\n" +
  1237. // " SAPCODE,\n" +
  1238. // " USERCODE,\n" +
  1239. // " OUTPUTNUM,\n" +
  1240. // " SCRAPNUM,\n" +
  1241. // " CLEANUPNUM,\n" +
  1242. // " REPAIRNUM,\n" +
  1243. // " WORKSHOP,\n" +
  1244. // " LOGID,\n" +
  1245. // " TESTMOULDFLAG,\n" +
  1246. // " ZSCS,\n" +
  1247. // " CHARG)\n" +
  1248. // " VALUES\n" +
  1249. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1250. // " '5000',\n" +
  1251. // " '30',\n" +
  1252. // " :GOODSCODE,\n" +
  1253. // " :SAPCODE,\n" +
  1254. // " :USERCODE,\n" +
  1255. // " :OUTPUTNUM,\n" +
  1256. // " :SCRAPNUM,\n" +
  1257. // " :CLEANUPNUM,\n" +
  1258. // " :REPAIRNUM,\n" +
  1259. // " :WORKSHOP,\n" +
  1260. // " :LOGID,\n" +
  1261. // " :TESTMOULDFLAG,\n" +
  1262. // " :ZSCS,\n" +
  1263. // " :CHARG)";
  1264. // paras = new OracleParameter[]
  1265. // {
  1266. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1267. // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1268. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1269. // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1270. // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1271. // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1272. // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1273. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1274. // new OracleParameter(":LOGID",logid),
  1275. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1276. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1277. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1278. // };
  1279. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1280. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1281. // " (YYYYMMDD,\n" +
  1282. // " WORKCODE,\n" +
  1283. // " DATACODE,\n" +
  1284. // " GOODSCODE,\n" +
  1285. // " SAPCODE,\n" +
  1286. // " USERCODE,\n" +
  1287. // " OUTPUTNUM,\n" +
  1288. // " SCRAPNUM,\n" +
  1289. // " CLEANUPNUM,\n" +
  1290. // " REPAIRNUM,\n" +
  1291. // " WORKSHOP,\n" +
  1292. // " LOGID,\n" +
  1293. // " TESTMOULDFLAG,\n" +
  1294. // " ZSCS,\n" +
  1295. // " CHARG)\n" +
  1296. // " VALUES\n" +
  1297. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1298. // " '5000',\n" +
  1299. // " '30',\n" +
  1300. // " :GOODSCODE,\n" +
  1301. // " :SAPCODE,\n" +
  1302. // " :USERCODE,\n" +
  1303. // " :OUTPUTNUM,\n" +
  1304. // " :SCRAPNUM,\n" +
  1305. // " :CLEANUPNUM,\n" +
  1306. // " :REPAIRNUM,\n" +
  1307. // " :WORKSHOP,\n" +
  1308. // " :LOGID,\n" +
  1309. // " :TESTMOULDFLAG,\n" +
  1310. // " :ZSCS,\n" +
  1311. // " :CHARG)";
  1312. // paras = new OracleParameter[]
  1313. // {
  1314. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1315. // new OracleParameter(":SAPCODE",oldMatnr),
  1316. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1317. // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1318. // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1319. // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1320. // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1321. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1322. // new OracleParameter(":LOGID",logid),
  1323. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1324. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1325. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1326. // };
  1327. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1328. // }
  1329. // #endregion
  1330. // }
  1331. // #endregion
  1332. // #region 40节点
  1333. // else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
  1334. // {
  1335. // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  1336. // //记录logid
  1337. // logids.Add(logid);
  1338. // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  1339. // " (LOGID,\n" +
  1340. // " LOGTYPE,\n" +
  1341. // " BEGINTIME,\n" +
  1342. // " YYYYMMDD,\n" +
  1343. // " WORKCODE,\n" +
  1344. // " DATACODE,\n" +
  1345. // " DATASTUTS,\n" +
  1346. // " DATAMSG,\n" +
  1347. // " DATALOGID,\n" +
  1348. // " EXECUTEDATEBEGIN,\n" +
  1349. // " EXECUTEDATEEND,\n" +
  1350. // " REMARKS,\n" +
  1351. // " SAPGUID)\n" +
  1352. // " VALUES\n" +
  1353. // " (:LOGID,\n" +
  1354. // " '4',\n" +
  1355. // " SYSDATE,\n" +
  1356. // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1357. // " 5000,\n" +
  1358. // " :DATACODE,\n" +
  1359. // " 'Q',\n" +
  1360. // " '',\n" +
  1361. // " :LOGID,\n" +
  1362. // " SYSDATE,\n" +
  1363. // " SYSDATE,\n" +
  1364. // " :REMARKS,\n" +
  1365. // " SYS_GUID())";
  1366. // paras = new OracleParameter[]
  1367. // {
  1368. // new OracleParameter(":LOGID",logid),
  1369. // new OracleParameter(":DATACODE","40"),
  1370. // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
  1371. // };
  1372. // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1373. // #region 明细
  1374. // DataTable table40 = sapresultTable.Copy();
  1375. // DataRow[] drRow40 = table40.Select("DATACODE = 40");
  1376. // foreach (DataRow row in drRow40)
  1377. // {
  1378. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1379. // " (YYYYMMDD,\n" +
  1380. // " WORKCODE,\n" +
  1381. // " DATACODE,\n" +
  1382. // " GOODSCODE,\n" +
  1383. // " SAPCODE,\n" +
  1384. // " USERCODE,\n" +
  1385. // " OUTPUTNUM,\n" +
  1386. // " SCRAPNUM,\n" +
  1387. // " CLEANUPNUM,\n" +
  1388. // " REPAIRNUM,\n" +
  1389. // " WORKSHOP,\n" +
  1390. // " LOGID,\n" +
  1391. // " TESTMOULDFLAG,\n" +
  1392. // " ZSCS,\n" +
  1393. // " CHARG)\n" +
  1394. // " VALUES\n" +
  1395. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1396. // " '5000',\n" +
  1397. // " '40',\n" +
  1398. // " :GOODSCODE,\n" +
  1399. // " :SAPCODE,\n" +
  1400. // " :USERCODE,\n" +
  1401. // " :OUTPUTNUM,\n" +
  1402. // " :SCRAPNUM,\n" +
  1403. // " :CLEANUPNUM,\n" +
  1404. // " :REPAIRNUM,\n" +
  1405. // " :WORKSHOP,\n" +
  1406. // " :LOGID,\n" +
  1407. // " :TESTMOULDFLAG,\n" +
  1408. // " :ZSCS,\n" +
  1409. // " :CHARG)";
  1410. // paras = new OracleParameter[]
  1411. // {
  1412. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1413. // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1414. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1415. // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1416. // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1417. // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1418. // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1419. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1420. // new OracleParameter(":LOGID",logid),
  1421. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1422. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1423. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1424. // };
  1425. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1426. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1427. // " (YYYYMMDD,\n" +
  1428. // " WORKCODE,\n" +
  1429. // " DATACODE,\n" +
  1430. // " GOODSCODE,\n" +
  1431. // " SAPCODE,\n" +
  1432. // " USERCODE,\n" +
  1433. // " OUTPUTNUM,\n" +
  1434. // " SCRAPNUM,\n" +
  1435. // " CLEANUPNUM,\n" +
  1436. // " REPAIRNUM,\n" +
  1437. // " WORKSHOP,\n" +
  1438. // " LOGID,\n" +
  1439. // " TESTMOULDFLAG,\n" +
  1440. // " ZSCS,\n" +
  1441. // " CHARG)\n" +
  1442. // " VALUES\n" +
  1443. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1444. // " '5000',\n" +
  1445. // " '40',\n" +
  1446. // " :GOODSCODE,\n" +
  1447. // " :SAPCODE,\n" +
  1448. // " :USERCODE,\n" +
  1449. // " :OUTPUTNUM,\n" +
  1450. // " :SCRAPNUM,\n" +
  1451. // " :CLEANUPNUM,\n" +
  1452. // " :REPAIRNUM,\n" +
  1453. // " :WORKSHOP,\n" +
  1454. // " :LOGID,\n" +
  1455. // " :TESTMOULDFLAG,\n" +
  1456. // " :ZSCS,\n" +
  1457. // " :CHARG)";
  1458. // paras = new OracleParameter[]
  1459. // {
  1460. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1461. // new OracleParameter(":SAPCODE",oldMatnr),
  1462. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1463. // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1464. // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1465. // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1466. // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1467. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1468. // new OracleParameter(":LOGID",logid),
  1469. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1470. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1471. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1472. // };
  1473. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1474. // }
  1475. // #endregion
  1476. // }
  1477. // #endregion
  1478. // #region 50节点
  1479. // else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
  1480. // {
  1481. // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  1482. // //记录logid
  1483. // logids.Add(logid);
  1484. // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  1485. // " (LOGID,\n" +
  1486. // " LOGTYPE,\n" +
  1487. // " BEGINTIME,\n" +
  1488. // " YYYYMMDD,\n" +
  1489. // " WORKCODE,\n" +
  1490. // " DATACODE,\n" +
  1491. // " DATASTUTS,\n" +
  1492. // " DATAMSG,\n" +
  1493. // " DATALOGID,\n" +
  1494. // " EXECUTEDATEBEGIN,\n" +
  1495. // " EXECUTEDATEEND,\n" +
  1496. // " REMARKS,\n" +
  1497. // " SAPGUID)\n" +
  1498. // " VALUES\n" +
  1499. // " (:LOGID,\n" +
  1500. // " '4',\n" +
  1501. // " SYSDATE,\n" +
  1502. // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1503. // " 5000,\n" +
  1504. // " :DATACODE,\n" +
  1505. // " 'Q',\n" +
  1506. // " '',\n" +
  1507. // " :LOGID,\n" +
  1508. // " SYSDATE,\n" +
  1509. // " SYSDATE,\n" +
  1510. // " :REMARKS,\n" +
  1511. // " SYS_GUID())";
  1512. // paras = new OracleParameter[]
  1513. // {
  1514. // new OracleParameter(":LOGID",logid),
  1515. // new OracleParameter(":DATACODE","50"),
  1516. // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
  1517. // };
  1518. // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1519. // #region 明细
  1520. // DataTable table50 = sapresultTable.Copy();
  1521. // DataRow[] drRow50 = table50.Select("DATACODE = 50");
  1522. // foreach (DataRow row in drRow50)
  1523. // {
  1524. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1525. // " (YYYYMMDD,\n" +
  1526. // " WORKCODE,\n" +
  1527. // " DATACODE,\n" +
  1528. // " GOODSCODE,\n" +
  1529. // " SAPCODE,\n" +
  1530. // " USERCODE,\n" +
  1531. // " OUTPUTNUM,\n" +
  1532. // " SCRAPNUM,\n" +
  1533. // " CLEANUPNUM,\n" +
  1534. // " REPAIRNUM,\n" +
  1535. // " WORKSHOP,\n" +
  1536. // " LOGID,\n" +
  1537. // " TESTMOULDFLAG,\n" +
  1538. // " ZSCS,\n" +
  1539. // " CHARG)\n" +
  1540. // " VALUES\n" +
  1541. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1542. // " '5000',\n" +
  1543. // " '50',\n" +
  1544. // " :GOODSCODE,\n" +
  1545. // " :SAPCODE,\n" +
  1546. // " :USERCODE,\n" +
  1547. // " :OUTPUTNUM,\n" +
  1548. // " :SCRAPNUM,\n" +
  1549. // " :CLEANUPNUM,\n" +
  1550. // " :REPAIRNUM,\n" +
  1551. // " :WORKSHOP,\n" +
  1552. // " :LOGID,\n" +
  1553. // " :TESTMOULDFLAG,\n" +
  1554. // " :ZSCS,\n" +
  1555. // " :CHARG)";
  1556. // paras = new OracleParameter[]
  1557. // {
  1558. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1559. // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1560. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1561. // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1562. // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1563. // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1564. // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1565. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1566. // new OracleParameter(":LOGID",logid),
  1567. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1568. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1569. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1570. // };
  1571. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1572. // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
  1573. // " (YYYYMMDD,\n" +
  1574. // " WORKCODE,\n" +
  1575. // " DATACODE,\n" +
  1576. // " GOODSCODE,\n" +
  1577. // " SAPCODE,\n" +
  1578. // " USERCODE,\n" +
  1579. // " OUTPUTNUM,\n" +
  1580. // " SCRAPNUM,\n" +
  1581. // " CLEANUPNUM,\n" +
  1582. // " REPAIRNUM,\n" +
  1583. // " WORKSHOP,\n" +
  1584. // " LOGID,\n" +
  1585. // " TESTMOULDFLAG,\n" +
  1586. // " ZSCS,\n" +
  1587. // " CHARG)\n" +
  1588. // " VALUES\n" +
  1589. // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1590. // " '5000',\n" +
  1591. // " '50',\n" +
  1592. // " :GOODSCODE,\n" +
  1593. // " :SAPCODE,\n" +
  1594. // " :USERCODE,\n" +
  1595. // " :OUTPUTNUM,\n" +
  1596. // " :SCRAPNUM,\n" +
  1597. // " :CLEANUPNUM,\n" +
  1598. // " :REPAIRNUM,\n" +
  1599. // " :WORKSHOP,\n" +
  1600. // " :LOGID,\n" +
  1601. // " :TESTMOULDFLAG,\n" +
  1602. // " :ZSCS,\n" +
  1603. // " :CHARG)";
  1604. // paras = new OracleParameter[]
  1605. // {
  1606. // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1607. // new OracleParameter(":SAPCODE",oldMatnr),
  1608. // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1609. // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1610. // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1611. // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1612. // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1613. // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1614. // new OracleParameter(":LOGID",logid),
  1615. // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1616. // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1617. // new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1618. // };
  1619. // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1620. // }
  1621. // #endregion
  1622. // }
  1623. // #endregion
  1624. //}
  1625. #endregion
  1626. for (int j = 0; j < dTable.Rows.Count; j++)
  1627. {
  1628. string sqlText = "";
  1629. //判断有几个节点 20,30,40,50
  1630. #region 20节点
  1631. if (dTable.Rows[j]["DATACODE"].ToString() == "20")
  1632. {
  1633. #region 明细
  1634. DataTable table20 = sapresultTable.Copy();
  1635. DataRow[] drRow20 = table20.Select("DATACODE = 20");
  1636. foreach (DataRow row in drRow20)
  1637. {
  1638. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1639. " ( BARCODE,\n" +
  1640. " YYYYMMDD,\n" +
  1641. " WORKCODE,\n" +
  1642. " DATACODE,\n" +
  1643. " GOODSCODE,\n" +
  1644. " SAPCODE,\n" +
  1645. " USERCODE,\n" +
  1646. " OUTPUTNUM,\n" +
  1647. " SCRAPNUM,\n" +
  1648. " CLEANUPNUM,\n" +
  1649. " REPAIRNUM,\n" +
  1650. " WORKSHOP,\n" +
  1651. " TESTMOULDFLAG,\n" +
  1652. " ZSCS,\n" +
  1653. " CHARG)\n" +
  1654. " VALUES\n" +
  1655. " (:BARCODE,\n" +
  1656. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1657. " '5000',\n" +
  1658. " '20',\n" +
  1659. " :GOODSCODE,\n" +
  1660. " :SAPCODE,\n" +
  1661. " :USERCODE,\n" +
  1662. " :OUTPUTNUM,\n" +
  1663. " :SCRAPNUM,\n" +
  1664. " :CLEANUPNUM,\n" +
  1665. " :REPAIRNUM,\n" +
  1666. " :WORKSHOP,\n" +
  1667. " :TESTMOULDFLAG,\n" +
  1668. " :ZSCS,\n" +
  1669. " :CHARG)";
  1670. paras = new OracleParameter[]
  1671. {
  1672. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1673. new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1674. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1675. new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1676. new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1677. new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1678. new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1679. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1680. new OracleParameter(":BARCODE",barcode),
  1681. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1682. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1683. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1684. };
  1685. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1686. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1687. " (BARCODE,\n" +
  1688. " YYYYMMDD,\n" +
  1689. " WORKCODE,\n" +
  1690. " DATACODE,\n" +
  1691. " GOODSCODE,\n" +
  1692. " SAPCODE,\n" +
  1693. " USERCODE,\n" +
  1694. " OUTPUTNUM,\n" +
  1695. " SCRAPNUM,\n" +
  1696. " CLEANUPNUM,\n" +
  1697. " REPAIRNUM,\n" +
  1698. " WORKSHOP,\n" +
  1699. " TESTMOULDFLAG,\n" +
  1700. " ZSCS,\n" +
  1701. " CHARG)\n" +
  1702. " VALUES\n" +
  1703. " (:BARCODE,\n" +
  1704. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1705. " '5000',\n" +
  1706. " '20',\n" +
  1707. " :GOODSCODE,\n" +
  1708. " :SAPCODE,\n" +
  1709. " :USERCODE,\n" +
  1710. " :OUTPUTNUM,\n" +
  1711. " :SCRAPNUM,\n" +
  1712. " :CLEANUPNUM,\n" +
  1713. " :REPAIRNUM,\n" +
  1714. " :WORKSHOP,\n" +
  1715. " :TESTMOULDFLAG,\n" +
  1716. " :ZSCS,\n" +
  1717. " :CHARG)";
  1718. paras = new OracleParameter[]
  1719. {
  1720. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1721. new OracleParameter(":SAPCODE",oldMatnr),
  1722. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1723. new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1724. new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1725. new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1726. new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1727. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1728. new OracleParameter(":BARCODE",barcode),
  1729. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1730. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1731. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1732. };
  1733. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1734. }
  1735. #endregion
  1736. }
  1737. #endregion
  1738. #region 30节点
  1739. else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
  1740. {
  1741. #region 明细
  1742. DataTable table30 = sapresultTable.Copy();
  1743. DataRow[] drRow30 = table30.Select("DATACODE = 30");
  1744. foreach (DataRow row in drRow30)
  1745. {
  1746. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1747. " (BARCODE,\n" +
  1748. " YYYYMMDD,\n" +
  1749. " WORKCODE,\n" +
  1750. " DATACODE,\n" +
  1751. " GOODSCODE,\n" +
  1752. " SAPCODE,\n" +
  1753. " USERCODE,\n" +
  1754. " OUTPUTNUM,\n" +
  1755. " SCRAPNUM,\n" +
  1756. " CLEANUPNUM,\n" +
  1757. " REPAIRNUM,\n" +
  1758. " WORKSHOP,\n" +
  1759. " TESTMOULDFLAG,\n" +
  1760. " ZSCS,\n" +
  1761. " CHARG)\n" +
  1762. " VALUES\n" +
  1763. " (:BARCODE,\n" +
  1764. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1765. " '5000',\n" +
  1766. " '30',\n" +
  1767. " :GOODSCODE,\n" +
  1768. " :SAPCODE,\n" +
  1769. " :USERCODE,\n" +
  1770. " :OUTPUTNUM,\n" +
  1771. " :SCRAPNUM,\n" +
  1772. " :CLEANUPNUM,\n" +
  1773. " :REPAIRNUM,\n" +
  1774. " :WORKSHOP,\n" +
  1775. " :TESTMOULDFLAG,\n" +
  1776. " :ZSCS,\n" +
  1777. " :CHARG)";
  1778. paras = new OracleParameter[]
  1779. {
  1780. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1781. new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1782. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1783. new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1784. new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1785. new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1786. new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1787. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1788. new OracleParameter(":BARCODE",barcode),
  1789. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1790. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1791. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1792. };
  1793. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1794. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1795. " (BARCODE,\n" +
  1796. " YYYYMMDD,\n" +
  1797. " WORKCODE,\n" +
  1798. " DATACODE,\n" +
  1799. " GOODSCODE,\n" +
  1800. " SAPCODE,\n" +
  1801. " USERCODE,\n" +
  1802. " OUTPUTNUM,\n" +
  1803. " SCRAPNUM,\n" +
  1804. " CLEANUPNUM,\n" +
  1805. " REPAIRNUM,\n" +
  1806. " WORKSHOP,\n" +
  1807. " TESTMOULDFLAG,\n" +
  1808. " ZSCS,\n" +
  1809. " CHARG)\n" +
  1810. " VALUES\n" +
  1811. " (:BARCODE,\n" +
  1812. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1813. " '5000',\n" +
  1814. " '30',\n" +
  1815. " :GOODSCODE,\n" +
  1816. " :SAPCODE,\n" +
  1817. " :USERCODE,\n" +
  1818. " :OUTPUTNUM,\n" +
  1819. " :SCRAPNUM,\n" +
  1820. " :CLEANUPNUM,\n" +
  1821. " :REPAIRNUM,\n" +
  1822. " :WORKSHOP,\n" +
  1823. " :TESTMOULDFLAG,\n" +
  1824. " :ZSCS,\n" +
  1825. " :CHARG)";
  1826. paras = new OracleParameter[]
  1827. {
  1828. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1829. new OracleParameter(":SAPCODE",oldMatnr),
  1830. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1831. new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1832. new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1833. new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1834. new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1835. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1836. new OracleParameter(":BARCODE",barcode),
  1837. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1838. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1839. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1840. };
  1841. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1842. }
  1843. #endregion
  1844. }
  1845. #endregion
  1846. #region 40节点
  1847. else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
  1848. {
  1849. #region 明细
  1850. DataTable table40 = sapresultTable.Copy();
  1851. DataRow[] drRow40 = table40.Select("DATACODE = 40");
  1852. foreach (DataRow row in drRow40)
  1853. {
  1854. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1855. " (BARCODE,\n" +
  1856. " YYYYMMDD,\n" +
  1857. " WORKCODE,\n" +
  1858. " DATACODE,\n" +
  1859. " GOODSCODE,\n" +
  1860. " SAPCODE,\n" +
  1861. " USERCODE,\n" +
  1862. " OUTPUTNUM,\n" +
  1863. " SCRAPNUM,\n" +
  1864. " CLEANUPNUM,\n" +
  1865. " REPAIRNUM,\n" +
  1866. " WORKSHOP,\n" +
  1867. " TESTMOULDFLAG,\n" +
  1868. " ZSCS,\n" +
  1869. " CHARG)\n" +
  1870. " VALUES\n" +
  1871. " (:BARCODE,\n" +
  1872. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1873. " '5000',\n" +
  1874. " '40',\n" +
  1875. " :GOODSCODE,\n" +
  1876. " :SAPCODE,\n" +
  1877. " :USERCODE,\n" +
  1878. " :OUTPUTNUM,\n" +
  1879. " :SCRAPNUM,\n" +
  1880. " :CLEANUPNUM,\n" +
  1881. " :REPAIRNUM,\n" +
  1882. " :WORKSHOP,\n" +
  1883. " :TESTMOULDFLAG,\n" +
  1884. " :ZSCS,\n" +
  1885. " :CHARG)";
  1886. paras = new OracleParameter[]
  1887. {
  1888. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1889. new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1890. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1891. new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  1892. new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  1893. new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  1894. new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  1895. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1896. new OracleParameter(":BARCODE",barcode),
  1897. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1898. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1899. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1900. };
  1901. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1902. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1903. " (BARCODE,\n" +
  1904. " YYYYMMDD,\n" +
  1905. " WORKCODE,\n" +
  1906. " DATACODE,\n" +
  1907. " GOODSCODE,\n" +
  1908. " SAPCODE,\n" +
  1909. " USERCODE,\n" +
  1910. " OUTPUTNUM,\n" +
  1911. " SCRAPNUM,\n" +
  1912. " CLEANUPNUM,\n" +
  1913. " REPAIRNUM,\n" +
  1914. " WORKSHOP,\n" +
  1915. " TESTMOULDFLAG,\n" +
  1916. " ZSCS,\n" +
  1917. " CHARG)\n" +
  1918. " VALUES\n" +
  1919. " (:BARCODE,\n" +
  1920. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1921. " '5000',\n" +
  1922. " '40',\n" +
  1923. " :GOODSCODE,\n" +
  1924. " :SAPCODE,\n" +
  1925. " :USERCODE,\n" +
  1926. " :OUTPUTNUM,\n" +
  1927. " :SCRAPNUM,\n" +
  1928. " :CLEANUPNUM,\n" +
  1929. " :REPAIRNUM,\n" +
  1930. " :WORKSHOP,\n" +
  1931. " :TESTMOULDFLAG,\n" +
  1932. " :ZSCS,\n" +
  1933. " :CHARG)";
  1934. paras = new OracleParameter[]
  1935. {
  1936. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1937. new OracleParameter(":SAPCODE",oldMatnr),
  1938. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1939. new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  1940. new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  1941. new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  1942. new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  1943. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  1944. new OracleParameter(":BARCODE",barcode),
  1945. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  1946. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  1947. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  1948. };
  1949. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  1950. }
  1951. #endregion
  1952. }
  1953. #endregion
  1954. #region 50节点
  1955. else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
  1956. {
  1957. #region 明细
  1958. DataTable table50 = sapresultTable.Copy();
  1959. DataRow[] drRow50 = table50.Select("DATACODE = 50");
  1960. foreach (DataRow row in drRow50)
  1961. {
  1962. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  1963. " (BARCODE,\n" +
  1964. " YYYYMMDD,\n" +
  1965. " WORKCODE,\n" +
  1966. " DATACODE,\n" +
  1967. " GOODSCODE,\n" +
  1968. " SAPCODE,\n" +
  1969. " USERCODE,\n" +
  1970. " OUTPUTNUM,\n" +
  1971. " SCRAPNUM,\n" +
  1972. " CLEANUPNUM,\n" +
  1973. " REPAIRNUM,\n" +
  1974. " WORKSHOP,\n" +
  1975. " TESTMOULDFLAG,\n" +
  1976. " ZSCS,\n" +
  1977. " CHARG)\n" +
  1978. " VALUES\n" +
  1979. " (:BARCODE,\n" +
  1980. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  1981. " '5000',\n" +
  1982. " '50',\n" +
  1983. " :GOODSCODE,\n" +
  1984. " :SAPCODE,\n" +
  1985. " :USERCODE,\n" +
  1986. " :OUTPUTNUM,\n" +
  1987. " :SCRAPNUM,\n" +
  1988. " :CLEANUPNUM,\n" +
  1989. " :REPAIRNUM,\n" +
  1990. " :WORKSHOP,\n" +
  1991. " :TESTMOULDFLAG,\n" +
  1992. " :ZSCS,\n" +
  1993. " :CHARG)";
  1994. paras = new OracleParameter[]
  1995. {
  1996. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  1997. new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
  1998. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  1999. new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
  2000. new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
  2001. new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
  2002. new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
  2003. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  2004. new OracleParameter(":BARCODE",barcode),
  2005. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  2006. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  2007. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  2008. };
  2009. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2010. sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
  2011. " (BARCODE,\n" +
  2012. " YYYYMMDD,\n" +
  2013. " WORKCODE,\n" +
  2014. " DATACODE,\n" +
  2015. " GOODSCODE,\n" +
  2016. " SAPCODE,\n" +
  2017. " USERCODE,\n" +
  2018. " OUTPUTNUM,\n" +
  2019. " SCRAPNUM,\n" +
  2020. " CLEANUPNUM,\n" +
  2021. " REPAIRNUM,\n" +
  2022. " WORKSHOP,\n" +
  2023. " TESTMOULDFLAG,\n" +
  2024. " ZSCS,\n" +
  2025. " CHARG)\n" +
  2026. " VALUES\n" +
  2027. " (:BARCODE,\n" +
  2028. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  2029. " '5000',\n" +
  2030. " '50',\n" +
  2031. " :GOODSCODE,\n" +
  2032. " :SAPCODE,\n" +
  2033. " :USERCODE,\n" +
  2034. " :OUTPUTNUM,\n" +
  2035. " :SCRAPNUM,\n" +
  2036. " :CLEANUPNUM,\n" +
  2037. " :REPAIRNUM,\n" +
  2038. " :WORKSHOP,\n" +
  2039. " :TESTMOULDFLAG,\n" +
  2040. " :ZSCS,\n" +
  2041. " :CHARG)";
  2042. paras = new OracleParameter[]
  2043. {
  2044. new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
  2045. new OracleParameter(":SAPCODE",oldMatnr),
  2046. new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
  2047. new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
  2048. new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
  2049. new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
  2050. new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
  2051. new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
  2052. new OracleParameter(":BARCODE",barcode),
  2053. new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
  2054. new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
  2055. new OracleParameter(":CHARG",row["CHARG"].ToString()),
  2056. };
  2057. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2058. }
  2059. #endregion
  2060. }
  2061. #endregion
  2062. }
  2063. #region 更新总单状态为F
  2064. //string ids = string.Join(",", logids);
  2065. //if (!string.IsNullOrWhiteSpace(ids))
  2066. if (returnRows > 0)
  2067. {
  2068. //string sql1 = "update TSAP_HEGII_DATALOG_BG set DATASTUTS='F' where DATASTUTS = 'Q' AND LOGID IN (" + ids + ") ";
  2069. // returnRows += oracleTrConn.ExecuteNonQuery(sql1);
  2070. //更新商标变更明细表
  2071. //string sql1 = " update tp_pm_logochangedrecord set SAPFLAG='1',SAPLOGID = '" + ids + "' where barcode =" + barcode + " and createtime = to_date('" + cretetime + "','yyyy-mm-dd hh24:mi:ss')";
  2072. string sql1 = " update tp_pm_logochangedrecord set SAPFLAG='1' where barcode =" + barcode + " and createtime = to_date('" + cretetime + "','yyyy-mm-dd hh24:mi:ss')";
  2073. returnRows += oracleTrConn.ExecuteNonQuery(sql1);
  2074. }
  2075. #endregion
  2076. }
  2077. #endregion
  2078. }
  2079. }
  2080. }
  2081. oracleTrConn.Commit();
  2082. oracleTrConn.Disconnect();
  2083. }
  2084. catch (Exception ex)
  2085. {
  2086. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2087. {
  2088. oracleTrConn.Rollback();
  2089. oracleTrConn.Disconnect();
  2090. }
  2091. throw ex;
  2092. }
  2093. finally
  2094. {
  2095. if (oracleTrConn != null)
  2096. {
  2097. oracleTrConn.Close();
  2098. }
  2099. }
  2100. }
  2101. /// <summary>
  2102. /// 商标变更插入同步数据
  2103. /// </summary>
  2104. /// <param name="date">当前时间</param>
  2105. /// <param name="ndate">本次要执行到的时间</param>
  2106. public static void AutoWorkDataToSAP5000SBBGInsert(DateTime ndate)
  2107. {
  2108. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2109. ServiceResultEntity sre = new ServiceResultEntity();
  2110. try
  2111. {
  2112. string timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
  2113. FROM TSAP_HEGII_DATALOG_BG DL
  2114. WHERE DL.LOGTYPE = '4'
  2115. AND DL.REMARKS ='商标变更新' ";
  2116. DateTime createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
  2117. // 处理部分遗留数据+新表中保存的数据
  2118. string sqlString = "\n" +
  2119. "SELECT WB.WORKCODE\n" +
  2120. " ,WB.DATACODE\n" +
  2121. " ,WB.GOODSCODE\n" +
  2122. " ,WB.SAPCODE\n" +
  2123. " ,WB.USERCODE\n" +
  2124. " ,sum(WB.OUTPUTNUM) OUTPUTNUM\n" +
  2125. " ,sum(WB.SCRAPNUM) SCRAPNUM\n" +
  2126. " ,sum(WB.CLEANUPNUM) CLEANUPNUM\n" +
  2127. " ,sum(WB.REPAIRNUM) REPAIRNUM\n" +
  2128. " ,WB.WORKSHOP\n" +
  2129. " ,WB.TESTMOULDFLAG\n" +
  2130. " ,WB.ZSCS\n" +
  2131. " ,'24065000E' CHARG\n" +
  2132. "FROM TSAP_HEGII_WORKDATA_BG WB\n" +
  2133. "LEFT JOIN TSAP_HEGII_DATALOG_BG DL ON DL.LOGID=WB.LOGID\n" +
  2134. "WHERE DL.Datastuts IN( 'Q') AND DL.REMARKS NOT IN( '商标变更新')\n" +
  2135. "GROUP BY WB.WORKCODE\n" +
  2136. " ,WB.DATACODE\n" +
  2137. " ,WB.GOODSCODE\n" +
  2138. " ,WB.SAPCODE\n" +
  2139. " ,WB.USERCODE\n" +
  2140. " ,WB.WORKSHOP\n" +
  2141. " ,WB.TESTMOULDFLAG\n" +
  2142. " ,WB.ZSCS\n" +
  2143. " ,'24065000E'\n" +
  2144. "UNION ALL\n" +
  2145. "SELECT WB.WORKCODE\n" +
  2146. " ,WB.DATACODE\n" +
  2147. " ,WB.GOODSCODE\n" +
  2148. " ,WB.SAPCODE\n" +
  2149. " ,WB.USERCODE\n" +
  2150. " ,sum(WB.OUTPUTNUM) OUTPUTNUM\n" +
  2151. " ,sum(WB.SCRAPNUM) SCRAPNUM\n" +
  2152. " ,sum(WB.CLEANUPNUM) CLEANUPNUM\n" +
  2153. " ,sum(WB.REPAIRNUM) REPAIRNUM\n" +
  2154. " ,WB.WORKSHOP\n" +
  2155. " ,WB.TESTMOULDFLAG\n" +
  2156. " ,WB.ZSCS\n" +
  2157. " ,'24065000E' CHARG\n" +
  2158. "FROM TSAP_HEGII_WORKDATA_BG_SBBG WB\n" +
  2159. "WHERE WB.Createtime >= :BEGINDATE and WB.Createtime < :ENDDATE\n" +
  2160. "GROUP BY WB.WORKCODE\n" +
  2161. " ,WB.DATACODE\n" +
  2162. " ,WB.GOODSCODE\n" +
  2163. " ,WB.SAPCODE\n" +
  2164. " ,WB.USERCODE\n" +
  2165. " ,WB.WORKSHOP\n" +
  2166. " ,WB.TESTMOULDFLAG\n" +
  2167. " ,WB.ZSCS\n" +
  2168. " ,'24065000E'";
  2169. //同步结束时间 开始时间怎么取?暂定 取上次同步的结束时间
  2170. OracleParameter[] paras = new OracleParameter[]
  2171. {
  2172. new OracleParameter(":BEGINDATE", createtimebegin),
  2173. new OracleParameter(":ENDDATE", ndate),
  2174. };
  2175. DataTable detailTable = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  2176. int returnRows = 0;
  2177. //所有需要汇总数据
  2178. if (detailTable != null && detailTable.Rows.Count > 0)
  2179. {
  2180. #region sap报工
  2181. DataTable sapresultTable = detailTable;
  2182. //记录所有logid,先设置状态为Q,加完明细改为F
  2183. List<int> logids = new List<int>();
  2184. DataTable dTable = new DataTable();
  2185. //获取总单datacode
  2186. DataView dv = new DataView(sapresultTable);
  2187. dTable = dv.ToTable(true, "DATACODE");
  2188. #region 合并推送
  2189. for (int j = 0; j < dTable.Rows.Count; j++)
  2190. {
  2191. //sap日志总单(不同节点)
  2192. string sqlText = "SELECT SEQ_TSAP_DATALOG_BG.nextval FROM dual";
  2193. //判断有几个节点 20,30,40,50
  2194. #region 20节点
  2195. if (dTable.Rows[j]["DATACODE"].ToString() == "20")
  2196. {
  2197. int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  2198. //记录logid
  2199. logids.Add(logid);
  2200. timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
  2201. FROM TSAP_HEGII_DATALOG_BG DL
  2202. WHERE DL.LOGTYPE = '4'
  2203. AND DL.REMARKS ='商标变更新'
  2204. AND DL.DATACODE = '20' ";
  2205. createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
  2206. #region log总单
  2207. sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  2208. " (LOGID,\n" +
  2209. " LOGTYPE,\n" +
  2210. " BEGINTIME,\n" +
  2211. " YYYYMMDD,\n" +
  2212. " WORKCODE,\n" +
  2213. " DATACODE,\n" +
  2214. " DATASTUTS,\n" +
  2215. " DATAMSG,\n" +
  2216. " DATALOGID,\n" +
  2217. " EXECUTEDATEBEGIN,\n" +
  2218. " EXECUTEDATEEND,\n" +
  2219. " REMARKS,\n" +
  2220. " SAPGUID)\n" +
  2221. " VALUES\n" +
  2222. " (:LOGID,\n" +
  2223. " '4',\n" +
  2224. " SYSDATE,\n" +
  2225. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  2226. " '5000',\n" +
  2227. " '20',\n" +
  2228. " 'Q',\n" +
  2229. " '',\n" +
  2230. " :LOGID,\n" +
  2231. " :BEGINDATE,\n" +
  2232. " :ENDDATE,\n" +
  2233. " :REMARKS,\n" +
  2234. " SYS_GUID())";
  2235. paras = new OracleParameter[]
  2236. {
  2237. new OracleParameter(":LOGID",logid),
  2238. new OracleParameter(":REMARKS","商标变更新"),
  2239. new OracleParameter(":BEGINDATE", createtimebegin),
  2240. new OracleParameter(":ENDDATE", ndate),
  2241. };
  2242. returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2243. #endregion
  2244. #region 明细
  2245. sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
  2246. " (yyyymmdd\n" +
  2247. " ,workcode\n" +
  2248. " ,datacode\n" +
  2249. " ,goodscode\n" +
  2250. " ,sapcode\n" +
  2251. " ,usercode\n" +
  2252. " ,outputnum\n" +
  2253. " ,scrapnum\n" +
  2254. " ,cleanupnum\n" +
  2255. " ,repairnum\n" +
  2256. " ,workshop\n" +
  2257. " ,logid\n" +
  2258. " ,testmouldflag\n" +
  2259. " ,zscs\n" +
  2260. " ,charg)\n" +
  2261. " SELECT yyyymmdd\n" +
  2262. " ,workcode\n" +
  2263. " ,datacode\n" +
  2264. " ,goodscode\n" +
  2265. " ,sapcode\n" +
  2266. " ,usercode\n" +
  2267. " ,SUM(outputnum) outputnum\n" +
  2268. " ,SUM(scrapnum) scrapnum\n" +
  2269. " ,SUM(cleanupnum) cleanupnum\n" +
  2270. " ,SUM(repairnum) repairnum\n" +
  2271. " ,workshop\n" +
  2272. " ,logid\n" +
  2273. " ,testmouldflag\n" +
  2274. " ,zscs\n" +
  2275. " ,CHARG from (\n" +
  2276. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2277. " ,wb.workcode\n" +
  2278. " ,wb.datacode\n" +
  2279. " ,wb.goodscode\n" +
  2280. " ,wb.sapcode\n" +
  2281. " ,wb.usercode\n" +
  2282. " ,SUM(wb.outputnum) outputnum\n" +
  2283. " ,SUM(wb.scrapnum) scrapnum\n" +
  2284. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2285. " ,SUM(wb.repairnum) repairnum\n" +
  2286. " ,wb.workshop\n" +
  2287. " ,:LOGID logid\n" +
  2288. " ,wb.testmouldflag\n" +
  2289. " ,wb.zscs\n" +
  2290. " ,'24065000E' CHARG\n" +
  2291. " FROM tsap_hegii_workdata_bg wb\n" +
  2292. " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
  2293. " ON dl.logid = wb.logid\n" +
  2294. " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
  2295. " AND wb.datacode = '20'\n" +
  2296. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E'\n" +
  2297. " UNION ALL\n" +
  2298. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2299. " ,wb.workcode\n" +
  2300. " ,wb.datacode\n" +
  2301. " ,wb.goodscode\n" +
  2302. " ,wb.sapcode\n" +
  2303. " ,wb.usercode\n" +
  2304. " ,SUM(wb.outputnum) outputnum\n" +
  2305. " ,SUM(wb.scrapnum) scrapnum\n" +
  2306. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2307. " ,SUM(wb.repairnum) repairnum\n" +
  2308. " ,wb.workshop\n" +
  2309. " ,:LOGID logid\n" +
  2310. " ,wb.testmouldflag\n" +
  2311. " ,wb.zscs\n" +
  2312. " ,'24065000E' CHARG\n" +
  2313. " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
  2314. " WHERE wb.createtime >= :BEGINDATE\n" +
  2315. " AND wb.createtime < :ENDDATE\n" +
  2316. " AND wb.datacode = '20'\n" +
  2317. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
  2318. " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
  2319. paras = new OracleParameter[]
  2320. {
  2321. new OracleParameter(":LOGID",logid),
  2322. new OracleParameter(":ENDDATE", ndate),
  2323. new OracleParameter(":BEGINDATE", createtimebegin),
  2324. };
  2325. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2326. #endregion
  2327. }
  2328. #endregion
  2329. #region 30节点
  2330. else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
  2331. {
  2332. int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  2333. //记录logid
  2334. logids.Add(logid);
  2335. timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
  2336. FROM TSAP_HEGII_DATALOG_BG DL
  2337. WHERE DL.LOGTYPE = '4'
  2338. AND DL.REMARKS ='商标变更新'
  2339. AND DL.DATACODE = '30' ";
  2340. createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
  2341. sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  2342. " (LOGID,\n" +
  2343. " LOGTYPE,\n" +
  2344. " BEGINTIME,\n" +
  2345. " YYYYMMDD,\n" +
  2346. " WORKCODE,\n" +
  2347. " DATACODE,\n" +
  2348. " DATASTUTS,\n" +
  2349. " DATAMSG,\n" +
  2350. " DATALOGID,\n" +
  2351. " EXECUTEDATEBEGIN,\n" +
  2352. " EXECUTEDATEEND,\n" +
  2353. " REMARKS,\n" +
  2354. " SAPGUID)\n" +
  2355. " VALUES\n" +
  2356. " (:LOGID,\n" +
  2357. " '4',\n" +
  2358. " SYSDATE,\n" +
  2359. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  2360. " 5000,\n" +
  2361. " :DATACODE,\n" +
  2362. " 'Q',\n" +
  2363. " '',\n" +
  2364. " :LOGID,\n" +
  2365. " :BEGINDATE,\n" +
  2366. " :ENDDATE,\n" +
  2367. " :REMARKS,\n" +
  2368. " SYS_GUID())";
  2369. paras = new OracleParameter[]
  2370. {
  2371. new OracleParameter(":LOGID",logid),
  2372. new OracleParameter(":DATACODE","30"),
  2373. new OracleParameter(":REMARKS","商标变更新"),
  2374. new OracleParameter(":BEGINDATE", createtimebegin),
  2375. new OracleParameter(":ENDDATE", ndate),
  2376. };
  2377. returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2378. #region 明细
  2379. sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
  2380. " (yyyymmdd\n" +
  2381. " ,workcode\n" +
  2382. " ,datacode\n" +
  2383. " ,goodscode\n" +
  2384. " ,sapcode\n" +
  2385. " ,usercode\n" +
  2386. " ,outputnum\n" +
  2387. " ,scrapnum\n" +
  2388. " ,cleanupnum\n" +
  2389. " ,repairnum\n" +
  2390. " ,workshop\n" +
  2391. " ,logid\n" +
  2392. " ,testmouldflag\n" +
  2393. " ,zscs\n" +
  2394. " ,charg)\n" +
  2395. " SELECT yyyymmdd\n" +
  2396. " ,workcode\n" +
  2397. " ,datacode\n" +
  2398. " ,goodscode\n" +
  2399. " ,sapcode\n" +
  2400. " ,usercode\n" +
  2401. " ,SUM(outputnum) outputnum\n" +
  2402. " ,SUM(scrapnum) scrapnum\n" +
  2403. " ,SUM(cleanupnum) cleanupnum\n" +
  2404. " ,SUM(repairnum) repairnum\n" +
  2405. " ,workshop\n" +
  2406. " ,logid\n" +
  2407. " ,testmouldflag\n" +
  2408. " ,zscs\n" +
  2409. " ,CHARG from (\n" +
  2410. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2411. " ,wb.workcode\n" +
  2412. " ,wb.datacode\n" +
  2413. " ,wb.goodscode\n" +
  2414. " ,wb.sapcode\n" +
  2415. " ,wb.usercode\n" +
  2416. " ,SUM(wb.outputnum) outputnum\n" +
  2417. " ,SUM(wb.scrapnum) scrapnum\n" +
  2418. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2419. " ,SUM(wb.repairnum) repairnum\n" +
  2420. " ,wb.workshop\n" +
  2421. " ,:LOGID logid\n" +
  2422. " ,wb.testmouldflag\n" +
  2423. " ,wb.zscs\n" +
  2424. " ,'24065000E' CHARG\n" +
  2425. " FROM tsap_hegii_workdata_bg wb\n" +
  2426. " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
  2427. " ON dl.logid = wb.logid\n" +
  2428. " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
  2429. " AND wb.datacode = '30'\n" +
  2430. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E'\n" +
  2431. " UNION ALL\n" +
  2432. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2433. " ,wb.workcode\n" +
  2434. " ,wb.datacode\n" +
  2435. " ,wb.goodscode\n" +
  2436. " ,wb.sapcode\n" +
  2437. " ,wb.usercode\n" +
  2438. " ,SUM(wb.outputnum) outputnum\n" +
  2439. " ,SUM(wb.scrapnum) scrapnum\n" +
  2440. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2441. " ,SUM(wb.repairnum) repairnum\n" +
  2442. " ,wb.workshop\n" +
  2443. " ,:LOGID logid\n" +
  2444. " ,wb.testmouldflag\n" +
  2445. " ,wb.zscs\n" +
  2446. " ,'24065000E' CHARG\n" +
  2447. " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
  2448. " WHERE wb.createtime >= :BEGINDATE\n" +
  2449. " AND wb.createtime < :ENDDATE\n" +
  2450. " AND wb.datacode = '30'\n" +
  2451. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
  2452. " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
  2453. paras = new OracleParameter[]
  2454. {
  2455. new OracleParameter(":LOGID",logid),
  2456. new OracleParameter(":ENDDATE", ndate),
  2457. new OracleParameter(":BEGINDATE", createtimebegin),
  2458. };
  2459. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2460. #endregion
  2461. }
  2462. #endregion
  2463. #region 40节点
  2464. else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
  2465. {
  2466. int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  2467. //记录logid
  2468. logids.Add(logid);
  2469. timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
  2470. FROM TSAP_HEGII_DATALOG_BG DL
  2471. WHERE DL.LOGTYPE = '4'
  2472. AND DL.REMARKS ='商标变更新'
  2473. AND DL.DATACODE = '40' ";
  2474. createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
  2475. sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  2476. " (LOGID,\n" +
  2477. " LOGTYPE,\n" +
  2478. " BEGINTIME,\n" +
  2479. " YYYYMMDD,\n" +
  2480. " WORKCODE,\n" +
  2481. " DATACODE,\n" +
  2482. " DATASTUTS,\n" +
  2483. " DATAMSG,\n" +
  2484. " DATALOGID,\n" +
  2485. " EXECUTEDATEBEGIN,\n" +
  2486. " EXECUTEDATEEND,\n" +
  2487. " REMARKS,\n" +
  2488. " SAPGUID)\n" +
  2489. " VALUES\n" +
  2490. " (:LOGID,\n" +
  2491. " '4',\n" +
  2492. " SYSDATE,\n" +
  2493. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  2494. " 5000,\n" +
  2495. " :DATACODE,\n" +
  2496. " 'Q',\n" +
  2497. " '',\n" +
  2498. " :LOGID,\n" +
  2499. " :BEGINDATE,\n" +
  2500. " :ENDDATE,\n" +
  2501. " :REMARKS,\n" +
  2502. " SYS_GUID())";
  2503. paras = new OracleParameter[]
  2504. {
  2505. new OracleParameter(":LOGID",logid),
  2506. new OracleParameter(":DATACODE","40"),
  2507. new OracleParameter(":REMARKS","商标变更新"),
  2508. new OracleParameter(":BEGINDATE", createtimebegin),
  2509. new OracleParameter(":ENDDATE", ndate),
  2510. };
  2511. returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2512. #region 明细
  2513. sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
  2514. " (yyyymmdd\n" +
  2515. " ,workcode\n" +
  2516. " ,datacode\n" +
  2517. " ,goodscode\n" +
  2518. " ,sapcode\n" +
  2519. " ,usercode\n" +
  2520. " ,outputnum\n" +
  2521. " ,scrapnum\n" +
  2522. " ,cleanupnum\n" +
  2523. " ,repairnum\n" +
  2524. " ,workshop\n" +
  2525. " ,logid\n" +
  2526. " ,testmouldflag\n" +
  2527. " ,zscs\n" +
  2528. " ,charg)\n" +
  2529. " SELECT yyyymmdd\n" +
  2530. " ,workcode\n" +
  2531. " ,datacode\n" +
  2532. " ,goodscode\n" +
  2533. " ,sapcode\n" +
  2534. " ,usercode\n" +
  2535. " ,SUM(outputnum) outputnum\n" +
  2536. " ,SUM(scrapnum) scrapnum\n" +
  2537. " ,SUM(cleanupnum) cleanupnum\n" +
  2538. " ,SUM(repairnum) repairnum\n" +
  2539. " ,workshop\n" +
  2540. " ,logid\n" +
  2541. " ,testmouldflag\n" +
  2542. " ,zscs\n" +
  2543. " ,CHARG from (\n" +
  2544. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2545. " ,wb.workcode\n" +
  2546. " ,wb.datacode\n" +
  2547. " ,wb.goodscode\n" +
  2548. " ,wb.sapcode\n" +
  2549. " ,wb.usercode\n" +
  2550. " ,SUM(wb.outputnum) outputnum\n" +
  2551. " ,SUM(wb.scrapnum) scrapnum\n" +
  2552. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2553. " ,SUM(wb.repairnum) repairnum\n" +
  2554. " ,wb.workshop\n" +
  2555. " ,:LOGID logid\n" +
  2556. " ,wb.testmouldflag\n" +
  2557. " ,wb.zscs\n" +
  2558. " ,'24065000E' CHARG\n" +
  2559. " FROM tsap_hegii_workdata_bg wb\n" +
  2560. " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
  2561. " ON dl.logid = wb.logid\n" +
  2562. " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
  2563. " AND wb.datacode = '40'\n" +
  2564. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' \n" +
  2565. " UNION ALL\n" +
  2566. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2567. " ,wb.workcode\n" +
  2568. " ,wb.datacode\n" +
  2569. " ,wb.goodscode\n" +
  2570. " ,wb.sapcode\n" +
  2571. " ,wb.usercode\n" +
  2572. " ,SUM(wb.outputnum) outputnum\n" +
  2573. " ,SUM(wb.scrapnum) scrapnum\n" +
  2574. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2575. " ,SUM(wb.repairnum) repairnum\n" +
  2576. " ,wb.workshop\n" +
  2577. " ,:LOGID logid\n" +
  2578. " ,wb.testmouldflag\n" +
  2579. " ,wb.zscs\n" +
  2580. " ,'24065000E' CHARG\n" +
  2581. " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
  2582. " WHERE wb.createtime >= :BEGINDATE\n" +
  2583. " AND wb.createtime < :ENDDATE\n" +
  2584. " AND wb.datacode = '40'\n" +
  2585. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
  2586. " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
  2587. paras = new OracleParameter[]
  2588. {
  2589. new OracleParameter(":LOGID",logid),
  2590. new OracleParameter(":ENDDATE", ndate),
  2591. new OracleParameter(":BEGINDATE", createtimebegin),
  2592. };
  2593. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2594. #endregion
  2595. }
  2596. #endregion
  2597. #region 50节点
  2598. else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
  2599. {
  2600. int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  2601. //记录logid
  2602. logids.Add(logid);
  2603. timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
  2604. FROM TSAP_HEGII_DATALOG_BG DL
  2605. WHERE DL.LOGTYPE = '4'
  2606. AND DL.REMARKS ='商标变更新'
  2607. AND DL.DATACODE = '50' ";
  2608. createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
  2609. sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
  2610. " (LOGID,\n" +
  2611. " LOGTYPE,\n" +
  2612. " BEGINTIME,\n" +
  2613. " YYYYMMDD,\n" +
  2614. " WORKCODE,\n" +
  2615. " DATACODE,\n" +
  2616. " DATASTUTS,\n" +
  2617. " DATAMSG,\n" +
  2618. " DATALOGID,\n" +
  2619. " EXECUTEDATEBEGIN,\n" +
  2620. " EXECUTEDATEEND,\n" +
  2621. " REMARKS,\n" +
  2622. " SAPGUID)\n" +
  2623. " VALUES\n" +
  2624. " (:LOGID,\n" +
  2625. " '4',\n" +
  2626. " SYSDATE,\n" +
  2627. " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
  2628. " 5000,\n" +
  2629. " :DATACODE,\n" +
  2630. " 'Q',\n" +
  2631. " '',\n" +
  2632. " :LOGID,\n" +
  2633. " :BEGINDATE,\n" +
  2634. " :ENDDATE,\n" +
  2635. " :REMARKS,\n" +
  2636. " SYS_GUID())";
  2637. paras = new OracleParameter[]
  2638. {
  2639. new OracleParameter(":LOGID",logid),
  2640. new OracleParameter(":DATACODE","50"),
  2641. new OracleParameter(":REMARKS","商标变更新"),
  2642. new OracleParameter(":BEGINDATE", createtimebegin),
  2643. new OracleParameter(":ENDDATE", ndate),
  2644. };
  2645. returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2646. #region 明细
  2647. sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
  2648. " (yyyymmdd\n" +
  2649. " ,workcode\n" +
  2650. " ,datacode\n" +
  2651. " ,goodscode\n" +
  2652. " ,sapcode\n" +
  2653. " ,usercode\n" +
  2654. " ,outputnum\n" +
  2655. " ,scrapnum\n" +
  2656. " ,cleanupnum\n" +
  2657. " ,repairnum\n" +
  2658. " ,workshop\n" +
  2659. " ,logid\n" +
  2660. " ,testmouldflag\n" +
  2661. " ,zscs\n" +
  2662. " ,charg)\n" +
  2663. " SELECT yyyymmdd\n" +
  2664. " ,workcode\n" +
  2665. " ,datacode\n" +
  2666. " ,goodscode\n" +
  2667. " ,sapcode\n" +
  2668. " ,usercode\n" +
  2669. " ,SUM(outputnum) outputnum\n" +
  2670. " ,SUM(scrapnum) scrapnum\n" +
  2671. " ,SUM(cleanupnum) cleanupnum\n" +
  2672. " ,SUM(repairnum) repairnum\n" +
  2673. " ,workshop\n" +
  2674. " ,logid\n" +
  2675. " ,testmouldflag\n" +
  2676. " ,zscs\n" +
  2677. " ,CHARG from (\n" +
  2678. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2679. " ,wb.workcode\n" +
  2680. " ,wb.datacode\n" +
  2681. " ,wb.goodscode\n" +
  2682. " ,wb.sapcode\n" +
  2683. " ,wb.usercode\n" +
  2684. " ,SUM(wb.outputnum) outputnum\n" +
  2685. " ,SUM(wb.scrapnum) scrapnum\n" +
  2686. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2687. " ,SUM(wb.repairnum) repairnum\n" +
  2688. " ,wb.workshop\n" +
  2689. " ,:LOGID logid\n" +
  2690. " ,wb.testmouldflag\n" +
  2691. " ,wb.zscs\n" +
  2692. " ,'24065000E' CHARG\n" +
  2693. " FROM tsap_hegii_workdata_bg wb\n" +
  2694. " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
  2695. " ON dl.logid = wb.logid\n" +
  2696. " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
  2697. " AND wb.datacode = '50'\n" +
  2698. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' \n" +
  2699. " UNION ALL\n" +
  2700. " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
  2701. " ,wb.workcode\n" +
  2702. " ,wb.datacode\n" +
  2703. " ,wb.goodscode\n" +
  2704. " ,wb.sapcode\n" +
  2705. " ,wb.usercode\n" +
  2706. " ,SUM(wb.outputnum) outputnum\n" +
  2707. " ,SUM(wb.scrapnum) scrapnum\n" +
  2708. " ,SUM(wb.cleanupnum) cleanupnum\n" +
  2709. " ,SUM(wb.repairnum) repairnum\n" +
  2710. " ,wb.workshop\n" +
  2711. " ,:LOGID logid\n" +
  2712. " ,wb.testmouldflag\n" +
  2713. " ,wb.zscs\n" +
  2714. " ,'24065000E' CHARG\n" +
  2715. " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
  2716. " WHERE wb.createtime >= :BEGINDATE\n" +
  2717. " AND wb.createtime < :ENDDATE\n" +
  2718. " AND wb.datacode = '50'\n" +
  2719. " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
  2720. " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
  2721. paras = new OracleParameter[]
  2722. {
  2723. new OracleParameter(":LOGID",logid),
  2724. new OracleParameter(":ENDDATE", ndate),
  2725. new OracleParameter(":BEGINDATE", createtimebegin),
  2726. };
  2727. returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
  2728. #endregion
  2729. }
  2730. #endregion
  2731. }
  2732. #endregion
  2733. #region 更新总单状态为F
  2734. string ids = string.Join(",", logids);
  2735. if (!string.IsNullOrWhiteSpace(ids))
  2736. {
  2737. string sql1 = "update TSAP_HEGII_DATALOG_BG set DATASTUTS='F' where DATASTUTS = 'Q' AND REMARKS = '商标变更新' AND LOGID IN (" + ids + ") ";
  2738. returnRows += oracleTrConn.ExecuteNonQuery(sql1);
  2739. returnRows += oracleTrConn.ExecuteNonQuery(sql1);
  2740. }
  2741. #endregion
  2742. #endregion
  2743. }
  2744. oracleTrConn.Commit();
  2745. oracleTrConn.Disconnect();
  2746. }
  2747. catch (Exception ex)
  2748. {
  2749. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2750. {
  2751. oracleTrConn.Rollback();
  2752. oracleTrConn.Disconnect();
  2753. }
  2754. throw ex;
  2755. }
  2756. finally
  2757. {
  2758. if (oracleTrConn != null)
  2759. {
  2760. oracleTrConn.Close();
  2761. }
  2762. }
  2763. }
  2764. /// <summary>
  2765. /// 执行与推送
  2766. /// </summary>
  2767. /// <param name="datacode"></param>
  2768. /// <param name="ndate"></param>
  2769. /// <returns></returns>
  2770. public static ServiceResultEntity SetWorkData1001_5000(string datacode, DateTime ndate)
  2771. {
  2772. ServiceResultEntity sre = new ServiceResultEntity();
  2773. IDBTransaction oracleConn = null;
  2774. try
  2775. {
  2776. #region 事务1,执行存储过程
  2777. OracleParameter[] paras = null;
  2778. int logid = 0;
  2779. string message = string.Empty;
  2780. // 1001 模具生产
  2781. if ("1001".Equals(datacode))
  2782. {
  2783. paras = new OracleParameter[]
  2784. {
  2785. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  2786. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  2787. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  2788. };
  2789. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2790. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG1001", paras);
  2791. int.TryParse(paras[1].Value + "", out logid);
  2792. message = paras[2].Value + "";
  2793. oracleConn.Commit();
  2794. }
  2795. // 如果logid为0,则数据没有生成
  2796. if (logid == 0)
  2797. {
  2798. sre.Status = Constant.ServiceResultStatus.Other;
  2799. sre.Message = message;
  2800. //return sre; // 推送之前失败的
  2801. }
  2802. #endregion
  2803. // 事物2,同步SAP接口
  2804. string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  2805. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  2806. if (SAP_ING_NEW == "1")
  2807. {
  2808. sre = SyncSap1001_5000(ndate, datacode);
  2809. }
  2810. return sre;
  2811. }
  2812. catch (Exception ex)
  2813. {
  2814. throw ex;
  2815. }
  2816. finally
  2817. {
  2818. if (oracleConn != null &&
  2819. oracleConn.ConnState == ConnectionState.Open)
  2820. {
  2821. oracleConn.Disconnect();
  2822. }
  2823. }
  2824. }
  2825. /// <summary>
  2826. /// 同步SAP接口5000端口新
  2827. /// </summary>
  2828. /// <param name="date"></param>
  2829. /// <param name="datacode"></param>
  2830. /// <param name="userid"></param>
  2831. /// <param name="logid"></param>
  2832. /// <returns></returns>
  2833. public static ServiceResultEntity SyncSap1001_5000(DateTime date, string datacode)
  2834. {
  2835. ServiceResultEntity sre = new ServiceResultEntity();
  2836. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2837. try
  2838. {
  2839. OracleParameter[] paras = null;
  2840. int r = 0;
  2841. // 查询当前节点所有不为S的日志
  2842. string sqlString = @"
  2843. SELECT DL.LOGID
  2844. FROM TSAP_HEGII_DATALOG_BG DL
  2845. WHERE DL.DATASTUTS = 'F'
  2846. AND DL.DATACODE = :DATACODE ";
  2847. paras = new OracleParameter[]
  2848. {
  2849. new OracleParameter(":DATACODE", datacode),
  2850. };
  2851. DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
  2852. if (dtLogID == null || dtLogID.Rows.Count == 0)
  2853. {
  2854. return sre;
  2855. }
  2856. string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
  2857. sqlString = @"
  2858. SELECT TO_CHAR(WD.ORDERCODE) AS ZID,
  2859. TO_CHAR(WD.WORKCODE) AS WERKS,
  2860. TO_CHAR(WD.SAPCODE) MATNR,
  2861. TO_CHAR(WD.YYYYMMDD) BUDAT,
  2862. TO_CHAR(WD.OUTPUTNUM) ZDKCL,
  2863. TO_CHAR(WD.ORDERITEM) IDNRK
  2864. FROM TSAP_HEGII_WORKDATA_BG WD
  2865. INNER JOIN TSAP_HEGII_DATALOG_BG DL
  2866. ON WD.LOGID = DL.LOGID
  2867. WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
  2868. paras = new OracleParameter[]
  2869. {
  2870. new OracleParameter(":DATACODE",datacode),
  2871. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  2872. };
  2873. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  2874. int num = workData.Rows.Count;
  2875. if (num > 0)
  2876. {
  2877. // 调用SAP接口
  2878. //string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
  2879. string postString = "{\"IT_TAB\":{\"item\":" + JsonHelper.ToJson(workData) + "}}";
  2880. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  2881. // 配置文件
  2882. string url_BG1001_049 = ini.ReadIniData("SAP_NEW_INFO", "Url_BG1001_049");
  2883. //string url_BG1001_049 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM049";
  2884. string result = PostData(url_BG1001_049, postString, "POST");
  2885. sqlString = @"
  2886. UPDATE TSAP_HEGII_DATALOG_BG T
  2887. SET T.ENDTIME = SYSDATE,
  2888. DATASTUTS = :DATASTUTS,
  2889. DATAMSG = :MSG
  2890. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  2891. paras = new OracleParameter[]
  2892. {
  2893. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
  2894. new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
  2895. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  2896. };
  2897. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  2898. sre.Message = JObject.Parse(result)["ZMSG"].ToString();
  2899. sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
  2900. }
  2901. else
  2902. {
  2903. sqlString = @"
  2904. UPDATE TSAP_HEGII_DATALOG_BG T
  2905. SET T.ENDTIME = SYSDATE,
  2906. DATASTUTS = :DATASTUTS,
  2907. DATAMSG = :MSG
  2908. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  2909. paras = new OracleParameter[]
  2910. {
  2911. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, "S", ParameterDirection.Input),
  2912. new OracleParameter(":MSG",OracleDbType.Varchar2, "num:0", ParameterDirection.Input),
  2913. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  2914. };
  2915. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  2916. sre.Message = "num:0";
  2917. sre.Result = "S";
  2918. }
  2919. oracleConn.Commit();
  2920. return sre;
  2921. }
  2922. catch (Exception ex)
  2923. {
  2924. OutputLog.TraceLog(LogPriority.Error,
  2925. "BG1001ToSAP",
  2926. "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  2927. ex.ToString(),
  2928. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  2929. throw ex;
  2930. }
  2931. finally
  2932. {
  2933. if (oracleConn != null &&
  2934. oracleConn.ConnState == ConnectionState.Open)
  2935. {
  2936. oracleConn.Disconnect();
  2937. }
  2938. }
  2939. }
  2940. /// <summary>
  2941. /// 执行与推送
  2942. /// </summary>
  2943. /// <param name="datacode"></param>
  2944. /// <param name="ndate"></param>
  2945. /// <returns></returns>
  2946. public static ServiceResultEntity SetWorkData10_50_5000(string datacode, DateTime ndate)
  2947. {
  2948. ServiceResultEntity sre = new ServiceResultEntity();
  2949. IDBTransaction oracleConn = null;
  2950. try
  2951. {
  2952. #region 事务1,执行存储过程
  2953. OracleParameter[] paras = null;
  2954. int logid = 0;
  2955. string message = string.Empty;
  2956. // 10 模具
  2957. if ("10".Equals(datacode))
  2958. {
  2959. paras = new OracleParameter[]
  2960. {
  2961. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  2962. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  2963. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  2964. };
  2965. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2966. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG10", paras);
  2967. int.TryParse(paras[1].Value + "", out logid);
  2968. message = paras[2].Value + "";
  2969. oracleConn.Commit();
  2970. }
  2971. // 20 湿坯
  2972. else if ("20".Equals(datacode))
  2973. {
  2974. paras = new OracleParameter[]
  2975. {
  2976. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  2977. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  2978. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  2979. };
  2980. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2981. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG20", paras);
  2982. int.TryParse(paras[1].Value + "", out logid);
  2983. message = paras[2].Value + "";
  2984. oracleConn.Commit();
  2985. }
  2986. // 30 精坯
  2987. else if ("30".Equals(datacode))
  2988. {
  2989. paras = new OracleParameter[]
  2990. {
  2991. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  2992. new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
  2993. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  2994. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  2995. };
  2996. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2997. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG30", paras);
  2998. int.TryParse(paras[2].Value + "", out logid);
  2999. message = paras[3].Value + "";
  3000. oracleConn.Commit();
  3001. }
  3002. // 40 釉坯
  3003. else if ("40".Equals(datacode))
  3004. {
  3005. paras = new OracleParameter[]
  3006. {
  3007. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  3008. new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
  3009. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  3010. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  3011. };
  3012. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3013. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG40", paras);
  3014. int.TryParse(paras[2].Value + "", out logid);
  3015. message = paras[3].Value + "";
  3016. oracleConn.Commit();
  3017. }
  3018. // 50 烧成
  3019. else if ("50".Equals(datacode))
  3020. {
  3021. paras = new OracleParameter[]
  3022. {
  3023. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  3024. new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
  3025. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  3026. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  3027. };
  3028. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3029. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG50", paras);
  3030. int.TryParse(paras[2].Value + "", out logid);
  3031. message = paras[3].Value + "";
  3032. oracleConn.Commit();
  3033. }
  3034. // 55 裸瓷包装
  3035. else if ("55".Equals(datacode))
  3036. {
  3037. paras = new OracleParameter[]
  3038. {
  3039. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  3040. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  3041. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  3042. };
  3043. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3044. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG55", paras);
  3045. int.TryParse(paras[1].Value + "", out logid);
  3046. message = paras[2].Value + "";
  3047. oracleConn.Commit();
  3048. }
  3049. // 如果logid为0,则数据没有生成
  3050. if (logid == 0)
  3051. {
  3052. sre.Status = Constant.ServiceResultStatus.Other;
  3053. sre.Message = message;
  3054. return sre;
  3055. }
  3056. #endregion
  3057. // 事物2,同步SAP接口
  3058. string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  3059. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  3060. if (SAP_ING_NEW == "1")
  3061. {
  3062. sre = SyncSap5000(ndate, datacode);
  3063. }
  3064. return sre;
  3065. }
  3066. catch (Exception ex)
  3067. {
  3068. throw ex;
  3069. }
  3070. finally
  3071. {
  3072. if (oracleConn != null &&
  3073. oracleConn.ConnState == ConnectionState.Open)
  3074. {
  3075. oracleConn.Disconnect();
  3076. }
  3077. }
  3078. }
  3079. /// <summary>
  3080. /// 同步SAP接口5000端口新
  3081. /// </summary>
  3082. /// <param name="date"></param>
  3083. /// <param name="datacode"></param>
  3084. /// <param name="userid"></param>
  3085. /// <param name="logid"></param>
  3086. /// <returns></returns>
  3087. public static ServiceResultEntity SyncSap5000(DateTime date, string datacode)
  3088. {
  3089. ServiceResultEntity sre = new ServiceResultEntity();
  3090. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3091. try
  3092. {
  3093. OracleParameter[] paras = null;
  3094. int r = 0;
  3095. // 查询当前节点所有不为S的日志
  3096. string sqlString = @"
  3097. SELECT DL.LOGID
  3098. FROM TSAP_HEGII_DATALOG_BG DL
  3099. WHERE 1 = 1
  3100. AND DL.DATASTUTS = 'F'
  3101. AND DL.LOGID > 6
  3102. AND DL.DATACODE = :DATACODE ";
  3103. paras = new OracleParameter[]
  3104. {
  3105. new OracleParameter(":DATACODE", datacode),
  3106. };
  3107. DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
  3108. string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
  3109. sqlString = @"
  3110. SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
  3111. WD.WORKCODE AS WERKS,
  3112. TO_CHAR(WD.GOODSCODE) GROES,
  3113. TO_CHAR(WD.SAPCODE) MATNR,
  3114. TO_CHAR(WD.USERCODE) ZGHNU,
  3115. TO_CHAR(WD.DATACODE) ZJDNU,
  3116. TO_CHAR(WD.YYYYMMDD) ZSCNU,
  3117. TO_CHAR(DL.EXECUTEDATEBEGIN, 'HH24MISS') ZKSSJ,
  3118. TO_CHAR(DL.EXECUTEDATEEND, 'YYYYMMDDHH24MISS') ZJSRQ,
  3119. TO_CHAR(WD.ORDERCODE) VBELN,
  3120. TO_CHAR(WD.ORDERITEM) POSNR,
  3121. TO_CHAR(WD.OUTPUTNUM) ZCLNG,
  3122. TO_CHAR(WD.SCRAPNUM) ZSPNG,
  3123. TO_CHAR(WD.CLEANUPNUM) ZQCNG,
  3124. TO_CHAR(WD.RECOVERYNUM) ZHSNG,
  3125. TO_CHAR(WD.REPAIRNUM) ZGBNG,
  3126. TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
  3127. DECODE(:DATACODE, 20, TO_CHAR(WD.ZSCS), 'T') AS ZSCS,
  3128. TO_CHAR(WD.WORKSHOP) ZSCCJ,
  3129. WD.CHARG,
  3130. TO_CHAR(:DATACODE) DATACODE,
  3131. WD.WORKCODE || WD.CHARG || LPAD(DL.LOGID, 10,'0') AS ZID
  3132. FROM TSAP_HEGII_WORKDATA_BG WD
  3133. INNER JOIN TSAP_HEGII_DATALOG_BG DL
  3134. ON WD.LOGID = DL.LOGID
  3135. WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
  3136. paras = new OracleParameter[]
  3137. {
  3138. new OracleParameter(":DATACODE",datacode),
  3139. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  3140. };
  3141. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  3142. int num = workData.Rows.Count;
  3143. // 调用SAP接口
  3144. string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
  3145. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  3146. // 配置文件
  3147. string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
  3148. // 测试
  3149. // string url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
  3150. // 正式
  3151. //string url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
  3152. string result = PostData(url030, postString, "POST");
  3153. sqlString = @"
  3154. UPDATE TSAP_HEGII_DATALOG_BG T
  3155. SET T.ENDTIME = SYSDATE,
  3156. DATASTUTS = :DATASTUTS,
  3157. DATAMSG = :MSG
  3158. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  3159. paras = new OracleParameter[]
  3160. {
  3161. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
  3162. new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
  3163. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  3164. };
  3165. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  3166. oracleConn.Commit();
  3167. sre.Message = JObject.Parse(result)["ZMSG"].ToString();
  3168. sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
  3169. return sre;
  3170. }
  3171. catch (Exception ex)
  3172. {
  3173. OutputLog.TraceLog(LogPriority.Error,
  3174. "BGToSAP",
  3175. "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  3176. ex.ToString(),
  3177. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  3178. throw ex;
  3179. }
  3180. finally
  3181. {
  3182. if (oracleConn != null &&
  3183. oracleConn.ConnState == ConnectionState.Open)
  3184. {
  3185. oracleConn.Disconnect();
  3186. }
  3187. }
  3188. }
  3189. /// <summary>
  3190. /// 查询同步日志
  3191. /// </summary>
  3192. /// <param name="cre"></param>
  3193. /// <param name="userInfo"></param>
  3194. /// <returns></returns>
  3195. public static ServiceResultEntity GetDataLog_BG(ClientRequestEntity cre)
  3196. {
  3197. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3198. ServiceResultEntity sre = new ServiceResultEntity();
  3199. try
  3200. {
  3201. string sqlString =
  3202. "select dl.logid\n" +
  3203. " ,dl.logtype\n" +
  3204. " ,dl.begintime\n" +
  3205. " ,dl.endtime\n" +
  3206. " ,dl.yyyymmdd\n" +
  3207. " ,dl.workcode\n" +
  3208. " ,dl.datacode\n" +
  3209. " ,dc.datacodename\n" +
  3210. " ,dl.datastuts\n" +
  3211. " ,dl.datamsg\n" +
  3212. " ,dl.datalogid\n" +
  3213. " ,dl.executedatebegin\n" +
  3214. " ,dl.executedateend\n" +
  3215. " ,u.usercode synusercode\n" +
  3216. " ,DECODE(dl.logtype, '4', dl.Remarks,'') AS Remarks\n" +
  3217. " from TSAP_HEGII_DATALOG_BG dl\n" +
  3218. " inner join tsap_hegii_datacode dc\n" +
  3219. " on dc.datacode = dl.datacode\n" +
  3220. " left join tp_mst_user u\n" +
  3221. " on u.userid = dl.createuserid\n" +
  3222. " where dl.logtype IN('2','3','4')\n" +
  3223. " and dl.datastuts <> 'N'\n" +
  3224. " and dl.executedatebegin >= :DATEBEGIN\n" +
  3225. " and dl.executedateend < :DATEEND\n" +
  3226. " and (-1= :DATACODE or dl.datacode=:DATACODE )";//add xiacm 2022-10-12
  3227. OracleParameter[] oracleParameter = new OracleParameter[]
  3228. {
  3229. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  3230. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  3231. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  3232. };
  3233. sqlString += "ORDER BY dl.logid DESC\n";
  3234. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  3235. return sre;
  3236. }
  3237. catch (Exception ex)
  3238. {
  3239. throw ex;
  3240. }
  3241. finally
  3242. {
  3243. if (oracleConn != null)
  3244. {
  3245. oracleConn.Close();
  3246. }
  3247. }
  3248. }
  3249. /// <summary>
  3250. /// 查询同步明细
  3251. /// </summary>
  3252. /// <param name="logid"></param>
  3253. /// <param name="userInfo"></param>
  3254. /// <returns></returns>
  3255. public static ServiceResultEntity GetWorkData_BG(ClientRequestEntity cre)
  3256. {
  3257. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3258. ServiceResultEntity sre = new ServiceResultEntity();
  3259. try
  3260. {
  3261. int logid = Convert.ToInt32(cre.Request);
  3262. string sqlString = "\n" +
  3263. "select wd.yyyymmdd\n" +
  3264. " ,wd.workcode\n" +
  3265. " ,wd.datacode\n" +
  3266. " ,dc.datacodename\n" +
  3267. " ,wd.goodscode\n" +
  3268. " ,wd.sapcode\n" +
  3269. " ,wd.usercode\n" +
  3270. " ,wd.ordercode\n" +
  3271. " ,wd.orderitem\n" +
  3272. " ,to_number(wd.outputnum) outputnum\n" +
  3273. " ,to_number(wd.scrapnum) scrapnum\n" +
  3274. " ,to_number(wd.cleanupnum) cleanupnum\n" +
  3275. " ,to_number(wd.recoverynum) recoverynum\n" +
  3276. " ,to_number(wd.repairnum) repairnum\n" +
  3277. " ,wd.createtime\n" +
  3278. " ,wd.ztype\n" +
  3279. " ,wd.zmsg\n" +
  3280. " ,wd.ztime\n" +
  3281. " ,wd.testmouldflag\n" +
  3282. " ,wd.zscs\n" +
  3283. " ,wd.logid\n" +
  3284. " from tsap_hegii_workdata_BG wd\n" +
  3285. " inner join TSAP_HEGII_DATALOG_BG dl\n" +
  3286. " on dl.logid = wd.logid\n" +
  3287. " inner join tsap_hegii_datacode dc\n" +
  3288. " on dc.datacode = wd.datacode\n";
  3289. //update xiacm 2022-10-12
  3290. if (logid > 0)
  3291. {
  3292. sqlString += " where wd.logid = :logid \n";
  3293. }
  3294. else
  3295. {
  3296. sqlString += " where dl.executedatebegin >= :DATEBEGIN and dl.executedateend <= :DATEEND";
  3297. sqlString += " and (-1= :DATACODE OR wd.datacode = :DATACODE)";
  3298. }
  3299. sqlString += " order by wd.goodscode,wd.sapcode,wd.usercode,wd.ordercode,wd.outputnum \n";
  3300. OracleParameter[] oracleParameter = new OracleParameter[]
  3301. {
  3302. new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
  3303. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  3304. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  3305. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  3306. };
  3307. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  3308. return sre;
  3309. }
  3310. catch (Exception ex)
  3311. {
  3312. throw ex;
  3313. }
  3314. finally
  3315. {
  3316. if (oracleConn != null)
  3317. {
  3318. oracleConn.Close();
  3319. }
  3320. }
  3321. }
  3322. /// <summary>
  3323. /// 报工汇总 add xiacm 2022-10-12
  3324. /// </summary>
  3325. /// <param name="cre"></param>
  3326. /// <returns></returns>
  3327. public static ServiceResultEntity GetDataLogTotal_BG(ClientRequestEntity cre)
  3328. {
  3329. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3330. ServiceResultEntity sre = new ServiceResultEntity();
  3331. try
  3332. {
  3333. string sqlString = @" SELECT T.DATACODE,
  3334. T.ACTUALOUTPUT,
  3335. T.WORKSHOP,
  3336. T.OUTPUT,
  3337. T.SCRAPNUM,
  3338. T.CLEANNUPNUM,
  3339. T.RECOVERYNUM,
  3340. T.REPAIRNUM,
  3341. T.DRCXFDRJJDCCP,
  3342. T.DRJJBQTRCXDCCP,
  3343. T.DIFFER FROM (
  3344. SELECT T1.DATACODE,
  3345. to_char(T1.ACTUALOUTPUT) ACTUALOUTPUT,
  3346. '-' as WORKSHOP,
  3347. T2.OUTPUT,
  3348. T2.SCRAPNUM,
  3349. T2.CLEANNUPNUM,
  3350. T2.RECOVERYNUM,
  3351. T2.REPAIRNUM,
  3352. to_char(T3.DRCXFDRJJDCCP) DRCXFDRJJDCCP,
  3353. to_char(T4.DRJJBQTRCXDCCP) DRJJBQTRCXDCCP,
  3354. to_char(T1.ACTUALOUTPUT + NVL(T4.DRJJBQTRCXDCCP, 0) - NVL(T3.DRCXFDRJJDCCP, 0) -
  3355. (T2.OUTPUT + T2.RECOVERYNUM)) AS DIFFER
  3356. FROM (
  3357. -- 业务数据汇总
  3358. -- 10
  3359. SELECT '10' AS DATACODE,
  3360. SUM(DECODE(MHH.OPERATIONTYPE, 1, M.STANDARDGROUTINGSUM, 0)) AS ACTUALOUTPUT
  3361. FROM (SELECT MH.GOODSID,
  3362. MH.MOULDID,
  3363. MH.OPERATIONTYPE,
  3364. MH.GROUTINGNUM
  3365. FROM TP_PC_MOULDCHANGEHISTORY MH
  3366. WHERE MH.OPERATIONTYPE IN (1, 2, 3, 9, 11, -1)
  3367. AND MH.CREATETIME >= :DATEBEGIN
  3368. AND MH.CREATETIME < :DATEEND
  3369. UNION ALL
  3370. SELECT MH.GOODSIDAFTER,
  3371. MH.MOULDID,
  3372. 0,
  3373. MH.GROUTINGNUM
  3374. FROM TP_PC_MOULDCHANGEHISTORY MH
  3375. WHERE MH.OPERATIONTYPE = -1
  3376. AND MH.CREATETIME >= :DATEBEGIN
  3377. AND MH.CREATETIME < :DATEEND) MHH
  3378. INNER JOIN TP_PC_MOULD M
  3379. ON M.MOULDID = MHH.MOULDID
  3380. UNION ALL
  3381. -- 20
  3382. SELECT '20' AS DATACODE,
  3383. SUM(DECODE(GH.DATATYPE, 1, 1, -1)) BUSINESSOUTPUT
  3384. FROM TP_PM_GOODSCHANGEHISTORY GH
  3385. INNER JOIN TP_MST_GOODS G
  3386. ON G.GOODSID = GH.GOODSID
  3387. WHERE GH.CREATETIME >= :DATEBEGIN
  3388. AND GH.CREATETIME < :DATEEND
  3389. AND GH.DATATYPE IN (1, 2)
  3390. AND G.SCRAPSUMFLAG = '1'
  3391. UNION ALL
  3392. -- 30
  3393. SELECT '30' AS DATACODE,
  3394. SUM(T1.CC) AS BUSINESSOUTPUT
  3395. FROM (SELECT 1 AS CC
  3396. FROM TP_PM_PRODUCTIONDATA P
  3397. WHERE P.PROCEDUREID IN (53, 97,161)
  3398. AND P.CREATETIME >= :DATEBEGIN
  3399. AND P.CREATETIME < :DATEEND
  3400. UNION ALL
  3401. SELECT -1 AS CC
  3402. FROM TP_PM_PRODUCTIONDATA P
  3403. WHERE P.PROCEDUREID IN (53, 97,161)
  3404. AND P.VALUEFLAG = '0'
  3405. AND P.BACKOUTTIME >= :DATEBEGIN
  3406. AND P.BACKOUTTIME < :DATEEND) T1
  3407. UNION ALL
  3408. -- 40
  3409. SELECT '40' AS DATACODE,
  3410. SUM(T1.CC) AS BUSINESSOUTPUT
  3411. FROM (SELECT 1 AS CC
  3412. FROM TP_PM_PRODUCTIONDATA P
  3413. WHERE P.PROCEDUREID IN (65, 99)
  3414. AND P.CREATETIME >= :DATEBEGIN
  3415. AND P.CREATETIME < :DATEEND
  3416. UNION ALL
  3417. SELECT -1 AS CC
  3418. FROM TP_PM_PRODUCTIONDATA P
  3419. WHERE P.PROCEDUREID IN (65, 99)
  3420. AND P.VALUEFLAG = '0'
  3421. AND P.BACKOUTTIME >= :DATEBEGIN
  3422. AND P.BACKOUTTIME < :DATEEND) T1
  3423. UNION ALL
  3424. -- 50
  3425. SELECT '50' AS DATACODE,
  3426. SUM(T1.CC) AS BUSINESSOUTPUT
  3427. FROM (SELECT COUNT(DISTINCT P.BARCODE) AS CC
  3428. FROM TP_PM_PRODUCTIONDATA P
  3429. WHERE P.PROCEDUREID IN (11, 104)
  3430. AND P.ISREFIRE = '0'
  3431. AND P.ISLENGBU = '0'
  3432. AND ((P.PROCEDUREID = 11 AND (P.CHECKFLAG = '1' OR P.CHECKFLAG IS NULL))
  3433. OR (P.PROCEDUREID = 104 AND P.CHECKFLAG = '1'))
  3434. AND P.CREATETIME >= :DATEBEGIN
  3435. AND P.CREATETIME < :DATEEND
  3436. UNION ALL
  3437. SELECT -1 AS CC
  3438. FROM TP_PM_PRODUCTIONDATA P
  3439. WHERE P.PROCEDUREID = 11
  3440. AND P.VALUEFLAG = '0'
  3441. AND P.ISREFIRE = '0'
  3442. AND P.ISLENGBU = '0'
  3443. AND P.BACKOUTTIME >= :DATEBEGIN
  3444. AND P.BACKOUTTIME < :DATEEND) T1
  3445. UNION ALL
  3446. -- 55
  3447. SELECT '55' AS DATACODE,
  3448. COUNT(1) AS BUSINESSOUTPUT
  3449. FROM TP_PM_LCFHDO GH
  3450. WHERE GH.LCFHTIME >= :DATEBEGIN
  3451. AND GH.LCFHTIME < :DATEEND
  3452. AND NOT EXISTS(SELECT 1 FROM tp_pm_lcfhundo lf WHERE lf.groutingdailydetailid = gh.groutingdailydetailid and lf.lcfhtime = gh.lcfhtime)
  3453. UNION ALL
  3454. -- 60
  3455. SELECT '60' AS DATACODE,
  3456. COUNT(1) AS BUSINESSOUTPUT
  3457. FROM TP_PM_FINISHEDPRODUCT GH
  3458. WHERE GH.FHTIME >= :DATEBEGIN
  3459. AND GH.FHTIME < :DATEEND) T1
  3460. LEFT JOIN (
  3461. -- 当日推送日志数据汇总
  3462. SELECT DATACODE AS DATACODETD,
  3463. SUM(TO_NUMBER(OUTPUTNUM)) AS OUTPUT,
  3464. SUM(TO_NUMBER(SCRAPNUM)) AS SCRAPNUM,
  3465. SUM(TO_NUMBER(CLEANUPNUM)) AS CLEANNUPNUM,
  3466. SUM(TO_NUMBER(RECOVERYNUM)) AS RECOVERYNUM,
  3467. SUM(TO_NUMBER(REPAIRNUM)) AS REPAIRNUM
  3468. FROM TSAP_HEGII_WORKDATA_BG
  3469. WHERE LOGID IN (SELECT LOGID
  3470. FROM TSAP_HEGII_DATALOG_BG T
  3471. WHERE DATASTUTS = 'S'
  3472. AND EXECUTEDATEBEGIN >= :DATEBEGIN
  3473. AND EXECUTEDATEEND <= :DATEEND)
  3474. GROUP BY DATACODE
  3475. ORDER BY DATACODE) T2
  3476. ON T2.DATACODETD = T1.DATACODE
  3477. LEFT JOIN (
  3478. -- 当日撤销非当日交接的产成品
  3479. SELECT '60' AS DATACODE,
  3480. COUNT(WL.CODEI) AS DRCXFDRJJDCCP
  3481. FROM TP_WMS_LOG WL
  3482. WHERE LOGTYPE = 2
  3483. AND EXISTS (SELECT 1
  3484. FROM TP_WMS_LOG WL1
  3485. WHERE WL1.CODEI = WL.CODEI
  3486. AND WL1.LOGTYPE = 1
  3487. AND TRUNC(WL1.CREATETIME) < TRUNC(WL.CREATETIME))
  3488. AND WL.CREATETIME >= :DATEBEGIN
  3489. AND WL.CREATETIME < :DATEEND
  3490. UNION ALL
  3491. --55节点(裸瓷包装)
  3492. SELECT '55' AS DATACODE,
  3493. COUNT(WL.GROUTINGDAILYDETAILID) AS DRCXFDRJJDCCP
  3494. FROM TP_PM_LCFHUNDO WL
  3495. WHERE WL.CREATETIME >= :DATEBEGIN
  3496. AND WL.CREATETIME < :DATEEND
  3497. AND WL.LCFHTIME < :DATEBEGIN
  3498. ) T3
  3499. ON T3.DATACODE = T1.DATACODE
  3500. LEFT JOIN (
  3501. -- 当日交接被其他日撤销的产成品
  3502. SELECT '60' AS DATACODE,
  3503. COUNT(WL.CODEI) AS DRJJBQTRCXDCCP
  3504. FROM TP_WMS_LOG WL
  3505. WHERE LOGTYPE = 1
  3506. AND EXISTS (SELECT 1
  3507. FROM TP_WMS_LOG WL1
  3508. WHERE WL1.CODEI = WL.CODEI
  3509. AND WL1.LOGTYPE = 2
  3510. AND TRUNC(WL1.CREATETIME) > TRUNC(WL.CREATETIME))
  3511. AND WL.CREATETIME >= :DATEBEGIN
  3512. AND WL.CREATETIME < :DATEEND
  3513. UNION ALL
  3514. --55节点(裸瓷包装)
  3515. SELECT '55' AS DATACODE,
  3516. COUNT(WL.GROUTINGDAILYDETAILID) AS DRJJBQTRCXDCCP
  3517. FROM TP_PM_LCFHDO WL
  3518. WHERE EXISTS (SELECT 1
  3519. FROM TP_PM_LCFHUNDO WL1
  3520. WHERE WL1.GROUTINGDAILYDETAILID = WL.GROUTINGDAILYDETAILID
  3521. AND TRUNC(WL1.CREATETIME) > TRUNC(WL.CREATETIME))
  3522. AND WL.CREATETIME >= :DATEBEGIN
  3523. AND WL.CREATETIME < :DATEEND
  3524. ) T4
  3525. ON T4.DATACODE = T1.DATACODE
  3526. UNION ALL
  3527. SELECT T2.DATACODE,
  3528. '' ACTUALOUTPUT,
  3529. TO_CHAR(T2.WORKSHOP) WORKSHOP,
  3530. T2.OUTPUT,
  3531. T2.SCRAPNUM,
  3532. T2.CLEANNUPNUM,
  3533. T2.RECOVERYNUM,
  3534. T2.REPAIRNUM,
  3535. '' AS DRCXFDRJJDCCP,
  3536. '' AS DRJJBQTRCXDCCP,
  3537. '' AS DIFFER
  3538. FROM (
  3539. -- 当日推送日志数据汇总
  3540. SELECT DATACODE ,
  3541. WORKSHOP,
  3542. SUM(TO_NUMBER(OUTPUTNUM)) AS OUTPUT,
  3543. SUM(TO_NUMBER(SCRAPNUM)) AS SCRAPNUM,
  3544. SUM(TO_NUMBER(CLEANUPNUM)) AS CLEANNUPNUM,
  3545. SUM(TO_NUMBER(RECOVERYNUM)) AS RECOVERYNUM,
  3546. SUM(TO_NUMBER(REPAIRNUM)) AS REPAIRNUM
  3547. FROM TSAP_HEGII_WORKDATA_BG
  3548. WHERE LOGID IN (SELECT LOGID
  3549. FROM TSAP_HEGII_DATALOG_BG T
  3550. WHERE DATASTUTS = 'S'
  3551. AND T.DATACODE IN ('20','30','40','50','55','60')
  3552. AND EXECUTEDATEBEGIN >= :DATEBEGIN
  3553. AND EXECUTEDATEEND <= :DATEEND )
  3554. GROUP BY DATACODE ,WORKSHOP
  3555. ORDER BY DATACODE ) T2
  3556. ) T
  3557. WHERE (-1 = :DATACODE OR T.DATACODE = :DATACODE)
  3558. ORDER BY T.DATACODE,T.WORKSHOP";
  3559. OracleParameter[] oracleParameter = new OracleParameter[]
  3560. {
  3561. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  3562. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  3563. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  3564. };
  3565. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  3566. return sre;
  3567. }
  3568. catch (Exception ex)
  3569. {
  3570. throw ex;
  3571. }
  3572. finally
  3573. {
  3574. if (oracleConn != null)
  3575. {
  3576. oracleConn.Close();
  3577. }
  3578. }
  3579. }
  3580. /// <summary>
  3581. /// 半成品库存 add xiacm 2022-11-09
  3582. /// </summary>
  3583. /// <param name="cre"></param>
  3584. /// <returns></returns>
  3585. public static ServiceResultEntity GetDataIVITotal_BC(ClientRequestEntity cre)
  3586. {
  3587. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3588. ServiceResultEntity sre = new ServiceResultEntity();
  3589. try
  3590. {
  3591. string sqlString = @"SELECT semi.DATACODE ,
  3592. semi.WORKSHOP ,
  3593. semi.MATERIALCODE ,
  3594. semi.GOODSCODE ,
  3595. semi.GOODSNAME ,
  3596. COUNT(1) AS INVENTORYQUANTITY,
  3597. SYSDATE AS CREATETIME
  3598. FROM (
  3599. --配置表里的所有工序
  3600. SELECT DI.DATACODE,
  3601. CASE
  3602. WHEN DI.WORKSHOP = 0
  3603. AND DI.ITEMTYPE = 1
  3604. AND IP.KILNCODE = 'SK1' THEN
  3605. 1
  3606. WHEN DI.WORKSHOP = 0
  3607. AND DI.ITEMTYPE = 1
  3608. AND IP.KILNCODE = 'SK2' THEN
  3609. 2
  3610. WHEN DI.WORKSHOP = 0
  3611. AND DI.ITEMTYPE = 1
  3612. AND IP.KILNCODE = 'SK3' THEN
  3613. 3
  3614. WHEN DI.WORKSHOP = 2
  3615. AND DI.ITEMTYPE = 1
  3616. AND IP.KILNCODE = 'TK1' THEN
  3617. 1
  3618. WHEN DI.WORKSHOP = 2
  3619. AND DI.ITEMTYPE = 1
  3620. AND IP.KILNCODE = 'TK2' THEN
  3621. 2
  3622. WHEN DI.WORKSHOP = 2
  3623. AND DI.ITEMTYPE = 2
  3624. AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
  3625. 2
  3626. WHEN DI.WORKSHOP = 2
  3627. AND DI.ITEMTYPE = 2
  3628. AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
  3629. 1
  3630. WHEN DI.WORKSHOP = 3 THEN
  3631. 3
  3632. ELSE
  3633. 0
  3634. END WORKSHOP,
  3635. GDD.MATERIALCODE,
  3636. G.GOODSCODE,
  3637. G.GOODSNAME
  3638. FROM TP_PM_INPRODUCTION IP
  3639. INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
  3640. ON IP.PROCEDUREID = DI.ITEMID
  3641. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  3642. ON IP.BARCODE = GDD.BARCODE
  3643. INNER JOIN TP_MST_GOODS G
  3644. ON G.GOODSID = GDD.GOODSID
  3645. INNER JOIN TP_MST_GOODSTYPE GT
  3646. ON GT.GOODSTYPEID = G.GOODSTYPEID
  3647. UNION ALL
  3648. --10-0干补
  3649. SELECT DI.DATACODE,
  3650. CASE
  3651. WHEN DI.WORKSHOP = 0
  3652. AND DI.ITEMTYPE = 1
  3653. AND IP.KILNCODE = 'SK1' THEN
  3654. 1
  3655. WHEN DI.WORKSHOP = 0
  3656. AND DI.ITEMTYPE = 1
  3657. AND IP.KILNCODE = 'SK2' THEN
  3658. 2
  3659. WHEN DI.WORKSHOP = 0
  3660. AND DI.ITEMTYPE = 1
  3661. AND IP.KILNCODE = 'SK3' THEN
  3662. 3
  3663. WHEN DI.WORKSHOP = 2
  3664. AND DI.ITEMTYPE = 1
  3665. AND IP.KILNCODE = 'TK1' THEN
  3666. 1
  3667. WHEN DI.WORKSHOP = 2
  3668. AND DI.ITEMTYPE = 1
  3669. AND IP.KILNCODE = 'TK2' THEN
  3670. 2
  3671. WHEN DI.WORKSHOP = 2
  3672. AND DI.ITEMTYPE = 2
  3673. AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
  3674. 2
  3675. WHEN DI.WORKSHOP = 2
  3676. AND DI.ITEMTYPE = 2
  3677. AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
  3678. 1
  3679. WHEN DI.WORKSHOP = 3 THEN
  3680. 3
  3681. ELSE
  3682. 0
  3683. END WORKSHOP,
  3684. GDD.MATERIALCODE,
  3685. G.GOODSCODE,
  3686. G.GOODSNAME
  3687. FROM TP_PM_INPRODUCTION IP
  3688. INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
  3689. ON IP.FLOWPROCEDUREID = DI.ITEMID
  3690. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  3691. ON IP.BARCODE = GDD.BARCODE
  3692. INNER JOIN TP_MST_GOODS G
  3693. ON G.GOODSID = GDD.GOODSID
  3694. INNER JOIN TP_MST_GOODSTYPE GT
  3695. ON GT.GOODSTYPEID = G.GOODSTYPEID
  3696. WHERE PROCEDUREID = 18
  3697. UNION ALL
  3698. --未交坯
  3699. SELECT '20' DATACODE,
  3700. CASE
  3701. WHEN INSTR(GT.GOODSTYPECODE, '001001') = 1
  3702. AND
  3703. (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
  3704. 2
  3705. WHEN INSTR(GT.GOODSTYPECODE, '001002') = 1
  3706. AND
  3707. (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
  3708. 1
  3709. WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN
  3710. 3
  3711. ELSE
  3712. 0
  3713. END WORKSHOP,
  3714. GDD.MATERIALCODE,
  3715. G.GOODSCODE,
  3716. G.GOODSNAME
  3717. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  3718. INNER JOIN TP_MST_GOODS G
  3719. ON GDD.GOODSID = G.GOODSID
  3720. INNER JOIN TP_MST_GOODSTYPE GT
  3721. ON GT.GOODSTYPEID = G.GOODSTYPEID
  3722. WHERE GDD.VALUEFLAG = 1
  3723. AND GDD.BARCODE IS NOT NULL
  3724. AND GDD.BEGINNINGFLAG = 0
  3725. AND GDD.DELIVERFLAG = 0
  3726. AND GDD.SCRAPFLAG = 0) semi
  3727. where (:DATACODE is null or :DATACODE ='' or :DATACODE ='-1' or instr(','||:DATACODE||',',','||semi.DATACODE||',')>0)
  3728. and (:WORKSHOP is null or :WORKSHOP = '' or instr(','||:WORKSHOP||',',','||semi.WORKSHOP||',')>0)
  3729. and (:MATERIALCODE is null or :MATERIALCODE = '' or instr(','||:MATERIALCODE||',',','||semi.MATERIALCODE||',')>0)
  3730. GROUP BY DATACODE,
  3731. WORKSHOP,
  3732. MATERIALCODE,
  3733. GOODSCODE,
  3734. GOODSNAME
  3735. ORDER BY DATACODE,
  3736. WORKSHOP,
  3737. MATERIALCODE,
  3738. GOODSCODE,
  3739. GOODSNAME";
  3740. OracleParameter[] oracleParameter = new OracleParameter[]
  3741. {
  3742. new OracleParameter(":WORKSHOP",OracleDbType.Varchar2, cre.Properties["WORKSHOP"], ParameterDirection.Input),
  3743. new OracleParameter(":MATERIALCODE",OracleDbType.Varchar2, cre.Properties["MATERIALCODE"], ParameterDirection.Input),
  3744. new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
  3745. };
  3746. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  3747. return sre;
  3748. }
  3749. catch (Exception ex)
  3750. {
  3751. throw ex;
  3752. }
  3753. finally
  3754. {
  3755. if (oracleConn != null)
  3756. {
  3757. oracleConn.Close();
  3758. }
  3759. }
  3760. }
  3761. /// <summary>
  3762. /// 同步SAP接口5000端口_60节点
  3763. /// </summary>
  3764. /// <param name="date"></param>
  3765. /// <param name="datacode"></param>
  3766. /// <param name="userid"></param>
  3767. /// <param name="logid"></param>
  3768. /// <returns></returns>
  3769. public static ServiceResultEntity SyncSap5000_60(DateTime date)
  3770. {
  3771. ServiceResultEntity sre = new ServiceResultEntity();
  3772. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3773. try
  3774. {
  3775. OracleParameter[] paras = null;
  3776. int r = 0;
  3777. // 查询当前节点所有不为S的日志
  3778. string sqlString = @"
  3779. SELECT DL.LOGID
  3780. FROM TSAP_HEGII_DATALOG_BG DL
  3781. WHERE 1 = 1
  3782. AND DL.DATASTUTS = 'F'
  3783. AND DL.LOGID > 6
  3784. AND DL.DATACODE = '60'
  3785. ORDER BY DL.LOGID ";
  3786. DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString);
  3787. if (dtLogID.Rows.Count == 0)
  3788. {
  3789. sre.Result = "S";
  3790. sre.Message = "没有要同步的数据";
  3791. return sre;
  3792. }
  3793. string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
  3794. sqlString = @"
  3795. SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
  3796. TO_CHAR(5000) WERKS,
  3797. TO_CHAR(WD.GOODSCODE) GROES,
  3798. TO_CHAR(WD.SAPCODE) MATNR,
  3799. TO_CHAR(WD.USERCODE) ZGHNU,
  3800. TO_CHAR(WD.DATACODE) ZJDNU,
  3801. TO_CHAR(WD.CREATETIME, 'YYYYMMDD') ZSCNU,
  3802. TO_CHAR(WD.CREATETIME, 'HH24MISS') ZKSSJ,
  3803. TO_CHAR(WD.CREATETIME, 'YYYYMMDDHH24MISS') ZJSRQ,
  3804. TO_CHAR(WD.ORDERCODE) VBELN,
  3805. TO_CHAR(WD.ORDERITEM) POSNR,
  3806. TO_CHAR(WD.OUTPUTNUM) ZCLNG,
  3807. TO_CHAR(WD.SCRAPNUM) ZSPNG,
  3808. TO_CHAR(WD.CLEANUPNUM) ZQCNG,
  3809. TO_CHAR(WD.RECOVERYNUM) ZHSNG,
  3810. TO_CHAR(WD.REPAIRNUM) ZGBNG,
  3811. TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
  3812. --'T' AS ZSCS,
  3813. TO_CHAR(WD.ZSCS) ZSCS,
  3814. TO_CHAR(WD.WORKSHOP) ZSCCJ,
  3815. WD.CHARG,
  3816. '60' DATACODE,
  3817. '5000' || WD.CHARG || LPAD(DL.LOGID, 10, '0') AS ZID
  3818. FROM TSAP_HEGII_WORKDATA_BG WD
  3819. INNER JOIN TSAP_HEGII_DATALOG_BG DL
  3820. ON WD.LOGID = DL.LOGID
  3821. WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0
  3822. ORDER BY WD.LOGID ";
  3823. paras = new OracleParameter[]
  3824. {
  3825. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  3826. };
  3827. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  3828. int num = workData.Rows.Count;
  3829. //sqlString = @"
  3830. //SELECT ZID,
  3831. // WERKS,
  3832. // MATNR,
  3833. // ZJDNU,
  3834. // ZSCS,
  3835. // ZSCCJ,
  3836. // ZSCMS,
  3837. // ZSCNU,
  3838. // ZKSSJ,
  3839. // ZGHNU,
  3840. // GROES,
  3841. // POSNR,
  3842. // IDNRK,
  3843. // MENGE,
  3844. // MEINS,
  3845. // CHARG,
  3846. // LGORT
  3847. // FROM TSAP_HEGII_WORKDATA_BG_ZB
  3848. // WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0
  3849. // ORDER BY LOGID ";
  3850. //paras = new OracleParameter[]
  3851. //{
  3852. // new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  3853. //};
  3854. //DataTable dtDetail = oracleConn.GetSqlResultToDt(sqlString, paras);
  3855. // 调用SAP接口
  3856. //string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}"
  3857. // + ",\"TABLE_IN1\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAPDetail>.ConvertToModel(dtDetail)) + "}}";
  3858. string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
  3859. // 配置文件
  3860. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  3861. string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
  3862. // 测试
  3863. //url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
  3864. // 正式
  3865. //url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
  3866. string result = string.Empty;
  3867. try
  3868. {
  3869. result = PostData(url030, postString, "POST");
  3870. }
  3871. catch (Exception ex)
  3872. {
  3873. sre.Result = -2;
  3874. sre.Message = "sap030接口同步失败," + ex.Message;
  3875. return sre;
  3876. }
  3877. sqlString = @"
  3878. UPDATE TSAP_HEGII_DATALOG_BG T
  3879. SET T.ENDTIME = SYSDATE,
  3880. DATASTUTS = :DATASTUTS,
  3881. DATAMSG = :MSG
  3882. WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
  3883. paras = new OracleParameter[]
  3884. {
  3885. new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
  3886. new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
  3887. new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
  3888. };
  3889. r = oracleConn.ExecuteNonQuery(sqlString, paras);
  3890. #region 同步WMS系统
  3891. DateTime now = DateTime.Now;
  3892. string message = string.Empty;
  3893. string sqlFpData = @"
  3894. SELECT WL.SKU,
  3895. WL.SERIALNO,
  3896. WL.ADDDAY,
  3897. WL.ADDTIME,
  3898. WL.CODEI,
  3899. WL.UDF1,
  3900. WL.UDF2,
  3901. WL.LPN,
  3902. WL.CREATETIME,
  3903. GDD.SECURITYCODE,
  3904. WL.LOGTYPE
  3905. FROM TP_WMS_LOG WL
  3906. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  3907. ON GDD.BARCODE = WL.CODEI
  3908. WHERE WL.VALUEFLAG = '1'
  3909. AND WL.BGLOGID = :BGLOGID ";
  3910. string sqlUpdate = @"
  3911. UPDATE TP_WMS_LOG
  3912. SET RETURNDESC = :RETURNDESC,
  3913. UPDATETIME = :UPDATETIME
  3914. WHERE BGLOGID = :BGLOGID ";
  3915. foreach (DataRow row in dtLogID.Rows)
  3916. {
  3917. // 歇2s,调太快会给接口累着。
  3918. Thread.Sleep(2000);
  3919. paras = new OracleParameter[]
  3920. {
  3921. new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
  3922. };
  3923. DataTable fpData = oracleConn.GetSqlResultToDt(sqlFpData, paras);
  3924. if (fpData.Rows.Count > 0)
  3925. {
  3926. if ("1".Equals(fpData.Rows[0]["LOGTYPE"] + ""))
  3927. {
  3928. message = WMSDataLogic.PushWMS2(fpData, now);
  3929. }
  3930. else
  3931. {
  3932. message = WMSDataLogic.BackPushWMS2(fpData, now);
  3933. }
  3934. }
  3935. paras = new OracleParameter[]
  3936. {
  3937. new OracleParameter(":RETURNDESC", OracleDbType.NVarchar2, message, ParameterDirection.Input),
  3938. new OracleParameter(":UPDATETIME", OracleDbType.Date, now, ParameterDirection.Input),
  3939. new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
  3940. };
  3941. r = oracleConn.ExecuteNonQuery(sqlUpdate, paras);
  3942. }
  3943. #endregion
  3944. oracleConn.Commit();
  3945. sre.Message = JObject.Parse(result)["ZMSG"].ToString();
  3946. sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
  3947. return sre;
  3948. }
  3949. catch (Exception ex)
  3950. {
  3951. OutputLog.TraceLog(LogPriority.Error,
  3952. "BGToSAP",
  3953. "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  3954. ex.ToString(),
  3955. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  3956. throw ex;
  3957. }
  3958. finally
  3959. {
  3960. if (oracleConn != null && oracleConn.ConnState == ConnectionState.Open)
  3961. {
  3962. oracleConn.Disconnect();
  3963. }
  3964. }
  3965. }
  3966. #endregion
  3967. #region 报工移库
  3968. /// <summary>
  3969. /// 报工移库_同步SAP数据(自动)
  3970. /// </summary>
  3971. /// <param name="date"></param>
  3972. public static void BGYKToSAP(DateTime date, DateTime ndate)
  3973. {
  3974. IDBTransaction oracleConn = null;
  3975. ServiceResultEntity sre = new ServiceResultEntity();
  3976. int logid = 0;
  3977. string message = string.Empty;
  3978. string sqlString = string.Empty;
  3979. try
  3980. {
  3981. #region 生成日志
  3982. OracleParameter[] paras = new OracleParameter[]
  3983. {
  3984. new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
  3985. new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
  3986. new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
  3987. };
  3988. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3989. DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BGYK", paras);
  3990. int.TryParse(paras[1].Value + "", out logid);
  3991. message = paras[2].Value + "";
  3992. oracleConn.Commit();
  3993. #endregion
  3994. #region 同步SAP
  3995. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3996. //2022年9月8日11:38:51 更改 by fy
  3997. //sqlString = @"
  3998. //SELECT WERKS,
  3999. // MATNR,
  4000. // ZJDNU,
  4001. // ZSCS,
  4002. // ZSCCJ,
  4003. // ZSCMS,
  4004. // CHARG,
  4005. // MENGE,
  4006. // ZMLID
  4007. // FROM TSAP_HEGII_WORKDATA_BGYK
  4008. // WHERE LOGID = :LOGID ";
  4009. sqlString = @"SELECT
  4010. A.WERKS,
  4011. A.MATNR,
  4012. A.ZJDNU,
  4013. -- A.ZSCS,
  4014. 'T' AS ZSCS,
  4015. A.ZSCCJ,
  4016. A.ZSCMS,
  4017. A.CHARG,
  4018. A.MENGE,
  4019. A.ZMLID,
  4020. to_char(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
  4021. to_char(B.EXECUTEDATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
  4022. to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
  4023. to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT,
  4024. '' AS ZTYPE1,
  4025. '' AS ZMSG1
  4026. FROM
  4027. TSAP_HEGII_WORKDATA_BGYK A
  4028. INNER JOIN TSAP_HEGII_DATALOG_BGYK B ON B.LOGID = A.LOGID
  4029. WHERE
  4030. A.LOGID = :LOGID";
  4031. paras = new OracleParameter[]
  4032. {
  4033. new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
  4034. };
  4035. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  4036. //获取报工SAP接口是否开启
  4037. sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  4038. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  4039. if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "1")
  4040. {
  4041. string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
  4042. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  4043. string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
  4044. //url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
  4045. string result = PostData(url034, postString, "POST");
  4046. string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  4047. string zmsg = JObject.Parse(result)["ZMSG"].ToString();
  4048. sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
  4049. paras = new OracleParameter[]
  4050. {
  4051. new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  4052. new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  4053. new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
  4054. };
  4055. oracleConn.ExecuteNonQuery(sqlString, paras);
  4056. oracleConn.Commit();
  4057. }
  4058. #endregion
  4059. }
  4060. catch (Exception ex)
  4061. {
  4062. OutputLog.TraceLog(LogPriority.Error,
  4063. "BGYKToSAP",
  4064. "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  4065. ex.ToString(),
  4066. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  4067. }
  4068. finally
  4069. {
  4070. if (oracleConn != null)
  4071. {
  4072. oracleConn.Close();
  4073. }
  4074. }
  4075. }
  4076. public static void BGYKToSAP_TEST(DateTime date, DateTime ndate)
  4077. {
  4078. IDBTransaction oracleConn = null;
  4079. ServiceResultEntity sre = new ServiceResultEntity();
  4080. int logid = 0;
  4081. string message = string.Empty;
  4082. string sqlString = string.Empty;
  4083. try
  4084. {
  4085. #region 同步SAP
  4086. oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4087. //2022年9月8日11:38:51 更改 by fy
  4088. //sqlString = @"
  4089. //SELECT WERKS,
  4090. // MATNR,
  4091. // ZJDNU,
  4092. // ZSCS,
  4093. // ZSCCJ,
  4094. // ZSCMS,
  4095. // CHARG,
  4096. // MENGE,
  4097. // ZMLID
  4098. // FROM TSAP_HEGII_WORKDATA_BGYK
  4099. // WHERE LOGID = :LOGID ";
  4100. sqlString = @"SELECT '5000' WERKS,MATNR,to_char(ZJDNU) ZJDNU,'T' AS ZSCS,to_char(ZSCCJ) ZSCCJ,to_char(ZSCMS) ZSCMS,to_char(CHARG)CHARG,
  4101. to_char(MENGE) MENGE,to_char(ZMLID) ZMLID,
  4102. to_char(:V_DATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
  4103. to_char(:IN_DATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
  4104. to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
  4105. to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT FROM (
  4106. SELECT
  4107. T.MATNR,
  4108. '30' AS ZJDNU,
  4109. G.GOODS_LINE_CODE AS ZSCS,
  4110. '2' AS ZSCCJ,
  4111. T.ZSCMS,
  4112. TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  4113. SUM( T.MENGE ) AS MENGE,
  4114. '3' AS ZMLID
  4115. FROM
  4116. (-- 3-3线上施釉(3)到3#刮登(99)
  4117. SELECT
  4118. GDD.GOODSID,
  4119. GDD.MATERIALCODE AS MATNR,
  4120. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4121. COUNT( 1 ) AS MENGE
  4122. FROM
  4123. TP_PM_PRODUCTIONDATA PD1
  4124. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4125. WHERE
  4126. PD1.CREATETIME >= :V_DATEBEGIN
  4127. AND PD1.CREATETIME < :IN_DATEEND
  4128. AND PD1.PROCEDUREID = 99
  4129. AND PD1.VALUEFLAG = '1'
  4130. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
  4131. GROUP BY
  4132. GDD.GOODSID,
  4133. GDD.MATERIALCODE,
  4134. GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
  4135. SELECT
  4136. GDD.GOODSID,
  4137. GDD.MATERIALCODE AS MATNR,
  4138. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4139. - COUNT( 1 ) AS MENGE
  4140. FROM
  4141. TP_PM_PRODUCTIONDATA PD1
  4142. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4143. WHERE
  4144. PD1.BACKOUTTIME >= :V_DATEBEGIN
  4145. AND PD1.BACKOUTTIME < :IN_DATEEND
  4146. AND PD1.PROCEDUREID = 99
  4147. AND PD1.VALUEFLAG = '0'
  4148. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
  4149. GROUP BY
  4150. GDD.GOODSID,
  4151. GDD.MATERIALCODE,
  4152. GDD.TESTMOULDFLAG
  4153. ) T
  4154. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  4155. GROUP BY
  4156. T.MATNR,
  4157. T.ZSCMS,
  4158. G.GOODS_LINE_CODE UNION ALL
  4159. SELECT
  4160. T.MATNR,
  4161. '40' AS ZJDNU,
  4162. G.GOODS_LINE_CODE AS ZSCS,
  4163. '2' AS ZSCCJ,
  4164. T.ZSCMS,
  4165. TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  4166. SUM( T.MENGE ) AS MENGE,
  4167. '3' AS ZMLID
  4168. FROM
  4169. (-- 3#卸窑(103)到7-1成检出窑交接(11)
  4170. SELECT
  4171. GDD.GOODSID,
  4172. GDD.MATERIALCODE AS MATNR,
  4173. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4174. COUNT( 1 ) AS MENGE
  4175. FROM
  4176. TP_PM_PRODUCTIONDATA PD1
  4177. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4178. WHERE
  4179. PD1.CREATETIME >= :V_DATEBEGIN
  4180. AND PD1.CREATETIME < :IN_DATEEND
  4181. AND PD1.PROCEDUREID = 11
  4182. AND PD1.VALUEFLAG = '1'
  4183. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
  4184. GROUP BY
  4185. GDD.GOODSID,
  4186. GDD.MATERIALCODE,
  4187. GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
  4188. SELECT
  4189. GDD.GOODSID,
  4190. GDD.MATERIALCODE AS MATNR,
  4191. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4192. - COUNT( 1 ) AS MENGE
  4193. FROM
  4194. TP_PM_PRODUCTIONDATA PD1
  4195. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4196. WHERE
  4197. PD1.BACKOUTTIME >= :V_DATEBEGIN
  4198. AND PD1.BACKOUTTIME < :IN_DATEEND
  4199. AND PD1.PROCEDUREID = 11
  4200. AND PD1.VALUEFLAG = '0'
  4201. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
  4202. GROUP BY
  4203. GDD.GOODSID,
  4204. GDD.MATERIALCODE,
  4205. GDD.TESTMOULDFLAG
  4206. ) T
  4207. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  4208. GROUP BY
  4209. T.MATNR,
  4210. T.ZSCMS,
  4211. G.GOODS_LINE_CODE UNION ALL
  4212. SELECT
  4213. T.MATNR,
  4214. '40' AS ZJDNU,
  4215. G.GOODS_LINE_CODE AS ZSCS,
  4216. '3' AS ZSCCJ,
  4217. T.ZSCMS,
  4218. TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
  4219. SUM( T.MENGE ) AS MENGE,
  4220. '2' AS ZMLID
  4221. FROM
  4222. (-- 6-1卸窑(10)到3#成检交接(104)
  4223. SELECT
  4224. GDD.GOODSID,
  4225. GDD.MATERIALCODE AS MATNR,
  4226. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4227. COUNT( 1 ) AS MENGE
  4228. FROM
  4229. TP_PM_PRODUCTIONDATA PD1
  4230. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4231. WHERE
  4232. PD1.CREATETIME >= :V_DATEBEGIN
  4233. AND PD1.CREATETIME < :IN_DATEEND
  4234. AND PD1.PROCEDUREID = 104
  4235. AND PD1.VALUEFLAG = '1'
  4236. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
  4237. GROUP BY
  4238. GDD.GOODSID,
  4239. GDD.MATERIALCODE,
  4240. GDD.TESTMOULDFLAG UNION ALL-- 6-1卸窑(10)到3#成检交接(104)撤销了的
  4241. SELECT
  4242. GDD.GOODSID,
  4243. GDD.MATERIALCODE AS MATNR,
  4244. DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
  4245. - COUNT( 1 ) AS MENGE
  4246. FROM
  4247. TP_PM_PRODUCTIONDATA PD1
  4248. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
  4249. WHERE
  4250. PD1.BACKOUTTIME >= :V_DATEBEGIN
  4251. AND PD1.BACKOUTTIME < :IN_DATEEND
  4252. AND PD1.PROCEDUREID = 104
  4253. AND PD1.VALUEFLAG = '0'
  4254. AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
  4255. GROUP BY
  4256. GDD.GOODSID,
  4257. GDD.MATERIALCODE,
  4258. GDD.TESTMOULDFLAG
  4259. ) T
  4260. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
  4261. GROUP BY
  4262. T.MATNR,
  4263. T.ZSCMS,
  4264. G.GOODS_LINE_CODE
  4265. ) WHERE MENGE > 0";
  4266. OracleParameter[] paras = new OracleParameter[]
  4267. {
  4268. new OracleParameter(":V_DATEBEGIN",OracleDbType.Date, date, ParameterDirection.Input),
  4269. new OracleParameter(":IN_DATEEND",OracleDbType.Date, ndate, ParameterDirection.Input),
  4270. };
  4271. DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
  4272. //获取报工SAP接口是否开启
  4273. sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
  4274. string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
  4275. if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
  4276. {
  4277. string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
  4278. //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  4279. //string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
  4280. string url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
  4281. string result = PostData(url034, postString, "POST");
  4282. string ztype = JObject.Parse(result)["ZTYPE"].ToString();
  4283. string zmsg = JObject.Parse(result)["ZMSG"].ToString();
  4284. //sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
  4285. //paras = new OracleParameter[]
  4286. //{
  4287. // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
  4288. // new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
  4289. // new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
  4290. //};
  4291. //oracleConn.ExecuteNonQuery(sqlString, paras);
  4292. oracleConn.Commit();
  4293. }
  4294. #endregion
  4295. }
  4296. catch (Exception ex)
  4297. {
  4298. OutputLog.TraceLog(LogPriority.Error,
  4299. "BGYKToSAP",
  4300. "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
  4301. ex.ToString(),
  4302. LocalPath.LogExePath + "SAP_HEGII\\Error_");
  4303. }
  4304. finally
  4305. {
  4306. if (oracleConn != null)
  4307. {
  4308. oracleConn.Close();
  4309. }
  4310. }
  4311. }
  4312. /// <summary>
  4313. /// 查询同步日志
  4314. /// </summary>
  4315. /// <param name="cre"></param>
  4316. /// <param name="userInfo"></param>
  4317. /// <returns></returns>
  4318. public static ServiceResultEntity GetDataLog_BGYK(ClientRequestEntity cre)
  4319. {
  4320. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4321. ServiceResultEntity sre = new ServiceResultEntity();
  4322. try
  4323. {
  4324. string sqlString = @"
  4325. SELECT DL.LOGID,
  4326. DL.BEGINTIME,
  4327. DL.ENDTIME,
  4328. DL.YYYYMMDD,
  4329. DL.ZTYPE,
  4330. DL.ZMSG,
  4331. U.USERCODE SYNUSERCODE
  4332. FROM TSAP_HEGII_DATALOG_BGYK DL
  4333. LEFT JOIN TP_MST_USER U
  4334. ON U.USERID = DL.CREATEUSERID
  4335. WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
  4336. AND DL.EXECUTEDATEEND <= :DATEEND ";
  4337. OracleParameter[] oracleParameter = new OracleParameter[]
  4338. {
  4339. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  4340. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  4341. };
  4342. sqlString += "ORDER BY dl.logid DESC\n";
  4343. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  4344. return sre;
  4345. }
  4346. catch (Exception ex)
  4347. {
  4348. throw ex;
  4349. }
  4350. finally
  4351. {
  4352. if (oracleConn != null)
  4353. {
  4354. oracleConn.Close();
  4355. }
  4356. }
  4357. }
  4358. /// <summary>
  4359. /// 查询同步明细
  4360. /// </summary>
  4361. /// <param name="logid"></param>
  4362. /// <param name="userInfo"></param>
  4363. /// <returns></returns>
  4364. public static ServiceResultEntity GetWorkData_BGYK(ClientRequestEntity cre)
  4365. {
  4366. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4367. ServiceResultEntity sre = new ServiceResultEntity();
  4368. try
  4369. {
  4370. //add xiacm 2022-10-21
  4371. int logid = Convert.ToInt32(cre.Request);
  4372. string sqlString = @"
  4373. SELECT WERKS,
  4374. MATNR,
  4375. ZJDNU,
  4376. ZSCS,
  4377. ZSCCJ,
  4378. ZSCMS,
  4379. CHARG,
  4380. MENGE,
  4381. ZMLID
  4382. FROM TSAP_HEGII_WORKDATA_BGYK WD ";
  4383. if (logid > 0)
  4384. {
  4385. sqlString += "WHERE WD.LOGID = :LOGID ";
  4386. }
  4387. else
  4388. {
  4389. sqlString += @" INNER JOIN TSAP_HEGII_DATALOG_BGYK DL
  4390. ON WD.LOGID = DL.LOGID
  4391. WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
  4392. AND DL.EXECUTEDATEEND <= :DATEEND ";
  4393. }
  4394. OracleParameter[] oracleParameter = new OracleParameter[]
  4395. {
  4396. new OracleParameter(":LOGID",OracleDbType.Int32, logid, ParameterDirection.Input),
  4397. new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  4398. new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  4399. };
  4400. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  4401. return sre;
  4402. }
  4403. catch (Exception ex)
  4404. {
  4405. throw ex;
  4406. }
  4407. finally
  4408. {
  4409. if (oracleConn != null)
  4410. {
  4411. oracleConn.Close();
  4412. }
  4413. }
  4414. }
  4415. #endregion
  4416. #region PostData 请求
  4417. public static string PostData(string url, string data, string method)
  4418. {
  4419. //将单引号转义成双引号
  4420. data = data.Replace("'", "\"");
  4421. //创建Web访问对象
  4422. HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
  4423. //把用户传过来的数据转成“UTF-8”的字节流
  4424. byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
  4425. myRequest.Method = method;
  4426. myRequest.ContentLength = buf.Length;
  4427. myRequest.ContentType = "application/json;charset=UTF-8";
  4428. //myRequest.MaximumAutomaticRedirections = 1;
  4429. myRequest.AllowAutoRedirect = true;
  4430. //UTF8标准转码加密
  4431. INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
  4432. // 配置文件
  4433. string userName = ini.ReadIniData("SAP_NEW_INFO", "userName");
  4434. // 测试
  4435. //userName = "hgsapdk:Sapdk#240";
  4436. // 正式
  4437. //string userName = "PODKMES:Sapdk#800";
  4438. string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(userName));
  4439. myRequest.Headers.Add("Authorization", "Basic " + base64Header);
  4440. //发送请求
  4441. Stream stream = myRequest.GetRequestStream();
  4442. stream.Write(buf, 0, buf.Length);
  4443. stream.Close();
  4444. //获取接口返回值
  4445. //通过Web访问对象获取响应内容
  4446. HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  4447. //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
  4448. StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  4449. //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
  4450. string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
  4451. reader.Close();
  4452. myResponse.Close();
  4453. // 结果
  4454. OutputLog.TraceLog(LogPriority.Information,
  4455. "报工030", method, data,
  4456. LocalPath.LogExePath + "SAP_HEGII\\Info_030");
  4457. return returnXml;
  4458. }
  4459. #endregion
  4460. #region 转换
  4461. public class ModelConvertHelper<T> where T : new()
  4462. {
  4463. public static List<T> ConvertToModel(DataTable dt)
  4464. {
  4465. // 定义集合
  4466. List<T> ts = new List<T>();
  4467. // 获得此模型的类型
  4468. Type type = typeof(T);
  4469. string tempName = "";
  4470. foreach (DataRow dr in dt.Rows)
  4471. {
  4472. T t = new T();
  4473. // 获得此模型的公共属性
  4474. PropertyInfo[] propertys = t.GetType().GetProperties();
  4475. foreach (PropertyInfo pi in propertys)
  4476. {
  4477. tempName = pi.Name;
  4478. // 检查DataTable是否包含此列
  4479. if (dt.Columns.Contains(tempName))
  4480. {
  4481. // 判断此属性是否有Setter
  4482. if (!pi.CanWrite) continue;
  4483. object value = dr[tempName];
  4484. if (value != DBNull.Value)
  4485. pi.SetValue(t, value, null);
  4486. }
  4487. }
  4488. ts.Add(t);
  4489. }
  4490. return ts;
  4491. }
  4492. }
  4493. #endregion
  4494. }
  4495. }