| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896 |
-
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Basics.Library;
- using Dongke.IBOSS.PRD.Service.WMSDataService;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Newtonsoft.Json.Linq;
- using Oracle.ManagedDataAccess.Client;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Reflection;
- using System.Text;
- using System.Threading;
- namespace Dongke.IBOSS.PRD.Service.SAPHegiiDataService
- {
- public partial class SAPDataLogic
- {
- #region 跨车间作业
- /// <summary>
- /// 同步SAP数据(自动)
- /// </summary>
- /// <param name="date"></param>
- public static void CrossWorkshopToSAP(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- OracleParameter[] paras = null;
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 生成日志
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("pro_sap_hegii_workdata_kcjzy", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- #endregion
- #region 同步SAP
- // 手动推
- //logid = 28;
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- sqlString = @"
- SELECT TO_CHAR(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- TO_CHAR(B.EXECUTEDATEEND - 1 / 24 / 60 / 60, 'yyyymmddhh24miss') AS ZYWJS,
- TO_CHAR(SYSDATE, 'yyyymmddhh24miss') AS ZMONT,
- A.WORKCODE AS WERKS,
- A.SAPCODE AS MATNR,
- A.GOODSCODE AS GROES,
- A.WORKSHOP AS ZSCCJ,
- A.WORKSHOP AS ZSSCJ,
- A.DATACODE AS ZJDNU,
- A.ITEM AS ZZYLX,
- A.NUM AS MENGE,
- 'T' AS ZSCS,
- CASE WHEN A.TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM TSAP_HEGII_WORKDATA_KCJZY A
- INNER JOIN TSAP_HEGII_DATALOG_KCJZY B
- ON B.LOGID = A.LOGID
- WHERE A.LOGID = :LOGID ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- //string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0)
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
- // 配置文件
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
- // 测试
- //string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
- // 正式
- //string url033 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM033";
- string ztype, msg = string.Empty;
- try
- {
- string result = PostData(url033, postString, "POST");
- ztype = JObject.Parse(result)["ZTYPE"].ToString();
- msg = JObject.Parse(result)["ZMSG"].ToString();
- }
- catch (Exception ex)
- {
- ztype = "E";
- msg = ex.Message;
- }
- sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
- paras = new OracleParameter[]
- {
- new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
- };
- oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "CrossWorkshopToSAP",
- "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- public static void CrossWorkshopToSAP_test(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //sqlString = "select workcode from tp_mst_account where rownum = 1";
- //string workcode = oracleConn.GetSqlResultToStr(sqlString);
- //workcode = "5000";
- sqlString = @"SELECT
- to_char(:v_datebegin, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(:in_dateend, 'yyyymmddhh24miss') AS ZYWJS,
- to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,
- '5000' AS WERKS,
- MATERIALCODE AS MATNR,
- GOODSCODE AS GROES,
- to_char(WORKSHOP) AS ZSCCJ,
- to_char(DATACODE) AS ZJDNU,
- to_char(ITEM) AS ZZYLX,
- to_char(count( * )) AS MENGE,
- 'T' AS ZSCS,
- CASE WHEN TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM
- (--产量
- SELECT
- GDD.MATERIALCODE,
- gdd.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 1 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 1
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- PD.VALUEFLAG = 1
- AND PD.CREATETIME >= :v_datebegin
- AND PD.CREATETIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
- UNION ALL
- --产量撤销
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 2 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- PD.VALUEFLAG = 0
- AND PD.BACKOUTTIME >= :v_datebegin
- AND PD.BACKOUTTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 3 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= :v_datebegin
- AND SP.AUDITDATE < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损撤销
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 4 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.BACKOUTTIME >= :v_datebegin
- AND SP.BACKOUTTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 盘点清除
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 5 AS ITEM,
- GDD.TESTMOULDFLAG ,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON GH.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = GH.OTHERID
- WHERE
- GH.CREATETIME >= :v_datebegin
- AND GH.CREATETIME < :in_dateend
- AND GH.DATATYPE IN( 11, 12 )
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 干补
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 6 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '1'
- AND SP.GOODSLEVELTYPEID = 9
- AND SP.SPECIALREPAIRTIME >= :v_datebegin
- AND SP.SPECIALREPAIRTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 回收
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 7 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '1'
- AND SP.RECYCLINGFLAG = '1'
- AND SP.RECYCLINGTIME >= :v_datebegin
- AND SP.RECYCLINGTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
- )
- GROUP BY
- MATERIALCODE,
- GOODSCODE,
- WORKSHOP,
- DATACODE,
- ITEM,
- TESTMOULDFLAG,
- ZSCS
- ORDER BY
- DATACODE,
- ITEM,
- WORKSHOP";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":v_datebegin", OracleDbType.Date, date, ParameterDirection.Input),
- new OracleParameter(":in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- //string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
- string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
- string result = PostData(url033, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string msg = JObject.Parse(result)["ZMSG"].ToString();
- //sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
- //paras = new OracleParameter[]
- //{
- // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- // new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- // new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
- //};
- //oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "CrossWorkshopToSAP",
- "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 查询跨车间作业同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_kczzy(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = "SELECT\n" +
- " dl.logid,\n" +
- " dl.begintime,\n" +
- " dl.endtime,\n" +
- " dl.yyyymmdd,\n" +
- " dl.workcode,\n" +
- " dl.datastuts,\n" +
- " dl.datamsg,\n" +
- " dl.executedatebegin,\n" +
- " dl.executedateend,\n" +
- " u.usercode synusercode\n" +
- "FROM\n" +
- " tsap_hegii_datalog_kcjzy dl\n" +
- " LEFT JOIN tp_mst_user u ON u.userid = dl.createuserid \n" +
- "WHERE\n" +
- " dl.EXECUTEDATEBEGIN >= :datebegin \n" +
- " AND dl.EXECUTEDATEEND <= :dateend \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- string datastuts = cre.Properties["datastuts"] + "";
- if (!string.IsNullOrEmpty(datastuts))
- {
- sqlString += " and dl.datastuts in (" + datastuts + ")\n";
- }
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_kczzy(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = "\n" +
- "select wd.workshop\n" +
- " ,case when wd.workshop = 2 then '二车间' when wd.workshop = 3 then '三车间' else '-' end workshopname\n " +
- " ,case when wd.item = 1 then '产量' when wd.item = 2 then '产量撤销' when wd.item = 3 then '工序报损' when wd.item = 4 then '工序报损撤销' \n" +
- " when wd.item = 5 then '盘点清除' when wd.item = 6 then '干补' when wd.item = 7 then '回收' else '-' end as itemname\n" +
- " ,item\n" +
- " ,wd.datacode\n" +
- " ,dc.datacodename\n" +
- " ,wd.goodscode\n" +
- " ,wd.sapcode\n" +
- " ,wd.num\n" +
- " ,wd.createtime\n" +
- " ,wd.testmouldflag\n" +
- " ,wd.zscs\n" +
- " ,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" +
- " ,wd.logid\n" +
- " from tsap_hegii_workdata_kcjzy wd\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = wd.datacode\n";
- if (logid > 0)
- {
- sqlString += " where wd.logid = :logid \n";
- }
- else
- {
- sqlString += " inner join tsap_hegii_datalog_kcjzy dl\n" +
- " on wd.logid=dl.logid \n" +
- " where dl.EXECUTEDATEBEGIN>= :datebegin \n" +
- " and dl.EXECUTEDATEEND<= :dateend \n";
- }
- sqlString += " order by wd.datacode,wd.item,wd.workshop \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- #endregion
- #region 报工
- ///// <summary>
- ///// 同步SAP数据(自动)
- ///// </summary>
- ///// <param name="date"></param>
- //public static void AutoWorkDataToSAP5000(DateTime date, string funCode)
- //{
- // if (string.IsNullOrWhiteSpace(funCode))
- // {
- // //return;
- // funCode = "ALL";
- // }
- // funCode = "," + funCode + ",";
- // ServiceResultEntity sre = null;
- // // 10 模具
- // if (funCode == ",ALL," || funCode.Contains(",10,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "10", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 20 湿坯
- // if (funCode == ",ALL," || funCode.Contains(",20,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "20", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 30 精坯
- // if (funCode == ",ALL," || funCode.Contains(",30,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "30", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 40 釉坯
- // if (funCode == ",ALL," || funCode.Contains(",40,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "40", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 50 烧成
- // if (funCode == ",ALL," || funCode.Contains(",50,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "50", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // //// 6001 成品明细
- // //if (funCode == ",ALL," || funCode.Contains(",6001,"))
- // //{
- // // try
- // // {
- // // sre = SetFP6001(date, 0);
- // // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // // "S" != sre.Result + "")
- // // {
- // // OutputLog.TraceLog(LogPriority.Warning,
- // // "AutoWorkDataToSAP",
- // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // JsonHelper.ToJson(sre),
- // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // // }
- // // }
- // // catch (Exception ex)
- // // {
- // // OutputLog.TraceLog(LogPriority.Error,
- // // "AutoWorkDataToSAP",
- // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // ex.ToString(),
- // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // // }
- // //}
- // //// 6001 成品明细(小时)-20分钟
- // //if (funCode == ",6002,")
- // //{
- // // try
- // // {
- // // sre = SetFP6002(date, 0);
- // // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // // "S" != sre.Result + "")
- // // {
- // // OutputLog.TraceLog(LogPriority.Warning,
- // // "AutoWorkDataToSAP",
- // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // JsonHelper.ToJson(sre),
- // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // // }
- // // }
- // // catch (Exception ex)
- // // {
- // // OutputLog.TraceLog(LogPriority.Error,
- // // "AutoWorkDataToSAP",
- // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // ex.ToString(),
- // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // // }
- // //}
- //}
- /// <summary>
- /// 同步SAP数据(自动)(重载)
- /// </summary>
- /// <param name="date">当前时间</param>
- /// <param name="funCode">工序码</param>
- /// <param name="ndate">本次要执行到的时间</param>
- public static void AutoWorkDataToSAP5000(string funCode, DateTime ndate)
- {
- if (string.IsNullOrWhiteSpace(funCode))
- {
- //return;
- funCode = "ALL";
- }
- funCode = "," + funCode + ",";
- ServiceResultEntity sre = null;
- // 1001 模具生产
- if (funCode == ",ALL," || funCode.Contains(",1001,"))
- {
- try
- {
- sre = SetWorkData1001_5000("1001", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "1001 模具生产 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "1001 模具生产 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 10 模具
- if (funCode == ",ALL," || funCode.Contains(",10,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("10", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 20 湿坯
- if (funCode == ",ALL," || funCode.Contains(",20,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("20", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 30 精坯
- if (funCode == ",ALL," || funCode.Contains(",30,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("30", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 40 釉坯
- if (funCode == ",ALL," || funCode.Contains(",40,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("40", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 50 烧成
- if (funCode == ",ALL," || funCode.Contains(",50,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("50", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 55 裸辞包装
- if (funCode == ",ALL," || funCode.Contains(",55,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("55", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "55 裸辞包装 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "55 裸辞包装" + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 60 产成品
- if (funCode == ",ALL," || funCode.Contains(",60,"))
- {
- try
- {
- sre = SyncSap5000_60(ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "60 产成品 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- }
- /// <summary>
- /// 商标变更插入数据
- /// </summary>
- /// <param name="date">当前时间</param>
- /// <param name="ndate">本次要执行到的时间</param>
- public static void AutoWorkDataToSAP5000SBBG(DateTime ndate)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- // 查询该时间段内的所有商标变更 的条码
- string sqlString = "SELECT T.*\n" +
- " FROM (SELECT lh.barcode\n" +
- " ,lh.oldlogoid\n" +
- " ,nvl(gls.materialcode, g.materialcode) materialcode\n" +
- " ,nvl(gls1.materialcode, g.materialcode) newmaterialcode\n" +
- " ,lh.newlogoid\n" +
- " ,gdd.goodsid\n" +
- " ,lh.createtime\n" +
- " ,lh.SAPFLAG\n" +
- " FROM tp_pm_logochangedrecord lh\n" +
- " LEFT JOIN tp_pm_groutingdailydetail gdd\n" +
- " ON gdd.barcode = lh.barcode\n" +
- " INNER JOIN tp_mst_goods g\n" +
- " ON g.goodsid = gdd.goodsid\n" +
- " LEFT JOIN tp_mst_goodslogosap gls\n" +
- " ON gdd.goodsid = gls.goodsid\n" +
- " AND gls.logoid = lh.oldlogoid\n" +
- " LEFT JOIN tp_mst_goodslogosap gls1\n" +
- " ON gdd.goodsid = gls1.goodsid\n" +
- " AND gls1.logoid = lh.newlogoid\n" +
- " WHERE lh.createtime >= DATE '2024-03-01'\n" +
- " AND lh.SAPFLAG = 0 " +
- " AND lh.oldlogoid <> lh.newlogoid " +
- " AND nvl(gls.materialcode, g.materialcode) <> nvl(gls1.materialcode, g.materialcode) " +
- " order by lh.createtime) T\n" +
- " WHERE rownum < 15";
- DataTable barcodeTable = oracleTrConn.GetSqlResultToDt(sqlString, null);
- int returnRows = 0;
- if (barcodeTable != null && barcodeTable.Rows.Count > 0)
- {
- for (int i = 0; i < barcodeTable.Rows.Count; i++)
- {
- string barcode = barcodeTable.Rows[i]["barcode"].ToString();
- string oldMatnr = barcodeTable.Rows[i]["materialcode"].ToString();
- string newMatnr = barcodeTable.Rows[i]["newmaterialcode"].ToString();
- string cretetime = barcodeTable.Rows[i]["createtime"].ToString();
- int logoid = Convert.ToInt32(barcodeTable.Rows[i]["newlogoid"]);
- if (oldMatnr != newMatnr)
- {
- #region 先查询sap数据
- DataSet sapDataSet = new DataSet();
- //查询变更的型号信息
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter("IN_BARCODE", OracleDbType.Varchar2, barcode, ParameterDirection.Input),
- new OracleParameter("IN_GOODSID", OracleDbType.Int32, 0, ParameterDirection.Input),
- new OracleParameter("IN_LOGOID", OracleDbType.Int32, logoid, ParameterDirection.Input),
- new OracleParameter("OUT_RESULT", OracleDbType.RefCursor, null, ParameterDirection.Output),
- };
- sapDataSet = oracleTrConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG_BIANGENG", paras);
- #endregion
- #region sap报工
- if (sapDataSet != null && sapDataSet.Tables.Count > 0 && sapDataSet.Tables[0].Rows.Count > 0 && !string.IsNullOrEmpty(oldMatnr))
- {
- DataTable sapresultTable = sapDataSet.Tables[0];
- //记录所有logid,先设置状态为Q,加完明细改为F
- List<int> logids = new List<int>();
- DataTable dTable = new DataTable();
- //获取总单datacode
- DataView dv = new DataView(sapresultTable);
- dTable = dv.ToTable(true, "DATACODE");
- #region 注释原方式,启用新表,合并推送
- //for (int j = 0; j < dTable.Rows.Count; j++)
- //{
- // //sap日志总单(不同节点)
- // string sqlText = "SELECT SEQ_TSAP_DATALOG_BG.nextval FROM dual";
- // //判断有几个节点 20,30,40,50
- // #region 20节点
- // if (dTable.Rows[j]["DATACODE"].ToString() == "20")
- // {
- // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- // //记录logid
- // logids.Add(logid);
- // #region log总单
- // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- // " (LOGID,\n" +
- // " LOGTYPE,\n" +
- // " BEGINTIME,\n" +
- // " YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " DATASTUTS,\n" +
- // " DATAMSG,\n" +
- // " DATALOGID,\n" +
- // " EXECUTEDATEBEGIN,\n" +
- // " EXECUTEDATEEND,\n" +
- // " REMARKS,\n" +
- // " SAPGUID)\n" +
- // " VALUES\n" +
- // " (:LOGID,\n" +
- // " '4',\n" +
- // " SYSDATE,\n" +
- // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '20',\n" +
- // " 'Q',\n" +
- // " '',\n" +
- // " :LOGID,\n" +
- // " SYSDATE,\n" +
- // " SYSDATE,\n" +
- // " :REMARKS,\n" +
- // " SYS_GUID())";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // #endregion
- // #region 明细
- // DataTable table20 = sapresultTable.Copy();
- // DataRow[] drRow20 = table20.Select("DATACODE = 20");
- // foreach (DataRow row in drRow20)
- // {
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '20',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '20',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",oldMatnr),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // }
- // #endregion
- // }
- // #endregion
- // #region 30节点
- // else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
- // {
- // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- // //记录logid
- // logids.Add(logid);
- // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- // " (LOGID,\n" +
- // " LOGTYPE,\n" +
- // " BEGINTIME,\n" +
- // " YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " DATASTUTS,\n" +
- // " DATAMSG,\n" +
- // " DATALOGID,\n" +
- // " EXECUTEDATEBEGIN,\n" +
- // " EXECUTEDATEEND,\n" +
- // " REMARKS,\n" +
- // " SAPGUID)\n" +
- // " VALUES\n" +
- // " (:LOGID,\n" +
- // " '4',\n" +
- // " SYSDATE,\n" +
- // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " 5000,\n" +
- // " :DATACODE,\n" +
- // " 'Q',\n" +
- // " '',\n" +
- // " :LOGID,\n" +
- // " SYSDATE,\n" +
- // " SYSDATE,\n" +
- // " :REMARKS,\n" +
- // " SYS_GUID())";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":DATACODE","30"),
- // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // #region 明细
- // DataTable table30 = sapresultTable.Copy();
- // DataRow[] drRow30 = table30.Select("DATACODE = 30");
- // foreach (DataRow row in drRow30)
- // {
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '30',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '30',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",oldMatnr),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // }
- // #endregion
- // }
- // #endregion
- // #region 40节点
- // else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
- // {
- // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- // //记录logid
- // logids.Add(logid);
- // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- // " (LOGID,\n" +
- // " LOGTYPE,\n" +
- // " BEGINTIME,\n" +
- // " YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " DATASTUTS,\n" +
- // " DATAMSG,\n" +
- // " DATALOGID,\n" +
- // " EXECUTEDATEBEGIN,\n" +
- // " EXECUTEDATEEND,\n" +
- // " REMARKS,\n" +
- // " SAPGUID)\n" +
- // " VALUES\n" +
- // " (:LOGID,\n" +
- // " '4',\n" +
- // " SYSDATE,\n" +
- // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " 5000,\n" +
- // " :DATACODE,\n" +
- // " 'Q',\n" +
- // " '',\n" +
- // " :LOGID,\n" +
- // " SYSDATE,\n" +
- // " SYSDATE,\n" +
- // " :REMARKS,\n" +
- // " SYS_GUID())";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":DATACODE","40"),
- // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // #region 明细
- // DataTable table40 = sapresultTable.Copy();
- // DataRow[] drRow40 = table40.Select("DATACODE = 40");
- // foreach (DataRow row in drRow40)
- // {
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '40',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '40',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",oldMatnr),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // }
- // #endregion
- // }
- // #endregion
- // #region 50节点
- // else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
- // {
- // int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- // //记录logid
- // logids.Add(logid);
- // sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- // " (LOGID,\n" +
- // " LOGTYPE,\n" +
- // " BEGINTIME,\n" +
- // " YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " DATASTUTS,\n" +
- // " DATAMSG,\n" +
- // " DATALOGID,\n" +
- // " EXECUTEDATEBEGIN,\n" +
- // " EXECUTEDATEEND,\n" +
- // " REMARKS,\n" +
- // " SAPGUID)\n" +
- // " VALUES\n" +
- // " (:LOGID,\n" +
- // " '4',\n" +
- // " SYSDATE,\n" +
- // " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " 5000,\n" +
- // " :DATACODE,\n" +
- // " 'Q',\n" +
- // " '',\n" +
- // " :LOGID,\n" +
- // " SYSDATE,\n" +
- // " SYSDATE,\n" +
- // " :REMARKS,\n" +
- // " SYS_GUID())";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":DATACODE","50"),
- // new OracleParameter(":REMARKS","注浆变更:新商标ID:"+logoid),
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // #region 明细
- // DataTable table50 = sapresultTable.Copy();
- // DataRow[] drRow50 = table50.Select("DATACODE = 50");
- // foreach (DataRow row in drRow50)
- // {
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '50',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- // new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- // new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- // new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG\n" +
- // " (YYYYMMDD,\n" +
- // " WORKCODE,\n" +
- // " DATACODE,\n" +
- // " GOODSCODE,\n" +
- // " SAPCODE,\n" +
- // " USERCODE,\n" +
- // " OUTPUTNUM,\n" +
- // " SCRAPNUM,\n" +
- // " CLEANUPNUM,\n" +
- // " REPAIRNUM,\n" +
- // " WORKSHOP,\n" +
- // " LOGID,\n" +
- // " TESTMOULDFLAG,\n" +
- // " ZSCS,\n" +
- // " CHARG)\n" +
- // " VALUES\n" +
- // " (TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- // " '5000',\n" +
- // " '50',\n" +
- // " :GOODSCODE,\n" +
- // " :SAPCODE,\n" +
- // " :USERCODE,\n" +
- // " :OUTPUTNUM,\n" +
- // " :SCRAPNUM,\n" +
- // " :CLEANUPNUM,\n" +
- // " :REPAIRNUM,\n" +
- // " :WORKSHOP,\n" +
- // " :LOGID,\n" +
- // " :TESTMOULDFLAG,\n" +
- // " :ZSCS,\n" +
- // " :CHARG)";
- // paras = new OracleParameter[]
- // {
- // new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- // new OracleParameter(":SAPCODE",oldMatnr),
- // new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- // new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- // new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- // new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- // new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- // new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- // new OracleParameter(":LOGID",logid),
- // new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- // new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- // new OracleParameter(":CHARG",row["CHARG"].ToString()),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- // }
- // #endregion
- // }
- // #endregion
- //}
- #endregion
- for (int j = 0; j < dTable.Rows.Count; j++)
- {
- string sqlText = "";
- //判断有几个节点 20,30,40,50
- #region 20节点
- if (dTable.Rows[j]["DATACODE"].ToString() == "20")
- {
- #region 明细
- DataTable table20 = sapresultTable.Copy();
- DataRow[] drRow20 = table20.Select("DATACODE = 20");
- foreach (DataRow row in drRow20)
- {
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " ( BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '20',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '20',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",oldMatnr),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- #region 30节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
- {
- #region 明细
- DataTable table30 = sapresultTable.Copy();
- DataRow[] drRow30 = table30.Select("DATACODE = 30");
- foreach (DataRow row in drRow30)
- {
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '30',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '30',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",oldMatnr),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- #region 40节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
- {
- #region 明细
- DataTable table40 = sapresultTable.Copy();
- DataRow[] drRow40 = table40.Select("DATACODE = 40");
- foreach (DataRow row in drRow40)
- {
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '40',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '40',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",oldMatnr),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- #region 50节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
- {
- #region 明细
- DataTable table50 = sapresultTable.Copy();
- DataRow[] drRow50 = table50.Select("DATACODE = 50");
- foreach (DataRow row in drRow50)
- {
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '50',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",row["SAPCODE"].ToString()),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",row["OUTPUTNUM"].ToString()),
- new OracleParameter(":SCRAPNUM",row["SCRAPNUM"].ToString()),
- new OracleParameter(":CLEANUPNUM",row["CLEANUPNUM"].ToString()),
- new OracleParameter(":REPAIRNUM",row["REPAIRNUM"].ToString()),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "INSERT INTO TSAP_HEGII_WORKDATA_BG_SBBG\n" +
- " (BARCODE,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " GOODSCODE,\n" +
- " SAPCODE,\n" +
- " USERCODE,\n" +
- " OUTPUTNUM,\n" +
- " SCRAPNUM,\n" +
- " CLEANUPNUM,\n" +
- " REPAIRNUM,\n" +
- " WORKSHOP,\n" +
- " TESTMOULDFLAG,\n" +
- " ZSCS,\n" +
- " CHARG)\n" +
- " VALUES\n" +
- " (:BARCODE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '50',\n" +
- " :GOODSCODE,\n" +
- " :SAPCODE,\n" +
- " :USERCODE,\n" +
- " :OUTPUTNUM,\n" +
- " :SCRAPNUM,\n" +
- " :CLEANUPNUM,\n" +
- " :REPAIRNUM,\n" +
- " :WORKSHOP,\n" +
- " :TESTMOULDFLAG,\n" +
- " :ZSCS,\n" +
- " :CHARG)";
- paras = new OracleParameter[]
- {
- new OracleParameter(":GOODSCODE",row["GOODSCODE"].ToString()),
- new OracleParameter(":SAPCODE",oldMatnr),
- new OracleParameter(":USERCODE",row["USERCODE"].ToString()),
- new OracleParameter(":OUTPUTNUM",Convert.ToInt32(row["OUTPUTNUM"])*(-1)),
- new OracleParameter(":SCRAPNUM",Convert.ToInt32(row["SCRAPNUM"])*(-1)),
- new OracleParameter(":CLEANUPNUM",Convert.ToInt32(row["CLEANUPNUM"])*(-1)),
- new OracleParameter(":REPAIRNUM",Convert.ToInt32(row["REPAIRNUM"])*(-1)),
- new OracleParameter(":WORKSHOP",row["WORKSHOP"].ToString()),
- new OracleParameter(":BARCODE",barcode),
- new OracleParameter(":TESTMOULDFLAG",row["TESTMOULDFLAG"].ToString()),
- new OracleParameter(":ZSCS",row["ZSCS"].ToString()),
- new OracleParameter(":CHARG",row["CHARG"].ToString()),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- }
- #region 更新总单状态为F
- //string ids = string.Join(",", logids);
- //if (!string.IsNullOrWhiteSpace(ids))
- if (returnRows > 0)
- {
- //string sql1 = "update TSAP_HEGII_DATALOG_BG set DATASTUTS='F' where DATASTUTS = 'Q' AND LOGID IN (" + ids + ") ";
- // returnRows += oracleTrConn.ExecuteNonQuery(sql1);
- //更新商标变更明细表
- //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')";
- string sql1 = " update tp_pm_logochangedrecord set SAPFLAG='1' where barcode =" + barcode + " and createtime = to_date('" + cretetime + "','yyyy-mm-dd hh24:mi:ss')";
- returnRows += oracleTrConn.ExecuteNonQuery(sql1);
- }
- #endregion
- }
- #endregion
- }
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn != null)
- {
- oracleTrConn.Close();
- }
- }
- }
- /// <summary>
- /// 商标变更插入同步数据
- /// </summary>
- /// <param name="date">当前时间</param>
- /// <param name="ndate">本次要执行到的时间</param>
- public static void AutoWorkDataToSAP5000SBBGInsert(DateTime ndate)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.LOGTYPE = '4'
- AND DL.REMARKS ='商标变更新' ";
- DateTime createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
- // 处理部分遗留数据+新表中保存的数据
- string sqlString = "\n" +
- "SELECT WB.WORKCODE\n" +
- " ,WB.DATACODE\n" +
- " ,WB.GOODSCODE\n" +
- " ,WB.SAPCODE\n" +
- " ,WB.USERCODE\n" +
- " ,sum(WB.OUTPUTNUM) OUTPUTNUM\n" +
- " ,sum(WB.SCRAPNUM) SCRAPNUM\n" +
- " ,sum(WB.CLEANUPNUM) CLEANUPNUM\n" +
- " ,sum(WB.REPAIRNUM) REPAIRNUM\n" +
- " ,WB.WORKSHOP\n" +
- " ,WB.TESTMOULDFLAG\n" +
- " ,WB.ZSCS\n" +
- " ,'24065000E' CHARG\n" +
- "FROM TSAP_HEGII_WORKDATA_BG WB\n" +
- "LEFT JOIN TSAP_HEGII_DATALOG_BG DL ON DL.LOGID=WB.LOGID\n" +
- "WHERE DL.Datastuts IN( 'Q') AND DL.REMARKS NOT IN( '商标变更新')\n" +
- "GROUP BY WB.WORKCODE\n" +
- " ,WB.DATACODE\n" +
- " ,WB.GOODSCODE\n" +
- " ,WB.SAPCODE\n" +
- " ,WB.USERCODE\n" +
- " ,WB.WORKSHOP\n" +
- " ,WB.TESTMOULDFLAG\n" +
- " ,WB.ZSCS\n" +
- " ,'24065000E'\n" +
- "UNION ALL\n" +
- "SELECT WB.WORKCODE\n" +
- " ,WB.DATACODE\n" +
- " ,WB.GOODSCODE\n" +
- " ,WB.SAPCODE\n" +
- " ,WB.USERCODE\n" +
- " ,sum(WB.OUTPUTNUM) OUTPUTNUM\n" +
- " ,sum(WB.SCRAPNUM) SCRAPNUM\n" +
- " ,sum(WB.CLEANUPNUM) CLEANUPNUM\n" +
- " ,sum(WB.REPAIRNUM) REPAIRNUM\n" +
- " ,WB.WORKSHOP\n" +
- " ,WB.TESTMOULDFLAG\n" +
- " ,WB.ZSCS\n" +
- " ,'24065000E' CHARG\n" +
- "FROM TSAP_HEGII_WORKDATA_BG_SBBG WB\n" +
- "WHERE WB.Createtime >= :BEGINDATE and WB.Createtime < :ENDDATE\n" +
- "GROUP BY WB.WORKCODE\n" +
- " ,WB.DATACODE\n" +
- " ,WB.GOODSCODE\n" +
- " ,WB.SAPCODE\n" +
- " ,WB.USERCODE\n" +
- " ,WB.WORKSHOP\n" +
- " ,WB.TESTMOULDFLAG\n" +
- " ,WB.ZSCS\n" +
- " ,'24065000E'";
- //同步结束时间 开始时间怎么取?暂定 取上次同步的结束时间
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":BEGINDATE", createtimebegin),
- new OracleParameter(":ENDDATE", ndate),
- };
- DataTable detailTable = oracleTrConn.GetSqlResultToDt(sqlString, paras);
- int returnRows = 0;
- //所有需要汇总数据
- if (detailTable != null && detailTable.Rows.Count > 0)
- {
- #region sap报工
- DataTable sapresultTable = detailTable;
- //记录所有logid,先设置状态为Q,加完明细改为F
- List<int> logids = new List<int>();
- DataTable dTable = new DataTable();
- //获取总单datacode
- DataView dv = new DataView(sapresultTable);
- dTable = dv.ToTable(true, "DATACODE");
- #region 合并推送
- for (int j = 0; j < dTable.Rows.Count; j++)
- {
- //sap日志总单(不同节点)
- string sqlText = "SELECT SEQ_TSAP_DATALOG_BG.nextval FROM dual";
- //判断有几个节点 20,30,40,50
- #region 20节点
- if (dTable.Rows[j]["DATACODE"].ToString() == "20")
- {
- int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //记录logid
- logids.Add(logid);
- timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.LOGTYPE = '4'
- AND DL.REMARKS ='商标变更新'
- AND DL.DATACODE = '20' ";
- createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
- #region log总单
- sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- " (LOGID,\n" +
- " LOGTYPE,\n" +
- " BEGINTIME,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " DATASTUTS,\n" +
- " DATAMSG,\n" +
- " DATALOGID,\n" +
- " EXECUTEDATEBEGIN,\n" +
- " EXECUTEDATEEND,\n" +
- " REMARKS,\n" +
- " SAPGUID)\n" +
- " VALUES\n" +
- " (:LOGID,\n" +
- " '4',\n" +
- " SYSDATE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " '5000',\n" +
- " '20',\n" +
- " 'Q',\n" +
- " '',\n" +
- " :LOGID,\n" +
- " :BEGINDATE,\n" +
- " :ENDDATE,\n" +
- " :REMARKS,\n" +
- " SYS_GUID())";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":REMARKS","商标变更新"),
- new OracleParameter(":BEGINDATE", createtimebegin),
- new OracleParameter(":ENDDATE", ndate),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 明细
- sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
- " (yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,outputnum\n" +
- " ,scrapnum\n" +
- " ,cleanupnum\n" +
- " ,repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,charg)\n" +
- " SELECT yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,SUM(outputnum) outputnum\n" +
- " ,SUM(scrapnum) scrapnum\n" +
- " ,SUM(cleanupnum) cleanupnum\n" +
- " ,SUM(repairnum) repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,CHARG from (\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg wb\n" +
- " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
- " ON dl.logid = wb.logid\n" +
- " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
- " AND wb.datacode = '20'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E'\n" +
- " UNION ALL\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
- " WHERE wb.createtime >= :BEGINDATE\n" +
- " AND wb.createtime < :ENDDATE\n" +
- " AND wb.datacode = '20'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
- " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":ENDDATE", ndate),
- new OracleParameter(":BEGINDATE", createtimebegin),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- #region 30节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "30")
- {
- int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //记录logid
- logids.Add(logid);
- timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.LOGTYPE = '4'
- AND DL.REMARKS ='商标变更新'
- AND DL.DATACODE = '30' ";
- createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
- sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- " (LOGID,\n" +
- " LOGTYPE,\n" +
- " BEGINTIME,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " DATASTUTS,\n" +
- " DATAMSG,\n" +
- " DATALOGID,\n" +
- " EXECUTEDATEBEGIN,\n" +
- " EXECUTEDATEEND,\n" +
- " REMARKS,\n" +
- " SAPGUID)\n" +
- " VALUES\n" +
- " (:LOGID,\n" +
- " '4',\n" +
- " SYSDATE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " 5000,\n" +
- " :DATACODE,\n" +
- " 'Q',\n" +
- " '',\n" +
- " :LOGID,\n" +
- " :BEGINDATE,\n" +
- " :ENDDATE,\n" +
- " :REMARKS,\n" +
- " SYS_GUID())";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":DATACODE","30"),
- new OracleParameter(":REMARKS","商标变更新"),
- new OracleParameter(":BEGINDATE", createtimebegin),
- new OracleParameter(":ENDDATE", ndate),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #region 明细
- sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
- " (yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,outputnum\n" +
- " ,scrapnum\n" +
- " ,cleanupnum\n" +
- " ,repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,charg)\n" +
- " SELECT yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,SUM(outputnum) outputnum\n" +
- " ,SUM(scrapnum) scrapnum\n" +
- " ,SUM(cleanupnum) cleanupnum\n" +
- " ,SUM(repairnum) repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,CHARG from (\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg wb\n" +
- " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
- " ON dl.logid = wb.logid\n" +
- " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
- " AND wb.datacode = '30'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E'\n" +
- " UNION ALL\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
- " WHERE wb.createtime >= :BEGINDATE\n" +
- " AND wb.createtime < :ENDDATE\n" +
- " AND wb.datacode = '30'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
- " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":ENDDATE", ndate),
- new OracleParameter(":BEGINDATE", createtimebegin),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- #region 40节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "40")
- {
- int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //记录logid
- logids.Add(logid);
- timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.LOGTYPE = '4'
- AND DL.REMARKS ='商标变更新'
- AND DL.DATACODE = '40' ";
- createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
- sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- " (LOGID,\n" +
- " LOGTYPE,\n" +
- " BEGINTIME,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " DATASTUTS,\n" +
- " DATAMSG,\n" +
- " DATALOGID,\n" +
- " EXECUTEDATEBEGIN,\n" +
- " EXECUTEDATEEND,\n" +
- " REMARKS,\n" +
- " SAPGUID)\n" +
- " VALUES\n" +
- " (:LOGID,\n" +
- " '4',\n" +
- " SYSDATE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " 5000,\n" +
- " :DATACODE,\n" +
- " 'Q',\n" +
- " '',\n" +
- " :LOGID,\n" +
- " :BEGINDATE,\n" +
- " :ENDDATE,\n" +
- " :REMARKS,\n" +
- " SYS_GUID())";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":DATACODE","40"),
- new OracleParameter(":REMARKS","商标变更新"),
- new OracleParameter(":BEGINDATE", createtimebegin),
- new OracleParameter(":ENDDATE", ndate),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #region 明细
- sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
- " (yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,outputnum\n" +
- " ,scrapnum\n" +
- " ,cleanupnum\n" +
- " ,repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,charg)\n" +
- " SELECT yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,SUM(outputnum) outputnum\n" +
- " ,SUM(scrapnum) scrapnum\n" +
- " ,SUM(cleanupnum) cleanupnum\n" +
- " ,SUM(repairnum) repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,CHARG from (\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg wb\n" +
- " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
- " ON dl.logid = wb.logid\n" +
- " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
- " AND wb.datacode = '40'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' \n" +
- " UNION ALL\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
- " WHERE wb.createtime >= :BEGINDATE\n" +
- " AND wb.createtime < :ENDDATE\n" +
- " AND wb.datacode = '40'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
- " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":ENDDATE", ndate),
- new OracleParameter(":BEGINDATE", createtimebegin),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- #region 50节点
- else if (dTable.Rows[j]["DATACODE"].ToString() == "50")
- {
- int logid = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //记录logid
- logids.Add(logid);
- timeString = @" SELECT case when MAX(DL.EXECUTEDATEEND) is null then date'2024-06-17' else MAX(DL.EXECUTEDATEEND) end as EXECUTEDATEEND
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.LOGTYPE = '4'
- AND DL.REMARKS ='商标变更新'
- AND DL.DATACODE = '50' ";
- createtimebegin = Convert.ToDateTime(oracleTrConn.GetSqlResultToStr(timeString));
- sqlText = "INSERT INTO TSAP_HEGII_DATALOG_BG\n" +
- " (LOGID,\n" +
- " LOGTYPE,\n" +
- " BEGINTIME,\n" +
- " YYYYMMDD,\n" +
- " WORKCODE,\n" +
- " DATACODE,\n" +
- " DATASTUTS,\n" +
- " DATAMSG,\n" +
- " DATALOGID,\n" +
- " EXECUTEDATEBEGIN,\n" +
- " EXECUTEDATEEND,\n" +
- " REMARKS,\n" +
- " SAPGUID)\n" +
- " VALUES\n" +
- " (:LOGID,\n" +
- " '4',\n" +
- " SYSDATE,\n" +
- " TO_CHAR(SYSDATE, 'YYYYMMDD'),\n" +
- " 5000,\n" +
- " :DATACODE,\n" +
- " 'Q',\n" +
- " '',\n" +
- " :LOGID,\n" +
- " :BEGINDATE,\n" +
- " :ENDDATE,\n" +
- " :REMARKS,\n" +
- " SYS_GUID())";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":DATACODE","50"),
- new OracleParameter(":REMARKS","商标变更新"),
- new OracleParameter(":BEGINDATE", createtimebegin),
- new OracleParameter(":ENDDATE", ndate),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #region 明细
- sqlText = "INSERT INTO tsap_hegii_workdata_bg\n" +
- " (yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,outputnum\n" +
- " ,scrapnum\n" +
- " ,cleanupnum\n" +
- " ,repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,charg)\n" +
- " SELECT yyyymmdd\n" +
- " ,workcode\n" +
- " ,datacode\n" +
- " ,goodscode\n" +
- " ,sapcode\n" +
- " ,usercode\n" +
- " ,SUM(outputnum) outputnum\n" +
- " ,SUM(scrapnum) scrapnum\n" +
- " ,SUM(cleanupnum) cleanupnum\n" +
- " ,SUM(repairnum) repairnum\n" +
- " ,workshop\n" +
- " ,logid\n" +
- " ,testmouldflag\n" +
- " ,zscs\n" +
- " ,CHARG from (\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg wb\n" +
- " LEFT JOIN tsap_hegii_datalog_bg dl\n" +
- " ON dl.logid = wb.logid\n" +
- " WHERE dl.datastuts IN ('Q') AND dl.REMARKS NOT IN( '商标变更新')\n" +
- " AND wb.datacode = '50'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' \n" +
- " UNION ALL\n" +
- " SELECT to_char(SYSDATE, 'YYYYMMDD') yyyymmdd\n" +
- " ,wb.workcode\n" +
- " ,wb.datacode\n" +
- " ,wb.goodscode\n" +
- " ,wb.sapcode\n" +
- " ,wb.usercode\n" +
- " ,SUM(wb.outputnum) outputnum\n" +
- " ,SUM(wb.scrapnum) scrapnum\n" +
- " ,SUM(wb.cleanupnum) cleanupnum\n" +
- " ,SUM(wb.repairnum) repairnum\n" +
- " ,wb.workshop\n" +
- " ,:LOGID logid\n" +
- " ,wb.testmouldflag\n" +
- " ,wb.zscs\n" +
- " ,'24065000E' CHARG\n" +
- " FROM tsap_hegii_workdata_bg_sbbg wb\n" +
- " WHERE wb.createtime >= :BEGINDATE\n" +
- " AND wb.createtime < :ENDDATE\n" +
- " AND wb.datacode = '50'\n" +
- " GROUP BY to_char(SYSDATE, 'YYYYMMDD'),wb.workcode,wb.datacode,wb.goodscode,wb.sapcode,wb.usercode,wb.workshop,wb.testmouldflag,wb.zscs,'24065000E' )\n" +
- " GROUP BY yyyymmdd,workcode,datacode,goodscode,sapcode,usercode,workshop,logid,testmouldflag,zscs,CHARG ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID",logid),
- new OracleParameter(":ENDDATE", ndate),
- new OracleParameter(":BEGINDATE", createtimebegin),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- }
- #endregion
- #region 更新总单状态为F
- string ids = string.Join(",", logids);
- if (!string.IsNullOrWhiteSpace(ids))
- {
- string sql1 = "update TSAP_HEGII_DATALOG_BG set DATASTUTS='F' where DATASTUTS = 'Q' AND REMARKS = '商标变更新' AND LOGID IN (" + ids + ") ";
- returnRows += oracleTrConn.ExecuteNonQuery(sql1);
- returnRows += oracleTrConn.ExecuteNonQuery(sql1);
- }
- #endregion
- #endregion
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn != null)
- {
- oracleTrConn.Close();
- }
- }
- }
- /// <summary>
- /// 执行与推送
- /// </summary>
- /// <param name="datacode"></param>
- /// <param name="ndate"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetWorkData1001_5000(string datacode, DateTime ndate)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = null;
- try
- {
- #region 事务1,执行存储过程
- OracleParameter[] paras = null;
- int logid = 0;
- string message = string.Empty;
- // 1001 模具生产
- if ("1001".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG1001", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 如果logid为0,则数据没有生成
- if (logid == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = message;
- //return sre; // 推送之前失败的
- }
- #endregion
- // 事物2,同步SAP接口
- string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (SAP_ING_NEW == "1")
- {
- sre = SyncSap1001_5000(ndate, datacode);
- }
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 同步SAP接口5000端口新
- /// </summary>
- /// <param name="date"></param>
- /// <param name="datacode"></param>
- /// <param name="userid"></param>
- /// <param name="logid"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncSap1001_5000(DateTime date, string datacode)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] paras = null;
- int r = 0;
- // 查询当前节点所有不为S的日志
- string sqlString = @"
- SELECT DL.LOGID
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE DL.DATASTUTS = 'F'
- AND DL.DATACODE = :DATACODE ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE", datacode),
- };
- DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
- if (dtLogID == null || dtLogID.Rows.Count == 0)
- {
- return sre;
- }
- string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
- sqlString = @"
- SELECT TO_CHAR(WD.ORDERCODE) AS ZID,
- TO_CHAR(WD.WORKCODE) AS WERKS,
- TO_CHAR(WD.SAPCODE) MATNR,
- TO_CHAR(WD.YYYYMMDD) BUDAT,
- TO_CHAR(WD.OUTPUTNUM) ZDKCL,
- TO_CHAR(WD.ORDERITEM) IDNRK
- FROM TSAP_HEGII_WORKDATA_BG WD
- INNER JOIN TSAP_HEGII_DATALOG_BG DL
- ON WD.LOGID = DL.LOGID
- WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE",datacode),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- int num = workData.Rows.Count;
- if (num > 0)
- {
- // 调用SAP接口
- //string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
- string postString = "{\"IT_TAB\":{\"item\":" + JsonHelper.ToJson(workData) + "}}";
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- // 配置文件
- string url_BG1001_049 = ini.ReadIniData("SAP_NEW_INFO", "Url_BG1001_049");
- //string url_BG1001_049 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM049";
- string result = PostData(url_BG1001_049, postString, "POST");
- sqlString = @"
- UPDATE TSAP_HEGII_DATALOG_BG T
- SET T.ENDTIME = SYSDATE,
- DATASTUTS = :DATASTUTS,
- DATAMSG = :MSG
- WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
- new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlString, paras);
- sre.Message = JObject.Parse(result)["ZMSG"].ToString();
- sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
- }
- else
- {
- sqlString = @"
- UPDATE TSAP_HEGII_DATALOG_BG T
- SET T.ENDTIME = SYSDATE,
- DATASTUTS = :DATASTUTS,
- DATAMSG = :MSG
- WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, "S", ParameterDirection.Input),
- new OracleParameter(":MSG",OracleDbType.Varchar2, "num:0", ParameterDirection.Input),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlString, paras);
- sre.Message = "num:0";
- sre.Result = "S";
- }
- oracleConn.Commit();
- return sre;
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BG1001ToSAP",
- "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 执行与推送
- /// </summary>
- /// <param name="datacode"></param>
- /// <param name="ndate"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetWorkData10_50_5000(string datacode, DateTime ndate)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = null;
- try
- {
- #region 事务1,执行存储过程
- OracleParameter[] paras = null;
- int logid = 0;
- string message = string.Empty;
- // 10 模具
- if ("10".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG10", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 20 湿坯
- else if ("20".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG20", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 30 精坯
- else if ("30".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG30", paras);
- int.TryParse(paras[2].Value + "", out logid);
- message = paras[3].Value + "";
- oracleConn.Commit();
- }
- // 40 釉坯
- else if ("40".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG40", paras);
- int.TryParse(paras[2].Value + "", out logid);
- message = paras[3].Value + "";
- oracleConn.Commit();
- }
- // 50 烧成
- else if ("50".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG50", paras);
- int.TryParse(paras[2].Value + "", out logid);
- message = paras[3].Value + "";
- oracleConn.Commit();
- }
- // 55 裸瓷包装
- else if ("55".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG55", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 如果logid为0,则数据没有生成
- if (logid == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = message;
- return sre;
- }
- #endregion
- // 事物2,同步SAP接口
- string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (SAP_ING_NEW == "1")
- {
- sre = SyncSap5000(ndate, datacode);
- }
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 同步SAP接口5000端口新
- /// </summary>
- /// <param name="date"></param>
- /// <param name="datacode"></param>
- /// <param name="userid"></param>
- /// <param name="logid"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncSap5000(DateTime date, string datacode)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] paras = null;
- int r = 0;
- // 查询当前节点所有不为S的日志
- string sqlString = @"
- SELECT DL.LOGID
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE 1 = 1
- AND DL.DATASTUTS = 'F'
- AND DL.LOGID > 6
- AND DL.DATACODE = :DATACODE ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE", datacode),
- };
- DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
- string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
- sqlString = @"
- SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
- WD.WORKCODE AS WERKS,
- TO_CHAR(WD.GOODSCODE) GROES,
- TO_CHAR(WD.SAPCODE) MATNR,
- TO_CHAR(WD.USERCODE) ZGHNU,
- TO_CHAR(WD.DATACODE) ZJDNU,
- TO_CHAR(WD.YYYYMMDD) ZSCNU,
- TO_CHAR(DL.EXECUTEDATEBEGIN, 'HH24MISS') ZKSSJ,
- TO_CHAR(DL.EXECUTEDATEEND, 'YYYYMMDDHH24MISS') ZJSRQ,
- TO_CHAR(WD.ORDERCODE) VBELN,
- TO_CHAR(WD.ORDERITEM) POSNR,
- TO_CHAR(WD.OUTPUTNUM) ZCLNG,
- TO_CHAR(WD.SCRAPNUM) ZSPNG,
- TO_CHAR(WD.CLEANUPNUM) ZQCNG,
- TO_CHAR(WD.RECOVERYNUM) ZHSNG,
- TO_CHAR(WD.REPAIRNUM) ZGBNG,
- TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
- DECODE(:DATACODE, 20, TO_CHAR(WD.ZSCS), 'T') AS ZSCS,
- TO_CHAR(WD.WORKSHOP) ZSCCJ,
- WD.CHARG,
- TO_CHAR(:DATACODE) DATACODE,
- WD.WORKCODE || WD.CHARG || LPAD(DL.LOGID, 10,'0') AS ZID
- FROM TSAP_HEGII_WORKDATA_BG WD
- INNER JOIN TSAP_HEGII_DATALOG_BG DL
- ON WD.LOGID = DL.LOGID
- WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE",datacode),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- int num = workData.Rows.Count;
- // 调用SAP接口
- string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- // 配置文件
- string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
- // 测试
- // string url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
- // 正式
- //string url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
- string result = PostData(url030, postString, "POST");
- sqlString = @"
- UPDATE TSAP_HEGII_DATALOG_BG T
- SET T.ENDTIME = SYSDATE,
- DATASTUTS = :DATASTUTS,
- DATAMSG = :MSG
- WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
- new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- sre.Message = JObject.Parse(result)["ZMSG"].ToString();
- sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
- return sre;
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGToSAP",
- "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 查询同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString =
- "select dl.logid\n" +
- " ,dl.logtype\n" +
- " ,dl.begintime\n" +
- " ,dl.endtime\n" +
- " ,dl.yyyymmdd\n" +
- " ,dl.workcode\n" +
- " ,dl.datacode\n" +
- " ,dc.datacodename\n" +
- " ,dl.datastuts\n" +
- " ,dl.datamsg\n" +
- " ,dl.datalogid\n" +
- " ,dl.executedatebegin\n" +
- " ,dl.executedateend\n" +
- " ,u.usercode synusercode\n" +
- " ,DECODE(dl.logtype, '4', dl.Remarks,'') AS Remarks\n" +
- " from TSAP_HEGII_DATALOG_BG dl\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = dl.datacode\n" +
- " left join tp_mst_user u\n" +
- " on u.userid = dl.createuserid\n" +
- " where dl.logtype IN('2','3','4')\n" +
- " and dl.datastuts <> 'N'\n" +
- " and dl.executedatebegin >= :DATEBEGIN\n" +
- " and dl.executedateend < :DATEEND\n" +
- " and (-1= :DATACODE or dl.datacode=:DATACODE )";//add xiacm 2022-10-12
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = "\n" +
- "select wd.yyyymmdd\n" +
- " ,wd.workcode\n" +
- " ,wd.datacode\n" +
- " ,dc.datacodename\n" +
- " ,wd.goodscode\n" +
- " ,wd.sapcode\n" +
- " ,wd.usercode\n" +
- " ,wd.ordercode\n" +
- " ,wd.orderitem\n" +
- " ,to_number(wd.outputnum) outputnum\n" +
- " ,to_number(wd.scrapnum) scrapnum\n" +
- " ,to_number(wd.cleanupnum) cleanupnum\n" +
- " ,to_number(wd.recoverynum) recoverynum\n" +
- " ,to_number(wd.repairnum) repairnum\n" +
- " ,wd.createtime\n" +
- " ,wd.ztype\n" +
- " ,wd.zmsg\n" +
- " ,wd.ztime\n" +
- " ,wd.testmouldflag\n" +
- " ,wd.zscs\n" +
- " ,wd.logid\n" +
- " from tsap_hegii_workdata_BG wd\n" +
- " inner join TSAP_HEGII_DATALOG_BG dl\n" +
- " on dl.logid = wd.logid\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = wd.datacode\n";
- //update xiacm 2022-10-12
- if (logid > 0)
- {
- sqlString += " where wd.logid = :logid \n";
- }
- else
- {
- sqlString += " where dl.executedatebegin >= :DATEBEGIN and dl.executedateend <= :DATEEND";
- sqlString += " and (-1= :DATACODE OR wd.datacode = :DATACODE)";
- }
- sqlString += " order by wd.goodscode,wd.sapcode,wd.usercode,wd.ordercode,wd.outputnum \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 报工汇总 add xiacm 2022-10-12
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLogTotal_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @" SELECT T.DATACODE,
- T.ACTUALOUTPUT,
- T.WORKSHOP,
- T.OUTPUT,
- T.SCRAPNUM,
- T.CLEANNUPNUM,
- T.RECOVERYNUM,
- T.REPAIRNUM,
- T.DRCXFDRJJDCCP,
- T.DRJJBQTRCXDCCP,
- T.DIFFER FROM (
- SELECT T1.DATACODE,
- to_char(T1.ACTUALOUTPUT) ACTUALOUTPUT,
- '-' as WORKSHOP,
- T2.OUTPUT,
- T2.SCRAPNUM,
- T2.CLEANNUPNUM,
- T2.RECOVERYNUM,
- T2.REPAIRNUM,
- to_char(T3.DRCXFDRJJDCCP) DRCXFDRJJDCCP,
- to_char(T4.DRJJBQTRCXDCCP) DRJJBQTRCXDCCP,
- to_char(T1.ACTUALOUTPUT + NVL(T4.DRJJBQTRCXDCCP, 0) - NVL(T3.DRCXFDRJJDCCP, 0) -
- (T2.OUTPUT + T2.RECOVERYNUM)) AS DIFFER
- FROM (
- -- 业务数据汇总
- -- 10
- SELECT '10' AS DATACODE,
- SUM(DECODE(MHH.OPERATIONTYPE, 1, M.STANDARDGROUTINGSUM, 0)) AS ACTUALOUTPUT
- FROM (SELECT MH.GOODSID,
- MH.MOULDID,
- MH.OPERATIONTYPE,
- MH.GROUTINGNUM
- FROM TP_PC_MOULDCHANGEHISTORY MH
- WHERE MH.OPERATIONTYPE IN (1, 2, 3, 9, 11, -1)
- AND MH.CREATETIME >= :DATEBEGIN
- AND MH.CREATETIME < :DATEEND
- UNION ALL
- SELECT MH.GOODSIDAFTER,
- MH.MOULDID,
- 0,
- MH.GROUTINGNUM
- FROM TP_PC_MOULDCHANGEHISTORY MH
- WHERE MH.OPERATIONTYPE = -1
- AND MH.CREATETIME >= :DATEBEGIN
- AND MH.CREATETIME < :DATEEND) MHH
- INNER JOIN TP_PC_MOULD M
- ON M.MOULDID = MHH.MOULDID
- UNION ALL
- -- 20
- SELECT '20' AS DATACODE,
- SUM(DECODE(GH.DATATYPE, 1, 1, -1)) BUSINESSOUTPUT
- FROM TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GH.GOODSID
- WHERE GH.CREATETIME >= :DATEBEGIN
- AND GH.CREATETIME < :DATEEND
- AND GH.DATATYPE IN (1, 2)
- AND G.SCRAPSUMFLAG = '1'
- UNION ALL
- -- 30
- SELECT '30' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT 1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (53, 97,161)
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (53, 97,161)
- AND P.VALUEFLAG = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 40
- SELECT '40' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT 1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (65, 99)
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (65, 99)
- AND P.VALUEFLAG = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 50
- SELECT '50' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT COUNT(DISTINCT P.BARCODE) AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (11, 104)
- AND P.ISREFIRE = '0'
- AND P.ISLENGBU = '0'
- AND ((P.PROCEDUREID = 11 AND (P.CHECKFLAG = '1' OR P.CHECKFLAG IS NULL))
- OR (P.PROCEDUREID = 104 AND P.CHECKFLAG = '1'))
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID = 11
- AND P.VALUEFLAG = '0'
- AND P.ISREFIRE = '0'
- AND P.ISLENGBU = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 55
- SELECT '55' AS DATACODE,
- COUNT(1) AS BUSINESSOUTPUT
- FROM TP_PM_LCFHDO GH
- WHERE GH.LCFHTIME >= :DATEBEGIN
- AND GH.LCFHTIME < :DATEEND
- AND NOT EXISTS(SELECT 1 FROM tp_pm_lcfhundo lf WHERE lf.groutingdailydetailid = gh.groutingdailydetailid and lf.lcfhtime = gh.lcfhtime)
- UNION ALL
- -- 60
- SELECT '60' AS DATACODE,
- COUNT(1) AS BUSINESSOUTPUT
- FROM TP_PM_FINISHEDPRODUCT GH
- WHERE GH.FHTIME >= :DATEBEGIN
- AND GH.FHTIME < :DATEEND) T1
- LEFT JOIN (
- -- 当日推送日志数据汇总
- SELECT DATACODE AS DATACODETD,
- SUM(TO_NUMBER(OUTPUTNUM)) AS OUTPUT,
- SUM(TO_NUMBER(SCRAPNUM)) AS SCRAPNUM,
- SUM(TO_NUMBER(CLEANUPNUM)) AS CLEANNUPNUM,
- SUM(TO_NUMBER(RECOVERYNUM)) AS RECOVERYNUM,
- SUM(TO_NUMBER(REPAIRNUM)) AS REPAIRNUM
- FROM TSAP_HEGII_WORKDATA_BG
- WHERE LOGID IN (SELECT LOGID
- FROM TSAP_HEGII_DATALOG_BG T
- WHERE DATASTUTS = 'S'
- AND EXECUTEDATEBEGIN >= :DATEBEGIN
- AND EXECUTEDATEEND <= :DATEEND)
- GROUP BY DATACODE
- ORDER BY DATACODE) T2
- ON T2.DATACODETD = T1.DATACODE
- LEFT JOIN (
- -- 当日撤销非当日交接的产成品
- SELECT '60' AS DATACODE,
- COUNT(WL.CODEI) AS DRCXFDRJJDCCP
- FROM TP_WMS_LOG WL
- WHERE LOGTYPE = 2
- AND EXISTS (SELECT 1
- FROM TP_WMS_LOG WL1
- WHERE WL1.CODEI = WL.CODEI
- AND WL1.LOGTYPE = 1
- AND TRUNC(WL1.CREATETIME) < TRUNC(WL.CREATETIME))
- AND WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND
- UNION ALL
- --55节点(裸瓷包装)
- SELECT '55' AS DATACODE,
- COUNT(WL.GROUTINGDAILYDETAILID) AS DRCXFDRJJDCCP
- FROM TP_PM_LCFHUNDO WL
- WHERE WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND
- AND WL.LCFHTIME < :DATEBEGIN
- ) T3
- ON T3.DATACODE = T1.DATACODE
- LEFT JOIN (
- -- 当日交接被其他日撤销的产成品
- SELECT '60' AS DATACODE,
- COUNT(WL.CODEI) AS DRJJBQTRCXDCCP
- FROM TP_WMS_LOG WL
- WHERE LOGTYPE = 1
- AND EXISTS (SELECT 1
- FROM TP_WMS_LOG WL1
- WHERE WL1.CODEI = WL.CODEI
- AND WL1.LOGTYPE = 2
- AND TRUNC(WL1.CREATETIME) > TRUNC(WL.CREATETIME))
- AND WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND
- UNION ALL
- --55节点(裸瓷包装)
- SELECT '55' AS DATACODE,
- COUNT(WL.GROUTINGDAILYDETAILID) AS DRJJBQTRCXDCCP
- FROM TP_PM_LCFHDO WL
- WHERE EXISTS (SELECT 1
- FROM TP_PM_LCFHUNDO WL1
- WHERE WL1.GROUTINGDAILYDETAILID = WL.GROUTINGDAILYDETAILID
- AND TRUNC(WL1.CREATETIME) > TRUNC(WL.CREATETIME))
- AND WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND
- ) T4
- ON T4.DATACODE = T1.DATACODE
- UNION ALL
- SELECT T2.DATACODE,
- '' ACTUALOUTPUT,
- TO_CHAR(T2.WORKSHOP) WORKSHOP,
- T2.OUTPUT,
- T2.SCRAPNUM,
- T2.CLEANNUPNUM,
- T2.RECOVERYNUM,
- T2.REPAIRNUM,
- '' AS DRCXFDRJJDCCP,
- '' AS DRJJBQTRCXDCCP,
- '' AS DIFFER
- FROM (
- -- 当日推送日志数据汇总
- SELECT DATACODE ,
- WORKSHOP,
- SUM(TO_NUMBER(OUTPUTNUM)) AS OUTPUT,
- SUM(TO_NUMBER(SCRAPNUM)) AS SCRAPNUM,
- SUM(TO_NUMBER(CLEANUPNUM)) AS CLEANNUPNUM,
- SUM(TO_NUMBER(RECOVERYNUM)) AS RECOVERYNUM,
- SUM(TO_NUMBER(REPAIRNUM)) AS REPAIRNUM
- FROM TSAP_HEGII_WORKDATA_BG
- WHERE LOGID IN (SELECT LOGID
- FROM TSAP_HEGII_DATALOG_BG T
- WHERE DATASTUTS = 'S'
- AND T.DATACODE IN ('20','30','40','50','55','60')
- AND EXECUTEDATEBEGIN >= :DATEBEGIN
- AND EXECUTEDATEEND <= :DATEEND )
- GROUP BY DATACODE ,WORKSHOP
- ORDER BY DATACODE ) T2
- ) T
- WHERE (-1 = :DATACODE OR T.DATACODE = :DATACODE)
- ORDER BY T.DATACODE,T.WORKSHOP";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 半成品库存 add xiacm 2022-11-09
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataIVITotal_BC(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT semi.DATACODE ,
- semi.WORKSHOP ,
- semi.MATERIALCODE ,
- semi.GOODSCODE ,
- semi.GOODSNAME ,
- COUNT(1) AS INVENTORYQUANTITY,
- SYSDATE AS CREATETIME
- FROM (
- --配置表里的所有工序
- SELECT DI.DATACODE,
- CASE
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK1' THEN
- 1
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK2' THEN
- 2
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK3' THEN
- 3
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK1' THEN
- 1
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK2' THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN DI.WORKSHOP = 3 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_INPRODUCTION IP
- INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
- ON IP.PROCEDUREID = DI.ITEMID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON IP.BARCODE = GDD.BARCODE
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- UNION ALL
- --10-0干补
- SELECT DI.DATACODE,
- CASE
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK1' THEN
- 1
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK2' THEN
- 2
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK3' THEN
- 3
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK1' THEN
- 1
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK2' THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN DI.WORKSHOP = 3 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_INPRODUCTION IP
- INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
- ON IP.FLOWPROCEDUREID = DI.ITEMID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON IP.BARCODE = GDD.BARCODE
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- WHERE PROCEDUREID = 18
- UNION ALL
- --未交坯
- SELECT '20' DATACODE,
- CASE
- WHEN INSTR(GT.GOODSTYPECODE, '001001') = 1
- AND
- (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
- 2
- WHEN INSTR(GT.GOODSTYPECODE, '001002') = 1
- AND
- (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
- 1
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_GROUTINGDAILYDETAIL GDD
- INNER JOIN TP_MST_GOODS G
- ON GDD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- WHERE GDD.VALUEFLAG = 1
- AND GDD.BARCODE IS NOT NULL
- AND GDD.BEGINNINGFLAG = 0
- AND GDD.DELIVERFLAG = 0
- AND GDD.SCRAPFLAG = 0) semi
- where (:DATACODE is null or :DATACODE ='' or :DATACODE ='-1' or instr(','||:DATACODE||',',','||semi.DATACODE||',')>0)
- and (:WORKSHOP is null or :WORKSHOP = '' or instr(','||:WORKSHOP||',',','||semi.WORKSHOP||',')>0)
- and (:MATERIALCODE is null or :MATERIALCODE = '' or instr(','||:MATERIALCODE||',',','||semi.MATERIALCODE||',')>0)
- GROUP BY DATACODE,
- WORKSHOP,
- MATERIALCODE,
- GOODSCODE,
- GOODSNAME
- ORDER BY DATACODE,
- WORKSHOP,
- MATERIALCODE,
- GOODSCODE,
- GOODSNAME";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":WORKSHOP",OracleDbType.Varchar2, cre.Properties["WORKSHOP"], ParameterDirection.Input),
- new OracleParameter(":MATERIALCODE",OracleDbType.Varchar2, cre.Properties["MATERIALCODE"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 同步SAP接口5000端口_60节点
- /// </summary>
- /// <param name="date"></param>
- /// <param name="datacode"></param>
- /// <param name="userid"></param>
- /// <param name="logid"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncSap5000_60(DateTime date)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] paras = null;
- int r = 0;
- // 查询当前节点所有不为S的日志
- string sqlString = @"
- SELECT DL.LOGID
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE 1 = 1
- AND DL.DATASTUTS = 'F'
- AND DL.LOGID > 6
- AND DL.DATACODE = '60'
- ORDER BY DL.LOGID ";
- DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString);
- if (dtLogID.Rows.Count == 0)
- {
- sre.Result = "S";
- sre.Message = "没有要同步的数据";
- return sre;
- }
- string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
- sqlString = @"
- SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
- TO_CHAR(5000) WERKS,
- TO_CHAR(WD.GOODSCODE) GROES,
- TO_CHAR(WD.SAPCODE) MATNR,
- TO_CHAR(WD.USERCODE) ZGHNU,
- TO_CHAR(WD.DATACODE) ZJDNU,
- TO_CHAR(WD.CREATETIME, 'YYYYMMDD') ZSCNU,
- TO_CHAR(WD.CREATETIME, 'HH24MISS') ZKSSJ,
- TO_CHAR(WD.CREATETIME, 'YYYYMMDDHH24MISS') ZJSRQ,
- TO_CHAR(WD.ORDERCODE) VBELN,
- TO_CHAR(WD.ORDERITEM) POSNR,
- TO_CHAR(WD.OUTPUTNUM) ZCLNG,
- TO_CHAR(WD.SCRAPNUM) ZSPNG,
- TO_CHAR(WD.CLEANUPNUM) ZQCNG,
- TO_CHAR(WD.RECOVERYNUM) ZHSNG,
- TO_CHAR(WD.REPAIRNUM) ZGBNG,
- TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
- --'T' AS ZSCS,
- TO_CHAR(WD.ZSCS) ZSCS,
- TO_CHAR(WD.WORKSHOP) ZSCCJ,
- WD.CHARG,
- '60' DATACODE,
- '5000' || WD.CHARG || LPAD(DL.LOGID, 10, '0') AS ZID
- FROM TSAP_HEGII_WORKDATA_BG WD
- INNER JOIN TSAP_HEGII_DATALOG_BG DL
- ON WD.LOGID = DL.LOGID
- WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0
- ORDER BY WD.LOGID ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- int num = workData.Rows.Count;
- //sqlString = @"
- //SELECT ZID,
- // WERKS,
- // MATNR,
- // ZJDNU,
- // ZSCS,
- // ZSCCJ,
- // ZSCMS,
- // ZSCNU,
- // ZKSSJ,
- // ZGHNU,
- // GROES,
- // POSNR,
- // IDNRK,
- // MENGE,
- // MEINS,
- // CHARG,
- // LGORT
- // FROM TSAP_HEGII_WORKDATA_BG_ZB
- // WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0
- // ORDER BY LOGID ";
- //paras = new OracleParameter[]
- //{
- // new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- //};
- //DataTable dtDetail = oracleConn.GetSqlResultToDt(sqlString, paras);
- // 调用SAP接口
- //string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}"
- // + ",\"TABLE_IN1\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAPDetail>.ConvertToModel(dtDetail)) + "}}";
- string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
- // 配置文件
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
- // 测试
- //url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
- // 正式
- //url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
- string result = string.Empty;
- try
- {
- result = PostData(url030, postString, "POST");
- }
- catch (Exception ex)
- {
- sre.Result = -2;
- sre.Message = "sap030接口同步失败," + ex.Message;
- return sre;
- }
- sqlString = @"
- UPDATE TSAP_HEGII_DATALOG_BG T
- SET T.ENDTIME = SYSDATE,
- DATASTUTS = :DATASTUTS,
- DATAMSG = :MSG
- WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
- new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlString, paras);
- #region 同步WMS系统
- DateTime now = DateTime.Now;
- string message = string.Empty;
- string sqlFpData = @"
- SELECT WL.SKU,
- WL.SERIALNO,
- WL.ADDDAY,
- WL.ADDTIME,
- WL.CODEI,
- WL.UDF1,
- WL.UDF2,
- WL.LPN,
- WL.CREATETIME,
- GDD.SECURITYCODE,
- WL.LOGTYPE
- FROM TP_WMS_LOG WL
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.BARCODE = WL.CODEI
- WHERE WL.VALUEFLAG = '1'
- AND WL.BGLOGID = :BGLOGID ";
- string sqlUpdate = @"
- UPDATE TP_WMS_LOG
- SET RETURNDESC = :RETURNDESC,
- UPDATETIME = :UPDATETIME
- WHERE BGLOGID = :BGLOGID ";
- foreach (DataRow row in dtLogID.Rows)
- {
- // 歇2s,调太快会给接口累着。
- Thread.Sleep(2000);
- paras = new OracleParameter[]
- {
- new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
- };
- DataTable fpData = oracleConn.GetSqlResultToDt(sqlFpData, paras);
- if (fpData.Rows.Count > 0)
- {
- if ("1".Equals(fpData.Rows[0]["LOGTYPE"] + ""))
- {
- message = WMSDataLogic.PushWMS2(fpData, now);
- }
- else
- {
- message = WMSDataLogic.BackPushWMS2(fpData, now);
- }
- }
- paras = new OracleParameter[]
- {
- new OracleParameter(":RETURNDESC", OracleDbType.NVarchar2, message, ParameterDirection.Input),
- new OracleParameter(":UPDATETIME", OracleDbType.Date, now, ParameterDirection.Input),
- new OracleParameter(":BGLOGID", OracleDbType.Int32, row["LOGID"], ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlUpdate, paras);
- }
- #endregion
- oracleConn.Commit();
- sre.Message = JObject.Parse(result)["ZMSG"].ToString();
- sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
- return sre;
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGToSAP",
- "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- throw ex;
- }
- finally
- {
- if (oracleConn != null && oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- #endregion
- #region 报工移库
- /// <summary>
- /// 报工移库_同步SAP数据(自动)
- /// </summary>
- /// <param name="date"></param>
- public static void BGYKToSAP(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 生成日志
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BGYK", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- #endregion
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //2022年9月8日11:38:51 更改 by fy
- //sqlString = @"
- //SELECT WERKS,
- // MATNR,
- // ZJDNU,
- // ZSCS,
- // ZSCCJ,
- // ZSCMS,
- // CHARG,
- // MENGE,
- // ZMLID
- // FROM TSAP_HEGII_WORKDATA_BGYK
- // WHERE LOGID = :LOGID ";
- sqlString = @"SELECT
- A.WERKS,
- A.MATNR,
- A.ZJDNU,
- -- A.ZSCS,
- 'T' AS ZSCS,
- A.ZSCCJ,
- A.ZSCMS,
- A.CHARG,
- A.MENGE,
- A.ZMLID,
- to_char(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(B.EXECUTEDATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
- to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
- to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM
- TSAP_HEGII_WORKDATA_BGYK A
- INNER JOIN TSAP_HEGII_DATALOG_BGYK B ON B.LOGID = A.LOGID
- WHERE
- A.LOGID = :LOGID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //获取报工SAP接口是否开启
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "1")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
- //url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
- string result = PostData(url034, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string zmsg = JObject.Parse(result)["ZMSG"].ToString();
- sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
- paras = new OracleParameter[]
- {
- new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
- };
- oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGYKToSAP",
- "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- public static void BGYKToSAP_TEST(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //2022年9月8日11:38:51 更改 by fy
- //sqlString = @"
- //SELECT WERKS,
- // MATNR,
- // ZJDNU,
- // ZSCS,
- // ZSCCJ,
- // ZSCMS,
- // CHARG,
- // MENGE,
- // ZMLID
- // FROM TSAP_HEGII_WORKDATA_BGYK
- // WHERE LOGID = :LOGID ";
- sqlString = @"SELECT '5000' WERKS,MATNR,to_char(ZJDNU) ZJDNU,'T' AS ZSCS,to_char(ZSCCJ) ZSCCJ,to_char(ZSCMS) ZSCMS,to_char(CHARG)CHARG,
- to_char(MENGE) MENGE,to_char(ZMLID) ZMLID,
- to_char(:V_DATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(:IN_DATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
- to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
- to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT FROM (
- SELECT
- T.MATNR,
- '30' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '2' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '3' AS ZMLID
- FROM
- (-- 3-3线上施釉(3)到3#刮登(99)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 99
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 99
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE UNION ALL
- SELECT
- T.MATNR,
- '40' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '2' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '3' AS ZMLID
- FROM
- (-- 3#卸窑(103)到7-1成检出窑交接(11)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 11
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 11
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE UNION ALL
- SELECT
- T.MATNR,
- '40' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '3' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '2' AS ZMLID
- FROM
- (-- 6-1卸窑(10)到3#成检交接(104)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 104
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 6-1卸窑(10)到3#成检交接(104)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 104
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE
- ) WHERE MENGE > 0";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":V_DATEBEGIN",OracleDbType.Date, date, ParameterDirection.Input),
- new OracleParameter(":IN_DATEEND",OracleDbType.Date, ndate, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //获取报工SAP接口是否开启
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- //string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
- string url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
- string result = PostData(url034, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string zmsg = JObject.Parse(result)["ZMSG"].ToString();
- //sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
- //paras = new OracleParameter[]
- //{
- // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- // new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- // new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
- //};
- //oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGYKToSAP",
- "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 查询同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_BGYK(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"
- SELECT DL.LOGID,
- DL.BEGINTIME,
- DL.ENDTIME,
- DL.YYYYMMDD,
- DL.ZTYPE,
- DL.ZMSG,
- U.USERCODE SYNUSERCODE
- FROM TSAP_HEGII_DATALOG_BGYK DL
- LEFT JOIN TP_MST_USER U
- ON U.USERID = DL.CREATEUSERID
- WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
- AND DL.EXECUTEDATEEND <= :DATEEND ";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_BGYK(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- //add xiacm 2022-10-21
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = @"
- SELECT WERKS,
- MATNR,
- ZJDNU,
- ZSCS,
- ZSCCJ,
- ZSCMS,
- CHARG,
- MENGE,
- ZMLID
- FROM TSAP_HEGII_WORKDATA_BGYK WD ";
- if (logid > 0)
- {
- sqlString += "WHERE WD.LOGID = :LOGID ";
- }
- else
- {
- sqlString += @" INNER JOIN TSAP_HEGII_DATALOG_BGYK DL
- ON WD.LOGID = DL.LOGID
- WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
- AND DL.EXECUTEDATEEND <= :DATEEND ";
- }
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":LOGID",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null)
- {
- oracleConn.Close();
- }
- }
- }
- #endregion
- #region PostData 请求
- public static string PostData(string url, string data, string method)
- {
- //将单引号转义成双引号
- data = data.Replace("'", "\"");
- //创建Web访问对象
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
- //把用户传过来的数据转成“UTF-8”的字节流
- byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
- myRequest.Method = method;
- myRequest.ContentLength = buf.Length;
- myRequest.ContentType = "application/json;charset=UTF-8";
- //myRequest.MaximumAutomaticRedirections = 1;
- myRequest.AllowAutoRedirect = true;
- //UTF8标准转码加密
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- // 配置文件
- string userName = ini.ReadIniData("SAP_NEW_INFO", "userName");
- // 测试
- //userName = "hgsapdk:Sapdk#240";
- // 正式
- //string userName = "PODKMES:Sapdk#800";
- string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(userName));
- myRequest.Headers.Add("Authorization", "Basic " + base64Header);
- //发送请求
- Stream stream = myRequest.GetRequestStream();
- stream.Write(buf, 0, buf.Length);
- stream.Close();
- //获取接口返回值
- //通过Web访问对象获取响应内容
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
- string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
- reader.Close();
- myResponse.Close();
- // 结果
- OutputLog.TraceLog(LogPriority.Information,
- "报工030", method, data,
- LocalPath.LogExePath + "SAP_HEGII\\Info_030");
- return returnXml;
- }
- #endregion
- #region 转换
- public class ModelConvertHelper<T> where T : new()
- {
- public static List<T> ConvertToModel(DataTable dt)
- {
- // 定义集合
- List<T> ts = new List<T>();
- // 获得此模型的类型
- Type type = typeof(T);
- string tempName = "";
- foreach (DataRow dr in dt.Rows)
- {
- T t = new T();
- // 获得此模型的公共属性
- PropertyInfo[] propertys = t.GetType().GetProperties();
- foreach (PropertyInfo pi in propertys)
- {
- tempName = pi.Name;
- // 检查DataTable是否包含此列
- if (dt.Columns.Contains(tempName))
- {
- // 判断此属性是否有Setter
- if (!pi.CanWrite) continue;
- object value = dr[tempName];
- if (value != DBNull.Value)
- pi.SetValue(t, value, null);
- }
- }
- ts.Add(t);
- }
- return ts;
- }
- }
- #endregion
- }
- }
|