PCModuleLogic.cs 357 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PCModuleLogic.cs
  5. * 2.功能描述:生产配置服务端业务逻辑
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2015/03/30 1.00 新建
  9. *******************************************************************************/
  10. using Dongke.IBOSS.PRD.Basics.BaseResources;
  11. using Dongke.IBOSS.PRD.Basics.DataAccess;
  12. using Dongke.IBOSS.PRD.Service.CMNModuleService;
  13. using Dongke.IBOSS.PRD.Service.DataModels;
  14. using Dongke.IBOSS.PRD.WCF.DataModels;
  15. using Dongke.WinForm.Utilities;
  16. using Oracle.ManagedDataAccess.Client;
  17. using SAP.Middleware.Connector;
  18. using System;
  19. using System.Collections.Generic;
  20. using System.Data;
  21. using System.Text;
  22. using System.Configuration;
  23. using Dongke.IBOSS.PRD.Basics.Library;
  24. namespace Dongke.IBOSS.PRD.Service.PCModuleService
  25. {
  26. /// <summary>
  27. /// 生产配置服务端业务逻辑
  28. /// </summary>
  29. public static class PCModuleLogic
  30. {
  31. //SAP服务器配置参数
  32. //public static string appServerHost = ConfigurationManager.AppSettings["SapAppServerHost"].ToString();
  33. //public static string systemNumber = ConfigurationManager.AppSettings["SapSystemNumber"].ToString();
  34. //public static string user = ConfigurationManager.AppSettings["SapUser"].ToString();
  35. //public static string password = ConfigurationManager.AppSettings["SapPassword"].ToString();
  36. //public static string client = ConfigurationManager.AppSettings["SapClient"].ToString();
  37. //SAP服务器配置参数
  38. public static Basics.Library.INIUtility ini = Basics.Library.INIUtility.Instance(Basics.Library.INIUtility.IniFile.SAP_HEGII);
  39. public static string appServerHost = ini.ReadIniData("SAP_RFC_INFO", "SapAppServerHost");
  40. public static string systemNumber = ini.ReadIniData("SAP_RFC_INFO", "SapSystemNumber");
  41. public static string user = ini.ReadIniData("SAP_RFC_INFO", "SapUser");
  42. public static string password = ini.ReadIniData("SAP_RFC_INFO", "SapPassword");
  43. public static string client = ini.ReadIniData("SAP_RFC_INFO", "SapClient");
  44. #region 成型线管理
  45. #region 成型线一览
  46. /// <summary>
  47. /// 取得FPC0101画面(成型线管理)的初始化数据
  48. /// </summary>
  49. /// <param name="user">登录用户信息</param>
  50. /// <returns>初始化数据</returns>
  51. public static ServiceResultEntity GetFPC0101IData(SUserInfo user)
  52. {
  53. IDBConnection conn = null;
  54. try
  55. {
  56. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  57. DataTable type = CMNModuleLogic.GetTP_MST_GMouldType(conn, user, Constant.ValueFlag.Effective);
  58. DataTable status = CMNModuleLogic.GetTP_SYS_GMouldStatus(conn, true);
  59. ServiceResultEntity sre = new ServiceResultEntity();
  60. sre.Data = new DataSet();
  61. sre.Data.Tables.Add(type);
  62. sre.Data.Tables.Add(status);
  63. return sre;
  64. }
  65. catch (Exception ex)
  66. {
  67. throw ex;
  68. }
  69. finally
  70. {
  71. if (conn != null &&
  72. conn.ConnState == ConnectionState.Open)
  73. {
  74. conn.Close();
  75. }
  76. }
  77. }
  78. /// <summary>
  79. /// 取得FPC0101画面(成型线管理)的查询数据
  80. /// </summary>
  81. /// <param name="user">登录用户信息</param>
  82. /// <param name="se">查询条件</param>
  83. /// <returns>查询结果</returns>
  84. public static ServiceResultEntity GetFPC0101SData(SUserInfo user, FPC0101_SE se)
  85. {
  86. IDBConnection conn = null;
  87. try
  88. {
  89. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  90. List<OracleParameter> parameters = new List<OracleParameter>();
  91. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  92. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  93. if (se != null)
  94. {
  95. // 成型线范围权限
  96. if (se.PurviewType.HasValue)
  97. {
  98. sql.Append(" AND EXISTS (SELECT UP.PurviewID");
  99. sql.Append(" FROM TP_MST_UserPurview UP");
  100. sql.Append(" WHERE UP.PurviewType = '" + (se.PurviewType.Value ? (int)Constant.PurviewType.OperateGroutingLine : (int)Constant.PurviewType.ViewGroutingLine) + "'");
  101. sql.Append(" AND (UP.PurviewID = -1 OR UP.PurviewID = gl.GroutingLineID)");
  102. sql.Append(" AND UP.UserId = :UPUserId) ");
  103. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  104. }
  105. // 楼号
  106. if (!string.IsNullOrEmpty(se.BuildingNo))
  107. {
  108. sql.Append(" AND INSTR(gl.BuildingNo, :BuildingNo) > 0");
  109. parameters.Add(new OracleParameter(":BuildingNo", OracleDbType.NVarchar2, se.BuildingNo, ParameterDirection.Input));
  110. }
  111. // 楼层
  112. if (!string.IsNullOrEmpty(se.FloorNo))
  113. {
  114. sql.Append(" AND INSTR(gl.FloorNo, :FloorNo) > 0");
  115. parameters.Add(new OracleParameter(":FloorNo", OracleDbType.NVarchar2, se.FloorNo, ParameterDirection.Input));
  116. }
  117. // 线号
  118. if (!string.IsNullOrEmpty(se.GroutingLineNo))
  119. {
  120. sql.Append(" AND INSTR(gl.GroutingLineNo, :GroutingLineNo) > 0");
  121. parameters.Add(new OracleParameter(":GroutingLineNo", OracleDbType.NVarchar2, se.GroutingLineNo, ParameterDirection.Input));
  122. }
  123. // 成型线编码
  124. if (!string.IsNullOrEmpty(se.GroutingLineCode))
  125. {
  126. sql.Append(" AND INSTR(gl.GroutingLineCode, :GroutingLineCode) > 0");
  127. parameters.Add(new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, se.GroutingLineCode, ParameterDirection.Input));
  128. }
  129. // 成型线名称
  130. if (!string.IsNullOrEmpty(se.GroutingLineName))
  131. {
  132. sql.Append(" AND INSTR(gl.GroutingLineName, :GroutingLineName) > 0");
  133. parameters.Add(new OracleParameter(":GroutingLineName", OracleDbType.NVarchar2, se.GroutingLineName, ParameterDirection.Input));
  134. }
  135. // 成型线类别
  136. if (se.GMouldTypeID.HasValue)
  137. {
  138. sql.Append(" AND gl.GMouldTypeID = :GMouldTypeID");
  139. parameters.Add(new OracleParameter(":GMouldTypeID", OracleDbType.Int32, se.GMouldTypeID.Value, ParameterDirection.Input));
  140. }
  141. // 成型线状态
  142. if (se.GMouldStatus.HasValue)
  143. {
  144. sql.Append(" AND gl.GMouldStatus = :GMouldStatus");
  145. parameters.Add(new OracleParameter(":GMouldStatus", OracleDbType.Int32, se.GMouldStatus.Value, ParameterDirection.Input));
  146. }
  147. // 成型工号
  148. if (!string.IsNullOrEmpty(se.GUserCode))
  149. {
  150. sql.Append(" AND INSTR(U.UserCode, :GroutingUserCode) > 0");
  151. parameters.Add(new OracleParameter(":GroutingUserCode", OracleDbType.NVarchar2, se.GUserCode, ParameterDirection.Input));
  152. }
  153. // 开始使用日期-开始
  154. if (se.BeginUsedDateBegin.HasValue)
  155. {
  156. sql.Append(" AND gl.BeginUsedDate >= :BeginUsedDateBegin");
  157. parameters.Add(new OracleParameter(":BeginUsedDateBegin", OracleDbType.Date, se.BeginUsedDateBegin.Value, ParameterDirection.Input));
  158. }
  159. // 开始使用日期-结束
  160. if (se.BeginUsedDateEnd.HasValue)
  161. {
  162. sql.Append(" AND gl.BeginUsedDate <= :BeginUsedDateEnd");
  163. parameters.Add(new OracleParameter(":BeginUsedDateEnd", OracleDbType.Date, se.BeginUsedDateEnd.Value, ParameterDirection.Input));
  164. }
  165. // 结束使用日期-开始
  166. if (se.EndUsedDateBegin.HasValue)
  167. {
  168. sql.Append(" AND gl.EndUsedDate >= :EndUsedDateBegin");
  169. parameters.Add(new OracleParameter(":EndUsedDateBegin", OracleDbType.Date, se.EndUsedDateBegin.Value, ParameterDirection.Input));
  170. }
  171. // 结束使用日期-结束
  172. if (se.EndUsedDateEnd.HasValue)
  173. {
  174. sql.Append(" AND gl.EndUsedDate <= :EndUsedDateEnd");
  175. parameters.Add(new OracleParameter(":EndUsedDateEnd", OracleDbType.Date, se.EndUsedDateEnd.Value, ParameterDirection.Input));
  176. }
  177. // 产品编号
  178. if (!string.IsNullOrEmpty(se.GoodsCode))
  179. {
  180. sql.Append(" AND EXISTS(SELECT 1");
  181. sql.Append(" FROM tp_pc_groutinglinedetail gdd");
  182. sql.Append(" INNER JOIN tp_mst_goods g");
  183. sql.Append(" ON g.goodsid = gdd.goodsid");
  184. sql.Append(" WHERE gdd.groutinglineid = gl.groutinglineid");
  185. sql.Append(" AND INSTR(g.GoodsCode, :GoodsCode) > 0");
  186. sql.Append(" )");
  187. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, se.GoodsCode, ParameterDirection.Input));
  188. }
  189. // 备注
  190. if (!string.IsNullOrEmpty(se.Remarks))
  191. {
  192. sql.Append(" AND INSTR(gl.Remarks, :Remarks) > 0");
  193. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  194. }
  195. }
  196. sql.Append(" ORDER BY gl.GroutingLineCode");
  197. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  198. ServiceResultEntity sre = new ServiceResultEntity();
  199. if (data == null || data.Rows.Count == 0)
  200. {
  201. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  202. return sre;
  203. }
  204. sre.Data = new DataSet();
  205. sre.Data.Tables.Add(data);
  206. OracleParameter[] paras = new OracleParameter[]
  207. {
  208. new OracleParameter(":GroutingLineID", OracleDbType.Int32, data.Rows[0]["GroutingLineID"], ParameterDirection.Input),
  209. };
  210. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  211. if (dData != null)
  212. {
  213. sre.Data.Tables.Add(dData);
  214. }
  215. return sre;
  216. }
  217. catch (Exception ex)
  218. {
  219. throw ex;
  220. }
  221. finally
  222. {
  223. if (conn != null &&
  224. conn.ConnState == ConnectionState.Open)
  225. {
  226. conn.Close();
  227. }
  228. }
  229. }
  230. /// <summary>
  231. /// 取得FPC0101画面(成型线管理)的查询数据
  232. /// </summary>
  233. /// <param name="user">登录用户信息</param>
  234. /// <param name="ids">多个注浆id(用[,]分开)</param>
  235. /// <returns>查询结果</returns>
  236. public static ServiceResultEntity GetFPC0101SData(SUserInfo user, string ids)
  237. {
  238. IDBConnection conn = null;
  239. try
  240. {
  241. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  242. List<OracleParameter> parameters = new List<OracleParameter>();
  243. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  244. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  245. //if (!string.IsNullOrWhiteSpace(ids))
  246. {
  247. ids = "," + ids + ",";
  248. sql.Append(" AND INSTR(:GroutingLineIDs, ',' || gl.GroutingLineID || ',') > 0");
  249. parameters.Add(new OracleParameter(":GroutingLineIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input));
  250. }
  251. sql.Append(" ORDER BY gl.GroutingLineCode");
  252. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  253. ServiceResultEntity sre = new ServiceResultEntity();
  254. if (data == null || data.Rows.Count == 0)
  255. {
  256. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  257. return sre;
  258. }
  259. sre.Data = new DataSet();
  260. sre.Data.Tables.Add(data);
  261. OracleParameter[] paras = new OracleParameter[]
  262. {
  263. new OracleParameter(":GroutingLineID", OracleDbType.Int32, data.Rows[0]["GroutingLineID"], ParameterDirection.Input),
  264. };
  265. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  266. if (dData != null)
  267. {
  268. sre.Data.Tables.Add(dData);
  269. }
  270. return sre;
  271. }
  272. catch (Exception ex)
  273. {
  274. throw ex;
  275. }
  276. finally
  277. {
  278. if (conn != null &&
  279. conn.ConnState == ConnectionState.Open)
  280. {
  281. conn.Close();
  282. }
  283. }
  284. }
  285. /// <summary>
  286. /// 取得FPC0101画面(成型线管理)的查询成型线明细数据
  287. /// </summary>
  288. /// <param name="user">登录用户信息</param>
  289. /// <param name="id">成型线ID</param>
  290. /// <returns>成型线明细数据</returns>
  291. public static ServiceResultEntity GetFPC0101SDData(SUserInfo user, int id)
  292. {
  293. IDBConnection conn = null;
  294. try
  295. {
  296. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  297. OracleParameter[] paras = new OracleParameter[]
  298. {
  299. new OracleParameter(":GroutingLineID", OracleDbType.Int32, id, ParameterDirection.Input),
  300. };
  301. ServiceResultEntity sre = new ServiceResultEntity();
  302. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  303. return sre;
  304. }
  305. catch (Exception ex)
  306. {
  307. throw ex;
  308. }
  309. finally
  310. {
  311. if (conn != null &&
  312. conn.ConnState == ConnectionState.Open)
  313. {
  314. conn.Close();
  315. }
  316. }
  317. }
  318. /// <summary>
  319. /// 获取查询sql
  320. /// </summary>
  321. /// <returns>sql</returns>
  322. private static string GetGroutingLineSQL()
  323. {
  324. string selSql =
  325. "SELECT gl.GroutingLineID," +
  326. " gl.BuildingNo," +
  327. " gl.FloorNo," +
  328. " gl.GroutingLineNo," +
  329. " gl.GroutingLineCode," +
  330. " gl.GroutingLineName," +
  331. " gl.MouldQuantity," +
  332. " gl.userid," +
  333. " u.usercode," +
  334. " u.username," +
  335. " gl.gmouldtypeid," +
  336. " gmt.gmouldtypename," +
  337. " gl.gmouldstatus," +
  338. " gms.gmouldstatusname," +
  339. " gl.beginuseddate," +
  340. " gl.enduseddate," +
  341. " gl.remarks," +
  342. " gl.OPTimeStamp" +
  343. " FROM tp_pc_groutingline gl" +
  344. " INNER JOIN tp_mst_gmouldtype gmt" +
  345. " ON gl.gmouldtypeid = gmt.gmouldtypeid" +
  346. " INNER JOIN tp_sys_gmouldstatus gms" +
  347. " ON gl.gmouldstatus = gms.gmouldstatusid" +
  348. " INNER JOIN tp_mst_user u" +
  349. " ON u.userid = gl.userid" +
  350. // 账套
  351. " WHERE gl.AccountID = :AccountID" +
  352. " AND gl.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  353. return selSql;
  354. }
  355. /// <summary>
  356. /// 获取查询sql
  357. /// </summary>
  358. /// <returns>sql</returns>
  359. private static string GetGroutingLineDetailSQL()
  360. {
  361. string selSql =
  362. "select gld.groutinglinedetailid," +
  363. " gld.groutinglineid," +
  364. " gld.groutingmouldcode," +
  365. " gld.goodsid," +
  366. " g.goodscode," +
  367. " g.goodsname," +
  368. " g.goodsspecification," +
  369. " gld.groutingcount," +
  370. " gld.gmouldstatus," +
  371. " gms.gmouldstatusname," +
  372. " gld.beginuseddate," +
  373. " gld.mouldcode," +
  374. " gld.remarks" +
  375. " from tp_pc_groutinglinedetail gld" +
  376. " inner join tp_mst_goods g" +
  377. " on g.goodsid = gld.goodsid" +
  378. " inner join tp_mst_goodstype gt" +
  379. " on gt.goodstypeid = g.goodstypeid" +
  380. " inner join tp_sys_gmouldstatus gms" +
  381. " on gld.gmouldstatus = gms.gmouldstatusid" +
  382. " where gld.groutinglineid = :GroutingLineID" +
  383. " and gld.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  384. " order by gld.groutingmouldcode";
  385. return selSql;
  386. }
  387. /// <summary>
  388. /// FPC0101画面(成型线管理)停用、启用成型线
  389. /// </summary>
  390. /// <param name="user">登录用户信息</param>
  391. /// <param name="groutingLineID">成型线ID</param>
  392. /// <param name="opTimeStamp">时间戳</param>
  393. /// <param name="valueFlag">有效标识</param>
  394. /// <returns>操作结果</returns>
  395. public static ServiceResultEntity SetFPC0101DataStatus(SUserInfo user, int groutingLineID, object opTimeStamp, Constant.ValueFlag valueFlag)
  396. {
  397. IDBTransaction tran = null;
  398. try
  399. {
  400. ServiceResultEntity sre = new ServiceResultEntity();
  401. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  402. int executeResult = 0;
  403. #region 校验时间戳
  404. // 校验时间戳
  405. string checkSql =
  406. "SELECT GroutingLineID" +
  407. " FROM TP_PC_GroutingLine" +
  408. " WHERE GroutingLineID = :GroutingLineID" +
  409. " AND OPTimeStamp = :OPTimeStamp" +
  410. " AND ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  411. OracleParameter[] checkParas = new OracleParameter[]
  412. {
  413. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  414. new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, opTimeStamp, ParameterDirection.Input),
  415. };
  416. object checkResult = tran.GetSqlResultToObj(checkSql, checkParas);
  417. if (checkResult == null)
  418. {
  419. sre.Status = Constant.ServiceResultStatus.DataChanged;
  420. return sre;
  421. }
  422. #endregion 校验时间戳
  423. StringBuilder sql = new StringBuilder("UPDATE TP_PC_GroutingLine");
  424. if (valueFlag == Constant.ValueFlag.Invalid)
  425. {
  426. sql.Append(" SET GMouldStatus = '" + (int)Constant.GMouldStatus.Disable + "',");
  427. sql.Append(" EndUsedDate = to_date(sysdate, 'yyyy-mm-dd')");
  428. sql.Append(" WHERE GMouldStatus = '" + (int)Constant.GMouldStatus.Normal + "'");
  429. }
  430. else if (valueFlag == Constant.ValueFlag.Effective)
  431. {
  432. sql.Append(" SET GMouldStatus = '" + (int)Constant.GMouldStatus.Normal + "',");
  433. sql.Append(" BeginUsedDate = to_date(sysdate, 'yyyy-mm-dd'),");
  434. sql.Append(" EndUsedDate = null");
  435. sql.Append(" WHERE GMouldStatus = '" + (int)Constant.GMouldStatus.Disable + "'");
  436. }
  437. sql.Append(" AND GroutingLineID = :GroutingLine");
  438. OracleParameter[] paras = new OracleParameter[]
  439. {
  440. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  441. };
  442. executeResult = tran.ExecuteNonQuery(sql.ToString(), paras);
  443. if (executeResult <= 0)
  444. {
  445. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  446. return sre;
  447. }
  448. tran.Commit();
  449. return sre;
  450. }
  451. catch (Exception ex)
  452. {
  453. if (tran != null &&
  454. tran.ConnState == ConnectionState.Open)
  455. {
  456. tran.Rollback();
  457. }
  458. throw ex;
  459. }
  460. finally
  461. {
  462. if (tran != null &&
  463. tran.ConnState == ConnectionState.Open)
  464. {
  465. tran.Disconnect();
  466. }
  467. }
  468. }
  469. #endregion 成型线一览
  470. #region 成型线
  471. /// <summary>
  472. /// 取得FPC0102画面(成型线管理)的查询数据
  473. /// </summary>
  474. /// <param name="user">登录用户信息</param>
  475. /// <param name="groutingLineID">成型线ID</param>
  476. /// <returns>查询结果</returns>
  477. public static ServiceResultEntity GetFPC0102Data(SUserInfo user, int groutingLineID)
  478. {
  479. IDBConnection conn = null;
  480. try
  481. {
  482. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  483. List<OracleParameter> parameters = new List<OracleParameter>();
  484. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  485. sql.Append(" AND gl.GroutingLineID = :GroutingLineID");
  486. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  487. parameters.Add(new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input));
  488. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  489. ServiceResultEntity sre = new ServiceResultEntity();
  490. sre.Data = new DataSet();
  491. if (data != null)
  492. {
  493. sre.Data.Tables.Add(data);
  494. }
  495. OracleParameter[] paras = new OracleParameter[]
  496. {
  497. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  498. };
  499. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  500. if (dData != null)
  501. {
  502. dData.Columns["GroutingMouldCode"].Unique = true;
  503. sre.Data.Tables.Add(dData);
  504. }
  505. return sre;
  506. }
  507. catch (Exception ex)
  508. {
  509. throw ex;
  510. }
  511. finally
  512. {
  513. if (conn != null &&
  514. conn.ConnState == ConnectionState.Open)
  515. {
  516. conn.Close();
  517. }
  518. }
  519. }
  520. /// <summary>
  521. /// 保存FPC0102画面(成型线管理)的数据
  522. /// </summary>
  523. /// <param name="user">登录用户信息</param>
  524. /// <param name="groutingLineInfo">成型线数据</param>
  525. /// <returns>保存结果</returns>
  526. public static ServiceResultEntity SetFPC0102Data(SUserInfo user, DataSet groutingLineInfo)
  527. {
  528. IDBTransaction tran = null;
  529. try
  530. {
  531. ServiceResultEntity sre = new ServiceResultEntity();
  532. if (groutingLineInfo == null ||
  533. groutingLineInfo.Tables.Count != 2 ||
  534. groutingLineInfo.Tables[0].Rows.Count < 1 ||
  535. groutingLineInfo.Tables[1].Rows.Count < 1)
  536. {
  537. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  538. return sre;
  539. }
  540. DataRow line = groutingLineInfo.Tables[0].Rows[0];
  541. DataTable detail = groutingLineInfo.Tables[1];
  542. int lineID = 0;
  543. object id = line["GroutingLine"];
  544. if (id != null && id != DBNull.Value)
  545. {
  546. lineID = Convert.ToInt32(id);
  547. }
  548. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  549. int executeResult = 0;
  550. // 新建成型线
  551. if (lineID < 1)
  552. {
  553. #region 数据校验 成型线编码唯一
  554. // 成型线编码唯一
  555. string checkLineCodeSql =
  556. "SELECT GL.GroutingLineCode" +
  557. " FROM TP_PM_GroutingLine GL" +
  558. " WHERE GL.AccountID = :AccountID" +
  559. " AND GL.GroutingLineCode = :GroutingLineCode";
  560. OracleParameter[] checkLineCodeParas = new OracleParameter[]
  561. {
  562. new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  563. new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, line["GroutingLineCode"], ParameterDirection.Input),
  564. };
  565. DataTable checkLineCodeData = tran.GetSqlResultToDt(checkLineCodeSql, checkLineCodeParas);
  566. if (checkLineCodeData != null && checkLineCodeData.Rows.Count > 0)
  567. {
  568. sre.Status = Constant.ServiceResultStatus.DataDuplicated;
  569. sre.Message = string.Format("(成型线编码:{0})", line["GroutingLineCode"]);
  570. }
  571. #endregion 数据校验 成型线编码唯一
  572. #region 新建成型线
  573. // 新建成型线
  574. #region SQL
  575. string seqGroutingLineSql =
  576. "select SEQ_PC_GroutingLine_ID.Nextval from dual;";
  577. #region LineSQL
  578. string insertLineSQL =
  579. "insert into tp_pc_groutingline" +
  580. " (groutinglineid," +
  581. " buildingno," +
  582. " floorno," +
  583. " groutinglineno," +
  584. " groutinglinecode," +
  585. " groutinglinename," +
  586. " mouldquantity," +
  587. " gmouldtypeid," +
  588. " userid," +
  589. //" MonitorID," +
  590. " beginuseddate," +
  591. " enduseddate," +
  592. " gmouldstatus," +
  593. " remarks," +
  594. " accountid," +
  595. " valueflag," +
  596. " createtime," +
  597. " createuserid," +
  598. " updatetime," +
  599. " updateuserid," +
  600. " optimestamp)" +
  601. "values" +
  602. " (:groutinglineid," +
  603. " :buildingno," +
  604. " :floorno," +
  605. " :groutinglineno," +
  606. " :groutinglinecode," +
  607. " :groutinglinename," +
  608. " :mouldquantity," +
  609. " :gmouldtypeid," +
  610. " :userid," +
  611. //" :MonitorID," +
  612. " to_date(sysdate, 'yyyy-mm-dd')," +
  613. " null," +
  614. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  615. " :remarks," +
  616. " :accountid," +
  617. " '" + (int)Constant.ValueFlag.Effective + "'," +
  618. " sysdate," +
  619. " :opuserid," +
  620. " sysdate," +
  621. " :opuserid," +
  622. " systimestamp);";
  623. #endregion LineSQL
  624. #region DetailSQL
  625. string insertDetailSQL =
  626. "insert into tp_pc_groutinglinedetail" +
  627. " (groutinglineid," +
  628. " groutingmouldcode," +
  629. " mouldcode," +
  630. " userid," +
  631. " goodsid," +
  632. " groutingcount," +
  633. " gmouldstatus," +
  634. " beginuseddate," +
  635. " enduseddate," +
  636. " remarks," +
  637. " accountid," +
  638. " valueflag," +
  639. " createtime," +
  640. " createuserid," +
  641. " updatetime," +
  642. " updateuserid," +
  643. " optimestamp)" +
  644. "values" +
  645. " (:groutinglineid," +
  646. " :groutingmouldcode," +
  647. " :mouldcode," +
  648. " :userid," +
  649. " :goodsid," +
  650. " 0," +
  651. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  652. " to_date(sysdate, 'yyyy-mm-dd')," +
  653. " null," +
  654. " :remarks," +
  655. " :accountid," +
  656. " '" + (int)Constant.ValueFlag.Effective + "'," +
  657. " sysdate," +
  658. " :opuserid," +
  659. " sysdate," +
  660. " :opuserid," +
  661. " systimestamp);";
  662. #endregion DetailSQL
  663. #endregion SQL
  664. object glSeq = tran.GetSqlResultToObj(seqGroutingLineSql);
  665. OracleParameter[] insertLineParas = new OracleParameter[]
  666. {
  667. new OracleParameter(":groutinglineid", OracleDbType.Int32, glSeq, ParameterDirection.Input),
  668. new OracleParameter(":buildingno", OracleDbType.NVarchar2, line["buildingno"], ParameterDirection.Input),
  669. new OracleParameter(":floorno", OracleDbType.NVarchar2, line["floorno"], ParameterDirection.Input),
  670. new OracleParameter(":groutinglineno", OracleDbType.NVarchar2, line["groutinglineno"], ParameterDirection.Input),
  671. new OracleParameter(":groutinglinecode", OracleDbType.NVarchar2, line["groutinglinecode"], ParameterDirection.Input),
  672. new OracleParameter(":groutinglinename", OracleDbType.NVarchar2, line["groutinglinename"], ParameterDirection.Input),
  673. new OracleParameter(":mouldquantity", OracleDbType.Decimal, line["mouldquantity"], ParameterDirection.Input),
  674. new OracleParameter(":gmouldtypeid", OracleDbType.Int32, line["gmouldtypeid"], ParameterDirection.Input),
  675. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  676. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  677. new OracleParameter(":remarks", OracleDbType.NVarchar2, line["remarks"], ParameterDirection.Input),
  678. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  679. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  680. };
  681. executeResult = tran.ExecuteNonQuery(insertLineSQL, insertLineParas);
  682. if (executeResult <= 0)
  683. {
  684. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  685. return sre;
  686. }
  687. foreach (DataRow row in detail.Rows)
  688. {
  689. if (row.RowState != DataRowState.Added)
  690. {
  691. continue;
  692. }
  693. OracleParameter[] insertDetailParas = new OracleParameter[]
  694. {
  695. new OracleParameter(":groutinglineid", OracleDbType.Int32, glSeq, ParameterDirection.Input),
  696. new OracleParameter(":groutingmouldcode", OracleDbType.NVarchar2, row["groutingmouldcode"], ParameterDirection.Input),
  697. new OracleParameter(":mouldcode", OracleDbType.NVarchar2, row["mouldcode"], ParameterDirection.Input),
  698. new OracleParameter(":userid", OracleDbType.Int32, row["userid"], ParameterDirection.Input),
  699. new OracleParameter(":goodsid", OracleDbType.Int32, row["goodsid"], ParameterDirection.Input),
  700. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  701. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  702. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  703. };
  704. executeResult = tran.ExecuteNonQuery(insertDetailSQL, insertDetailParas);
  705. if (executeResult <= 0)
  706. {
  707. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  708. return sre;
  709. }
  710. }
  711. #endregion 新建成型线
  712. }
  713. // 编辑成型线
  714. else
  715. {
  716. #region 校验时间戳
  717. string checkSql =
  718. "SELECT GroutingLineID" +
  719. " FROM TP_PC_GroutingLine" +
  720. " WHERE GroutingLineID = :GroutingLineID" +
  721. " AND OPTimeStamp = :OPTimeStamp" +
  722. " AND ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  723. OracleParameter[] checkParas = new OracleParameter[]
  724. {
  725. new OracleParameter(":GroutingLineID", OracleDbType.Int32, lineID, ParameterDirection.Input),
  726. new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, line["OPTimeStamp"], ParameterDirection.Input),
  727. };
  728. object checkResult = tran.GetSqlResultToObj(checkSql, checkParas);
  729. if (checkResult == null)
  730. {
  731. sre.Status = Constant.ServiceResultStatus.DataChanged;
  732. return sre;
  733. }
  734. #endregion 校验时间戳
  735. #region 编辑成型线
  736. #region LineSQL
  737. string updateLineSQL =
  738. "update tp_pc_groutingline" +
  739. " set groutinglinename = :groutinglinename," +
  740. " mouldquantity = :mouldquantity," +
  741. " gmouldtypeid = :gmouldtypeid," +
  742. " userid = :userid," +
  743. " remarks = :remarks," +
  744. " updateuserid = :opuserid" +
  745. " where groutinglineid = :groutinglineid;";
  746. #endregion LineSQL
  747. #region DetailSQL
  748. string insertDetailSQL =
  749. "insert into tp_pc_groutinglinedetail" +
  750. " (groutinglineid," +
  751. " groutingmouldcode," +
  752. " mouldcode," +
  753. " userid," +
  754. " goodsid," +
  755. " groutingcount," +
  756. " gmouldstatus," +
  757. " beginuseddate," +
  758. " enduseddate," +
  759. " remarks," +
  760. " accountid," +
  761. " valueflag," +
  762. " createtime," +
  763. " createuserid," +
  764. " updatetime," +
  765. " updateuserid," +
  766. " optimestamp)" +
  767. "values" +
  768. " (:groutinglineid," +
  769. " :groutingmouldcode," +
  770. " :mouldcode," +
  771. " :userid," +
  772. " :goodsid," +
  773. " 0," +
  774. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  775. " to_date(sysdate, 'yyyy-mm-dd')," +
  776. " null," +
  777. " :remarks," +
  778. " :accountid," +
  779. " '" + (int)Constant.ValueFlag.Effective + "'," +
  780. " sysdate," +
  781. " :opuserid," +
  782. " sysdate," +
  783. " :opuserid," +
  784. " systimestamp);";
  785. string updateDetailSQL =
  786. "update tp_pc_groutinglinedetail" +
  787. " set remarks = :remarks, updateuserid = :opuserid" +
  788. " where groutinglinedetailid = :groutinglinedetailid;";
  789. #endregion DetailSQL
  790. OracleParameter[] updateLineParas = new OracleParameter[]
  791. {
  792. new OracleParameter(":groutinglineid", OracleDbType.Int32, lineID, ParameterDirection.Input),
  793. new OracleParameter(":mouldquantity", OracleDbType.Decimal, line["mouldquantity"], ParameterDirection.Input),
  794. new OracleParameter(":gmouldtypeid", OracleDbType.Int32, line["gmouldtypeid"], ParameterDirection.Input),
  795. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  796. new OracleParameter(":remarks", OracleDbType.NVarchar2, line["remarks"], ParameterDirection.Input),
  797. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  798. };
  799. executeResult = tran.ExecuteNonQuery(updateLineSQL, updateLineParas);
  800. if (executeResult <= 0)
  801. {
  802. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  803. return sre;
  804. }
  805. foreach (DataRow row in detail.Rows)
  806. {
  807. if (row.RowState == DataRowState.Added)
  808. {
  809. OracleParameter[] insertDetailParas = new OracleParameter[]
  810. {
  811. new OracleParameter(":groutinglineid", OracleDbType.Int32, lineID, ParameterDirection.Input),
  812. new OracleParameter(":groutingmouldcode", OracleDbType.NVarchar2, row["groutingmouldcode"], ParameterDirection.Input),
  813. new OracleParameter(":mouldcode", OracleDbType.NVarchar2, row["mouldcode"], ParameterDirection.Input),
  814. new OracleParameter(":userid", OracleDbType.Int32, row["userid"], ParameterDirection.Input),
  815. new OracleParameter(":goodsid", OracleDbType.Int32, row["goodsid"], ParameterDirection.Input),
  816. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  817. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  818. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  819. };
  820. executeResult = tran.ExecuteNonQuery(insertDetailSQL, insertDetailParas);
  821. if (executeResult <= 0)
  822. {
  823. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  824. return sre;
  825. }
  826. }
  827. if (row.RowState == DataRowState.Modified)
  828. {
  829. OracleParameter[] updateDetailParas = new OracleParameter[]
  830. {
  831. new OracleParameter(":groutinglinedetailid", OracleDbType.Int32, row["groutinglinedetailid"], ParameterDirection.Input),
  832. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  833. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  834. };
  835. executeResult = tran.ExecuteNonQuery(updateDetailSQL, updateDetailParas);
  836. if (executeResult <= 0)
  837. {
  838. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  839. return sre;
  840. }
  841. }
  842. }
  843. #endregion 编辑成型线
  844. }
  845. tran.Commit();
  846. return sre;
  847. }
  848. catch (Exception ex)
  849. {
  850. if (tran != null &&
  851. tran.ConnState == ConnectionState.Open)
  852. {
  853. tran.Rollback();
  854. }
  855. throw ex;
  856. }
  857. finally
  858. {
  859. if (tran != null &&
  860. tran.ConnState == ConnectionState.Open)
  861. {
  862. tran.Disconnect();
  863. }
  864. }
  865. }
  866. #endregion 成型线
  867. #region 模具管理
  868. #endregion 模具管理
  869. #endregion 成型线管理
  870. #region 班次配置管理
  871. /// <summary>
  872. /// 取得FPC0401画面(班次配置)的查询数据
  873. /// </summary>
  874. /// <param name="user">登录用户信息</param>
  875. /// <param name="se">查询条件</param>
  876. /// <returns>查询结果</returns>
  877. public static ServiceResultEntity GetFPC0401SData(SUserInfo user, FPC0401_SE se)
  878. {
  879. IDBConnection conn = null;
  880. try
  881. {
  882. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  883. StringBuilder sql = new StringBuilder(PCModuleLogic.GetClassesSettingSQL());
  884. List<OracleParameter> parameters = new List<OracleParameter>();
  885. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  886. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  887. if (se != null)
  888. {
  889. // 员工工号
  890. if (!string.IsNullOrEmpty(se.UserCode))
  891. {
  892. sql.Append(" AND INSTR(U.UserCode, :UserCode) > 0");
  893. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, se.UserCode, ParameterDirection.Input));
  894. }
  895. // 开始时间
  896. if (se.DateBegin.HasValue)
  897. {
  898. sql.Append(" AND C.AccountDate >= :DateBegin");
  899. parameters.Add(new OracleParameter(":DateBegin", OracleDbType.Date, se.DateBegin, ParameterDirection.Input));
  900. }
  901. // 结束时间
  902. if (se.DateEnd.HasValue)
  903. {
  904. sql.Append(" AND C.AccountDate <= :DateEnd");
  905. parameters.Add(new OracleParameter(":DateEnd", OracleDbType.Date, se.DateEnd, ParameterDirection.Input));
  906. }
  907. // 员工工号
  908. if (!string.IsNullOrEmpty(se.Remarks))
  909. {
  910. sql.Append(" AND INSTR(C.Remarks, :Remarks) > 0");
  911. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  912. }
  913. }
  914. sql.Append(" ORDER BY C.AccountDate, U.UserCode, C.ClassesSettingID");
  915. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  916. ServiceResultEntity sre = new ServiceResultEntity();
  917. if (data == null || data.Rows.Count == 0)
  918. {
  919. //sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  920. return sre;
  921. }
  922. sre.Data = new DataSet();
  923. sre.Data.Tables.Add(data);
  924. OracleParameter[] paras = new OracleParameter[]
  925. {
  926. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, data.Rows[0]["ClassesSettingID"], ParameterDirection.Input),
  927. };
  928. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetClassesDetailSQL(), paras);
  929. if (dData != null)
  930. {
  931. sre.Data.Tables.Add(dData);
  932. }
  933. return sre;
  934. }
  935. catch (Exception ex)
  936. {
  937. throw ex;
  938. }
  939. finally
  940. {
  941. if (conn != null &&
  942. conn.ConnState == ConnectionState.Open)
  943. {
  944. conn.Close();
  945. }
  946. }
  947. }
  948. /// <summary>
  949. /// 取得FPC0401画面(班次配置)的查询数据
  950. /// </summary>
  951. /// <param name="user">登录用户信息</param>
  952. /// <param name="ids">班次配置ID(多个用【,】隔开)</param>
  953. /// <returns>查询结果</returns>
  954. public static ServiceResultEntity GetFPC0401SData(SUserInfo user, string ids)
  955. {
  956. IDBConnection conn = null;
  957. try
  958. {
  959. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  960. StringBuilder sql = new StringBuilder(PCModuleLogic.GetClassesSettingSQL());
  961. List<OracleParameter> parameters = new List<OracleParameter>();
  962. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  963. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  964. //if (string.IsNullOrWhiteSpace(ids))
  965. {
  966. ids = "," + ids + ",";
  967. sql.Append(" AND INSTR(:ClassesSettingIDs, ',' || C.ClassesSettingID || ',') > 0");
  968. parameters.Add(new OracleParameter(":ClassesSettingIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input));
  969. }
  970. sql.Append(" ORDER BY C.AccountDate, U.UserCode, C.ClassesSettingID");
  971. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  972. ServiceResultEntity sre = new ServiceResultEntity();
  973. if (data == null || data.Rows.Count == 0)
  974. {
  975. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  976. return sre;
  977. }
  978. sre.Data = new DataSet();
  979. sre.Data.Tables.Add(data);
  980. OracleParameter[] paras = new OracleParameter[]
  981. {
  982. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, data.Rows[0]["ClassesSettingID"], ParameterDirection.Input),
  983. };
  984. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetClassesDetailSQL(), paras);
  985. if (dData != null)
  986. {
  987. sre.Data.Tables.Add(data);
  988. }
  989. return sre;
  990. }
  991. catch (Exception ex)
  992. {
  993. throw ex;
  994. }
  995. finally
  996. {
  997. if (conn != null &&
  998. conn.ConnState == ConnectionState.Open)
  999. {
  1000. conn.Close();
  1001. }
  1002. }
  1003. }
  1004. /// <summary>
  1005. /// 取得FPC0401画面(班次配置明细)的查询数据
  1006. /// </summary>
  1007. /// <param name="user">登录用户信息</param>
  1008. /// <param name="id">班次配置ID</param>
  1009. /// <returns>班次配置明细</returns>
  1010. public static ServiceResultEntity GetFPC0401SDData(SUserInfo user, int id)
  1011. {
  1012. IDBConnection conn = null;
  1013. try
  1014. {
  1015. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1016. OracleParameter[] paras = new OracleParameter[]
  1017. {
  1018. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, id, ParameterDirection.Input),
  1019. };
  1020. ServiceResultEntity sre = new ServiceResultEntity();
  1021. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetClassesDetailSQL(), paras);
  1022. return sre;
  1023. }
  1024. catch (Exception ex)
  1025. {
  1026. throw ex;
  1027. }
  1028. finally
  1029. {
  1030. if (conn != null &&
  1031. conn.ConnState == ConnectionState.Open)
  1032. {
  1033. conn.Close();
  1034. }
  1035. }
  1036. }
  1037. /// <summary>
  1038. /// 取得FPC0402画面(班次配置)的查询数据
  1039. /// </summary>
  1040. /// <param name="user">登录用户信息</param>
  1041. /// <param name="id">班次配置ID</param>
  1042. /// <returns>班次配置明细</returns>
  1043. public static ServiceResultEntity GetFPC0402SData(SUserInfo user, int id)
  1044. {
  1045. IDBConnection conn = null;
  1046. try
  1047. {
  1048. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1049. OracleParameter[] paras = new OracleParameter[]
  1050. {
  1051. new OracleParameter(":userid", OracleDbType.Int32, id, ParameterDirection.Input),
  1052. };
  1053. ServiceResultEntity sre = new ServiceResultEntity();
  1054. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetClassUserStaffSQL(), paras);
  1055. return sre;
  1056. }
  1057. catch (Exception ex)
  1058. {
  1059. throw ex;
  1060. }
  1061. finally
  1062. {
  1063. if (conn != null &&
  1064. conn.ConnState == ConnectionState.Open)
  1065. {
  1066. conn.Close();
  1067. }
  1068. }
  1069. }
  1070. /// <summary>
  1071. /// 取得FPC0401画面,班次配置查询SQL
  1072. /// </summary>
  1073. /// <returns>班次配置查询SQL</returns>
  1074. private static string GetClassesSettingSQL()
  1075. {
  1076. string sqlString =
  1077. "SELECT C.ClassesSettingID, " +
  1078. " C.AccountDate, " +
  1079. " U.UserID," +
  1080. " U.UserCode, " +
  1081. " U.UserName, " +
  1082. " O.OrganizationCode, " +
  1083. " O.OrganizationName, " +
  1084. " C.Remarks, " +
  1085. " C.ValueFlag, " +
  1086. " C.CreateTime, " +
  1087. " CU.UserName AS CreateUserName " +
  1088. " FROM TP_PC_ClassesSetting C " +
  1089. " INNER JOIN TP_MST_User U " +
  1090. " ON U.UserID = C.UserID " +
  1091. " INNER JOIN TP_MST_Organization O " +
  1092. " ON O.OrganizationID = C.OrganizationID " +
  1093. " INNER JOIN TP_MST_User CU " +
  1094. " ON CU.UserID = C.CreateUserID " +
  1095. " WHERE C.AccountID = :AccountID " +
  1096. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1097. // 工号操作权限
  1098. " AND EXISTS (SELECT UP.PurviewID" +
  1099. " FROM TP_MST_UserPurview UP" +
  1100. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1101. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1102. " AND UP.UserId = :UPUserId)";
  1103. return sqlString;
  1104. }
  1105. /// <summary>
  1106. /// 取得FPC0401画面,班次配置明细查询SQL
  1107. /// </summary>
  1108. /// <returns>班次配置明细查询SQL</returns>
  1109. private static string GetClassesDetailSQL()
  1110. {
  1111. string sqlString =
  1112. "SELECT CD.ClassesDetailID, " +
  1113. " CD.userid," +
  1114. " CD.usercode," +
  1115. " UJ.JobsCode AS UJobsCode, " +
  1116. " UJ.JobsName AS UJobsName, " +
  1117. " UJ.JobsId AS UJobsId, " +
  1118. " CD.StaffID," +
  1119. " S.StaffCode, " +
  1120. " S.StaffName, " +
  1121. " CD.SOrganizationID," +
  1122. " SO.OrganizationCode AS SOrganizationCode, " +
  1123. " SO.OrganizationName AS SOrganizationName, " +
  1124. " CD.SJobsID," +
  1125. " CD.SJobsID as jobs," +
  1126. " SJ.JobsCode AS SJobsCode, " +
  1127. " SJ.JobsName AS SJobsName, " +
  1128. " CD.StaffStatus," +
  1129. " SSS.StaffStatusName, " +
  1130. " CD.Remarks " +
  1131. " FROM TP_PC_ClassesDetail CD " +
  1132. " INNER JOIN TP_MST_Jobs UJ " +
  1133. " ON UJ.JobsID = CD.UJobsID " +
  1134. " INNER JOIN TP_MST_Jobs SJ " +
  1135. " ON SJ.JobsID = CD.SJobsID " +
  1136. " INNER JOIN TP_HR_Staff S " +
  1137. " ON S.StaffID = CD.StaffID " +
  1138. " INNER JOIN TP_MST_Organization SO " +
  1139. " ON SO.OrganizationID = CD.SOrganizationID " +
  1140. " INNER JOIN TP_SYS_StaffStatus SSS " +
  1141. " ON SSS.StaffStatusID = CD.StaffStatus " +
  1142. " WHERE CD.ClassesSettingID = :ClassesSettingID" +
  1143. " ORDER BY S.StaffCode";
  1144. return sqlString;
  1145. }
  1146. /// <summary>
  1147. /// 取得FPC0402画面,工号对应的员工信息SQL
  1148. /// </summary>
  1149. /// <returns></returns>
  1150. private static string GetClassUserStaffSQL()
  1151. {
  1152. string sqlString = " " +
  1153. "SELECT usf.userstaffid AS infoid, " +
  1154. " usf.UserID, " +
  1155. " usr.UserCode, " +
  1156. " usf.ujobsid AS UJobsID, " +
  1157. " usf.StaffID, " +
  1158. " usf.optimestamp, " +
  1159. " j.jobsname AS UJobsName, " +
  1160. " j.jobscode AS UJobsCode, " +
  1161. " s.StaffCode, " +
  1162. " s.StaffName, " +
  1163. " s.jobs, " +
  1164. " sj.jobsname as SJobsName, " +
  1165. " sj.jobscode as SJobsCode , " +
  1166. " s.organizationid as SOrganizationid, " +
  1167. " og.organizationcode as SOrganizationCode, " +
  1168. " og.organizationname as SOrganizationName, " +
  1169. " og.organizationfullname as SOrganizationFullName, " +
  1170. " s.staffstatus, " +
  1171. " ss.staffstatusname, " +
  1172. " s.remarks " +
  1173. " FROM tp_mst_userstaff usf " +
  1174. " inner join tp_mst_user usr on usf.userid=usr.userid" +
  1175. " INNER JOIN tp_mst_jobs j ON usf.ujobsid = j.jobsid " +
  1176. " INNER JOIN tp_hr_staff s ON usf.staffid = s.staffid " +
  1177. " INNER JOIN tp_mst_jobs sj ON s.jobs = sj.jobsid " +
  1178. " inner join TP_MST_ORGANIZATION og on s.organizationid=og.organizationid " +
  1179. " inner join tp_sys_staffstatus ss on ss.staffstatusid=s.staffstatus " +
  1180. " WHERE usf.userid = :userid " +
  1181. " order by sj.jobscode";
  1182. return sqlString;
  1183. }
  1184. /// <summary>
  1185. /// 保存班次配置信息
  1186. /// </summary>
  1187. /// <param name="sUserInfo"></param>
  1188. /// <param name="se">班次配置实体</param>
  1189. /// <param name="editStatus">配置情况,0--新增,1--更新</param>
  1190. /// <param name="dtClassesSettingDetail"></param>
  1191. /// <returns></returns>
  1192. public static ServiceResultEntity SetFPC0402SData(SUserInfo sUserInfo, FPC0402_SE se, int editStatus, DataTable dtClassesSettingDetail)
  1193. {
  1194. IDBTransaction tran = null;
  1195. try
  1196. {
  1197. ServiceResultEntity sre = new ServiceResultEntity();
  1198. //if (dsClassesSettingDetailInfo == null ||
  1199. // dsClassesSettingDetailInfo.Tables.Count != 1 ||
  1200. // dsClassesSettingDetailInfo.Tables[0].Rows.Count < 1)
  1201. //{
  1202. // sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1203. // return sre;
  1204. //}
  1205. //DataTable dtClassesSettingDetail = dsClassesSettingDetailInfo.Tables[0];
  1206. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1207. int executeResult = 0;
  1208. if (editStatus == 0)//新增
  1209. {
  1210. // 查询新插入的配置数据ID
  1211. string sqlText = "SELECT SEQ_PC_ClassesSetting_ID.NextVAL FROM dual";
  1212. int classesSettingID = int.Parse(tran.GetSqlResultToStr(sqlText));
  1213. // 插入班次配置表
  1214. string sqlInsMainString = " INSERT INTO TP_PC_ClassesSetting "
  1215. + " (ClassesSettingID,AccountDate,UserID,UserCode, "
  1216. + " Remarks,AccountID,CreateTime,CreateUserID,UpdateUserID) "
  1217. + " VALUES (:ClassesSettingID,:AccountDate,:userID,:userCode, "
  1218. + " :remarks,:accountID,sysdate,:createUserID,:updateUserID)";
  1219. OracleParameter[] paramMain = new OracleParameter[]
  1220. {
  1221. new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1222. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1223. new OracleParameter(":userID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1224. new OracleParameter(":userCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1225. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1226. new OracleParameter(":remarks",OracleDbType.Varchar2,se.ClassRemarks,ParameterDirection.Input),
  1227. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1228. new OracleParameter(":createUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1229. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1230. };
  1231. executeResult = tran.ExecuteNonQuery(sqlInsMainString, paramMain);
  1232. //明细
  1233. foreach (DataRow drFor in dtClassesSettingDetail.Rows)
  1234. {
  1235. if (drFor["StaffID"] == DBNull.Value)
  1236. {
  1237. continue;
  1238. }
  1239. string sqlInsStr = "insert into TP_PC_ClassesDetail(ClassesSettingID,AccountDate,userid,usercode,staffid," +
  1240. "staffstatus,remarks,accountid,valueflag,createtime,createuserid,updatetime,updateuserid," +
  1241. "ujobsid,sjobsid,uorganizationid,sorganizationid)" +
  1242. "values(:settingID,:AccountDate,:UserID,:UserCode,:StaffID," +
  1243. ":StaffStatus,:StaffRemarks,:AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID," +
  1244. ":UserJobsID,:StaffJobsID,:UserOrganizationID,:StaffOrganizationID)";
  1245. OracleParameter[] oracleParameter = new OracleParameter[]
  1246. {
  1247. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1248. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1249. new OracleParameter(":UserID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1250. new OracleParameter(":UserCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1251. new OracleParameter(":StaffID",OracleDbType.Int32,drFor["staffid"].ToString(),ParameterDirection.Input),
  1252. new OracleParameter(":StaffStatus",OracleDbType.Int32,drFor["staffstatus"].ToString(),ParameterDirection.Input),
  1253. new OracleParameter(":StaffRemarks",OracleDbType.Varchar2,drFor["remarks"].ToString(),ParameterDirection.Input),
  1254. new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1255. new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1256. new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1257. new OracleParameter(":UserJobsID",OracleDbType.Int32,drFor["ujobsid"].ToString(),ParameterDirection.Input),
  1258. new OracleParameter(":StaffJobsID",OracleDbType.Int32,drFor["jobs"].ToString(),ParameterDirection.Input),
  1259. new OracleParameter(":UserOrganizationID",OracleDbType.Int32,se.UserOrganizationID,ParameterDirection.Input),
  1260. new OracleParameter(":StaffOrganizationID",OracleDbType.Int32,drFor["sorganizationid"].ToString(),ParameterDirection.Input)
  1261. };
  1262. executeResult = tran.ExecuteNonQuery(sqlInsStr, oracleParameter);
  1263. }
  1264. }
  1265. else
  1266. {
  1267. //更新主表
  1268. string sqlUpMainString = "update TP_PC_ClassesSetting set Remarks=:remarks where CLASSESSETTINGID=:classSettingID";
  1269. OracleParameter[] paramMain = new OracleParameter[]
  1270. {
  1271. new OracleParameter(":remarks",OracleDbType.Varchar2,se.ClassRemarks,ParameterDirection.Input),
  1272. new OracleParameter(":classSettingID",OracleDbType.Int32,se.ClassSettingID,ParameterDirection.Input)
  1273. };
  1274. executeResult = tran.ExecuteNonQuery(sqlUpMainString, paramMain);
  1275. int classesSettingID = se.ClassSettingID;
  1276. //明细
  1277. foreach (DataRow drFor in dtClassesSettingDetail.Rows)
  1278. {
  1279. if (drFor.RowState == DataRowState.Added)
  1280. {
  1281. if (drFor["StaffID"] == DBNull.Value)
  1282. {
  1283. continue;
  1284. }
  1285. string sqlInsStr = "insert into TP_PC_ClassesDetail(ClassesSettingID,AccountDate,userid,usercode,staffid," +
  1286. "staffstatus,remarks,accountid,valueflag,createtime,createuserid,updatetime,updateuserid," +
  1287. "ujobsid,sjobsid,uorganizationid,sorganizationid)" +
  1288. "values(:settingID,:AccountDate,:UserID,:UserCode,:StaffID," +
  1289. ":StaffStatus,:StaffRemarks,:AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID," +
  1290. ":UserJobsID,:StaffJobsID,:UserOrganizationID,:StaffOrganizationID)";
  1291. OracleParameter[] oracleParameter = new OracleParameter[]
  1292. {
  1293. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1294. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1295. new OracleParameter(":UserID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1296. new OracleParameter(":UserCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1297. new OracleParameter(":StaffID",OracleDbType.Int32,drFor["staffid"].ToString(),ParameterDirection.Input),
  1298. new OracleParameter(":StaffStatus",OracleDbType.Int32,drFor["staffstatus"].ToString(),ParameterDirection.Input),
  1299. new OracleParameter(":StaffRemarks",OracleDbType.Varchar2,drFor["remarks"].ToString(),ParameterDirection.Input),
  1300. new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1301. new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1302. new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1303. new OracleParameter(":UserJobsID",OracleDbType.Int32,drFor["ujobsid"].ToString(),ParameterDirection.Input),
  1304. new OracleParameter(":StaffJobsID",OracleDbType.Int32,drFor["jobs"].ToString(),ParameterDirection.Input),
  1305. new OracleParameter(":UserOrganizationID",OracleDbType.Int32,se.UserOrganizationID,ParameterDirection.Input),
  1306. new OracleParameter(":StaffOrganizationID",OracleDbType.Int32,drFor["sorganizationid"].ToString(),ParameterDirection.Input)
  1307. };
  1308. executeResult = tran.ExecuteNonQuery(sqlInsStr, oracleParameter);
  1309. }
  1310. else if (drFor.RowState == DataRowState.Deleted)
  1311. {
  1312. string sqlstring = @"Delete from TP_PC_ClassesDetail Where CLASSESDETAILID=:ClassesDetailID";
  1313. OracleParameter[] parmeters = new OracleParameter[]
  1314. {
  1315. new OracleParameter(":ClassesDetailID",drFor["ClassesDetailID",DataRowVersion.Original].ToString()),
  1316. };
  1317. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1318. }
  1319. else if (drFor.RowState == DataRowState.Modified)
  1320. {
  1321. string sqlstring = @"update TP_PC_ClassesDetail
  1322. set STAFFID=:StaffID,
  1323. STAFFSTATUS=:StaffStatus,
  1324. REMARKS=:Remarks,
  1325. UPDATETIME=sysdate,
  1326. UPDATEUSERID=:UserID,
  1327. SJOBSID=:SJobID,
  1328. SORGANIZATIONID=:SorganizationID
  1329. where CLASSESDETAILID=:ClassesDetailID ";
  1330. OracleParameter[] parmeters = new OracleParameter[]
  1331. {
  1332. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1333. new OracleParameter(":StaffStatus",drFor["StaffStatus"].ToString()),
  1334. new OracleParameter(":Remarks",drFor["Remarks"].ToString()),
  1335. new OracleParameter(":UserID",sUserInfo.UserID),
  1336. new OracleParameter(":SJobID",drFor["Jobs"].ToString()),
  1337. new OracleParameter(":SorganizationID",drFor["SorganizationID"].ToString()),
  1338. new OracleParameter(":ClassesDetailID",drFor["ClassesDetailID"].ToString()),
  1339. };
  1340. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1341. }
  1342. }
  1343. }
  1344. tran.Commit();
  1345. return sre;
  1346. }
  1347. catch (Exception ex)
  1348. {
  1349. if (tran != null &&
  1350. tran.ConnState == ConnectionState.Open)
  1351. {
  1352. tran.Rollback();
  1353. }
  1354. throw ex;
  1355. }
  1356. finally
  1357. {
  1358. if (tran != null &&
  1359. tran.ConnState == ConnectionState.Open)
  1360. {
  1361. tran.Disconnect();
  1362. }
  1363. }
  1364. }
  1365. #endregion 班次配置管理
  1366. #region 人员关联
  1367. /// <summary>
  1368. /// 取得FPC0601画面(人员关联)的查询数据
  1369. /// </summary>
  1370. /// <param name="user">登录用户信息</param>
  1371. /// <param name="se">查询条件</param>
  1372. /// <returns>查询结果</returns>
  1373. public static ServiceResultEntity GetFPC0601SData(SUserInfo user, FPC0601_SE se)
  1374. {
  1375. IDBConnection conn = null;
  1376. try
  1377. {
  1378. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1379. StringBuilder sql = new StringBuilder(PCModuleLogic.GetFPC0601UserSQL());
  1380. List<OracleParameter> parameters = new List<OracleParameter>();
  1381. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  1382. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  1383. if (se != null)
  1384. {
  1385. // 员工工号
  1386. if (!string.IsNullOrEmpty(se.UserCode))
  1387. {
  1388. sql.Append(" AND INSTR(U.UserCode, :UserCode) > 0");
  1389. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, se.UserCode, ParameterDirection.Input));
  1390. }
  1391. // 员工工号备注
  1392. if (!string.IsNullOrEmpty(se.Remarks))
  1393. {
  1394. sql.Append(" AND INSTR(U.Remarks, :Remarks) > 0");
  1395. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  1396. }
  1397. }
  1398. sql.Append(" ORDER BY U.UserCode");
  1399. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  1400. ServiceResultEntity sre = new ServiceResultEntity();
  1401. if (data == null || data.Rows.Count == 0)
  1402. {
  1403. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  1404. return sre;
  1405. }
  1406. sre.Data = new DataSet();
  1407. sre.Data.Tables.Add(data);
  1408. OracleParameter[] paras = new OracleParameter[]
  1409. {
  1410. new OracleParameter(":userid", OracleDbType.Int32, data.Rows[0]["userid"], ParameterDirection.Input),
  1411. };
  1412. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetFPC0601UserStaffSQL(), paras);
  1413. if (dData != null)
  1414. {
  1415. sre.Data.Tables.Add(dData);
  1416. }
  1417. return sre;
  1418. }
  1419. catch (Exception ex)
  1420. {
  1421. throw ex;
  1422. }
  1423. finally
  1424. {
  1425. if (conn != null &&
  1426. conn.ConnState == ConnectionState.Open)
  1427. {
  1428. conn.Close();
  1429. }
  1430. }
  1431. }
  1432. /// <summary>
  1433. /// 取得FPC0601画面(人员关联)的查询数据
  1434. /// </summary>
  1435. /// <param name="user">登录用户信息</param>
  1436. /// <param name="id">工号人员关联ID</param>
  1437. /// <returns>工号人员关联明细</returns>
  1438. public static ServiceResultEntity GetFPC0601SNData(SUserInfo user, int userid)
  1439. {
  1440. IDBConnection conn = null;
  1441. try
  1442. {
  1443. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1444. OracleParameter[] paras = new OracleParameter[]
  1445. {
  1446. new OracleParameter(":userid", OracleDbType.Int32, userid, ParameterDirection.Input),
  1447. };
  1448. ServiceResultEntity sre = new ServiceResultEntity();
  1449. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetFPC0601UserStaffSQL(), paras);
  1450. return sre;
  1451. }
  1452. catch (Exception ex)
  1453. {
  1454. throw ex;
  1455. }
  1456. finally
  1457. {
  1458. if (conn != null &&
  1459. conn.ConnState == ConnectionState.Open)
  1460. {
  1461. conn.Close();
  1462. }
  1463. }
  1464. }
  1465. /// <summary>
  1466. /// 取得FPC0601画面,工号查询SQL
  1467. /// </summary>
  1468. /// <returns>工号查询SQL</returns>
  1469. private static string GetFPC0601UserSQL()
  1470. {
  1471. string sqlString =
  1472. "SELECT 0 AS sel, " +
  1473. " U.userid, " +
  1474. " U.usercode, " +
  1475. " U.limitmac, " +
  1476. " U.username, " +
  1477. " U.valueflag, " +
  1478. " U.valueflag AS checkvalueflag, " +
  1479. " U.organizationid, " +
  1480. " tp_mst_organization.organizationname, " +
  1481. " tp_mst_organization.organizationfullname, " +
  1482. " tp_mst_userlogin.islocked, " +
  1483. " U.remarks " +
  1484. " FROM tp_mst_user u LEFT JOIN tp_mst_organization ON u.organizationid = tp_mst_organization.organizationid " +
  1485. " INNER JOIN tp_mst_userlogin ON u.userid = tp_mst_userlogin.userid " +
  1486. " WHERE u.accountid = :AccountID " +
  1487. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1488. // 工号操作权限
  1489. " AND EXISTS (SELECT UP.PurviewID" +
  1490. " FROM TP_MST_UserPurview UP" +
  1491. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1492. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1493. " AND UP.UserId = :UPUserId)";
  1494. return sqlString;
  1495. }
  1496. /// <summary>
  1497. /// 取得FPC0601画面,关联人员查询SQL
  1498. /// </summary>
  1499. /// <returns>关联人员查询SQL</returns>
  1500. private static string GetFPC0601UserStaffSQL()
  1501. {
  1502. string sqlString = " " +
  1503. "SELECT usf.userstaffid AS infoid, " +
  1504. " usf.UserID, " +
  1505. " usf.ujobsid AS UserJobsID, " +
  1506. " usf.StaffID, " +
  1507. " usf.optimestamp, " +
  1508. " j.jobsname AS UserJobsName, " +
  1509. " j.jobscode AS UserJobsCode, " +
  1510. " s.StaffCode, " +
  1511. " s.StaffName, " +
  1512. " sj.jobsname, " +
  1513. " sj.jobscode , " +
  1514. " s.organizationid, " +
  1515. " og.organizationcode, " +
  1516. " og.organizationname, " +
  1517. " og.organizationfullname, " +
  1518. " s.staffstatus, " +
  1519. " ss.staffstatusname, " +
  1520. " s.remarks " +
  1521. " FROM tp_mst_userstaff usf INNER JOIN tp_mst_jobs j ON usf.ujobsid = j.jobsid " +
  1522. " INNER JOIN tp_hr_staff s ON usf.staffid = s.staffid " +
  1523. " INNER JOIN tp_mst_jobs sj ON s.jobs = sj.jobsid " +
  1524. " inner join TP_MST_ORGANIZATION og on s.organizationid=og.organizationid " +
  1525. " inner join tp_sys_staffstatus ss on ss.staffstatusid=s.staffstatus " +
  1526. " WHERE userid = :userid " +
  1527. " order by sj.jobscode";
  1528. return sqlString;
  1529. }
  1530. /// <summary>
  1531. /// 保存FPC0602画面(班次配置管理)的数据
  1532. /// </summary>
  1533. /// <param name="userInfo"></param>
  1534. /// <param name="UserId"></param>
  1535. /// <param name="StaffTable"></param>
  1536. /// <returns></returns>
  1537. public static ServiceResultEntity SetFPC0602Data(SUserInfo userInfo, int UserId, DataSet StaffInfo)
  1538. {
  1539. IDBTransaction tran = null;
  1540. try
  1541. {
  1542. ServiceResultEntity sre = new ServiceResultEntity();
  1543. if (StaffInfo == null ||
  1544. StaffInfo.Tables.Count != 1 ||
  1545. StaffInfo.Tables[0].Rows.Count < 1)
  1546. {
  1547. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1548. return sre;
  1549. }
  1550. DataTable StaffTable = StaffInfo.Tables[0];
  1551. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1552. int executeResult = 0;
  1553. foreach (DataRow drFor in StaffTable.Rows)
  1554. {
  1555. if (drFor.RowState == DataRowState.Added)
  1556. {
  1557. if (drFor["StaffID"] == DBNull.Value)
  1558. {
  1559. continue;
  1560. }
  1561. string sqlstring = @"Insert into TP_MST_UserStaff(UserID,UJobsID,StaffID,AccountID,CreateUserID,UpdateUserID)
  1562. Values(:UserID,:UJobsID,:StaffID,:AccountID,:CreateUserID,:UpdateUserID)";
  1563. OracleParameter[] parmeters = new OracleParameter[]
  1564. {
  1565. new OracleParameter(":UserID",UserId),
  1566. new OracleParameter(":UJobsID",drFor["UserJobsID"].ToString()),
  1567. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1568. new OracleParameter(":AccountID",userInfo.AccountID),
  1569. new OracleParameter(":CreateUserID",userInfo.UserID),
  1570. new OracleParameter(":UpdateUserID",userInfo.UserID),
  1571. };
  1572. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1573. }
  1574. else if (drFor.RowState == DataRowState.Deleted)
  1575. {
  1576. string sqlstring = @"Delete from TP_MST_UserStaff Where UserStaffID=:UserStaffID";
  1577. OracleParameter[] parmeters = new OracleParameter[]
  1578. {
  1579. new OracleParameter(":UserStaffID",drFor["InfoID",DataRowVersion.Original].ToString()),
  1580. };
  1581. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1582. }
  1583. else if (drFor.RowState == DataRowState.Modified)
  1584. {
  1585. string sqlstring = @"Update TP_MST_UserStaff
  1586. Set UJobsID=:UJobsID,
  1587. StaffID=:StaffID,
  1588. UpdateUserID=:UpdateUserID
  1589. Where UserStaffID=:UserStaffID";
  1590. OracleParameter[] parmeters = new OracleParameter[]
  1591. {
  1592. new OracleParameter(":UJobsID",drFor["UserJobsId"].ToString()),
  1593. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1594. new OracleParameter(":UpdateUserID",userInfo.UserID),
  1595. new OracleParameter(":UserStaffID",drFor["InfoID"].ToString())
  1596. };
  1597. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1598. }
  1599. }
  1600. tran.Commit();
  1601. return sre;
  1602. }
  1603. catch (Exception ex)
  1604. {
  1605. if (tran != null &&
  1606. tran.ConnState == ConnectionState.Open)
  1607. {
  1608. tran.Rollback();
  1609. }
  1610. throw ex;
  1611. }
  1612. finally
  1613. {
  1614. if (tran != null &&
  1615. tran.ConnState == ConnectionState.Open)
  1616. {
  1617. tran.Disconnect();
  1618. }
  1619. }
  1620. }
  1621. /// <summary>
  1622. /// 根据工号ID获取该工号的工种关联
  1623. /// </summary>
  1624. /// <param name="UserId">用户ID</param>
  1625. /// <returns>DataSet</returns>
  1626. public static ServiceResultEntity GetJobByUserId(int UserId)
  1627. {
  1628. IDBConnection conn = null;
  1629. try
  1630. {
  1631. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1632. StringBuilder sbSql = new StringBuilder();
  1633. sbSql.Append(@"Select JobsID as UserJobsID,JobsCode as UserJobsCode,JobsName as UserJobsName,JobsCode||'-'|| JobsName as UserJobsCodeName
  1634. from TP_MST_Jobs where JobsID in
  1635. (Select JobsID From TP_MST_UserJobs where UserID=:UserID) ");
  1636. OracleParameter[] paras = new OracleParameter[]
  1637. {
  1638. new OracleParameter(":UserID", OracleDbType.Int32, UserId, ParameterDirection.Input),
  1639. };
  1640. ServiceResultEntity sre = new ServiceResultEntity();
  1641. sre.Data = conn.GetSqlResultToDs(sbSql.ToString(), paras);
  1642. return sre;
  1643. }
  1644. catch (Exception ex)
  1645. {
  1646. throw ex;
  1647. }
  1648. finally
  1649. {
  1650. if (conn != null &&
  1651. conn.ConnState == ConnectionState.Open)
  1652. {
  1653. conn.Close();
  1654. }
  1655. }
  1656. }
  1657. /// <summary>
  1658. /// 根据工号ID获取该工号的基础信息
  1659. /// </summary>
  1660. /// <param name="UserId">用户ID</param>
  1661. /// <returns>DataSet</returns>
  1662. public static ServiceResultEntity GetUserInfo(SUserInfo user, int UserId)
  1663. {
  1664. IDBConnection conn = null;
  1665. try
  1666. {
  1667. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1668. StringBuilder sbSql = new StringBuilder(GetUserInfoSQL());
  1669. // List<OracleParameter> parameters = new List<OracleParameter>();
  1670. OracleParameter[] paras = new OracleParameter[]
  1671. {
  1672. new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  1673. new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  1674. new OracleParameter(":UserID", OracleDbType.Int32,UserId, ParameterDirection.Input)
  1675. };
  1676. ServiceResultEntity sre = new ServiceResultEntity();
  1677. sre.Data = conn.GetSqlResultToDs(sbSql.ToString(), paras);
  1678. return sre;
  1679. }
  1680. catch (Exception ex)
  1681. {
  1682. throw ex;
  1683. }
  1684. finally
  1685. {
  1686. if (conn != null &&
  1687. conn.ConnState == ConnectionState.Open)
  1688. {
  1689. conn.Close();
  1690. }
  1691. }
  1692. }
  1693. /// <summary>
  1694. /// 取得FPC0601画面,工号查询SQL
  1695. /// </summary>
  1696. /// <returns>工号查询SQL</returns>
  1697. private static string GetUserInfoSQL()
  1698. {
  1699. string sqlString =
  1700. "SELECT 0 AS sel, " +
  1701. " U.userid, " +
  1702. " U.usercode, " +
  1703. " U.limitmac, " +
  1704. " U.username, " +
  1705. " U.valueflag, " +
  1706. " U.valueflag AS checkvalueflag, " +
  1707. " U.organizationid, " +
  1708. " tp_mst_organization.organizationname, " +
  1709. " tp_mst_organization.organizationfullname, " +
  1710. " tp_mst_userlogin.islocked, " +
  1711. " U.remarks " +
  1712. " FROM tp_mst_user u LEFT JOIN tp_mst_organization ON u.organizationid = tp_mst_organization.organizationid " +
  1713. " INNER JOIN tp_mst_userlogin ON u.userid = tp_mst_userlogin.userid " +
  1714. " WHERE u.accountid = :AccountID " +
  1715. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1716. " and u.userid=:UserID " +
  1717. // 工号操作权限
  1718. " AND EXISTS (SELECT UP.PurviewID" +
  1719. " FROM TP_MST_UserPurview UP" +
  1720. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1721. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1722. " AND UP.UserId = :UPUserId)";
  1723. return sqlString;
  1724. }
  1725. #endregion 人员关联
  1726. #region 模具档案
  1727. /// <summary>
  1728. /// 获取模具档案一览画面期初数据
  1729. /// </summary>
  1730. /// <param name="sUserInfo"></param>
  1731. /// <returns></returns>
  1732. public static ServiceResultEntity GetFPC1001LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  1733. {
  1734. ServiceResultEntity sre = new ServiceResultEntity();
  1735. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1736. try
  1737. {
  1738. con.Open();
  1739. // 模具类型
  1740. string sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  1741. " FROM TP_MST_DataDictionary dd\n" +
  1742. " WHERE dd.DictionaryType = 'GMM002'\n" +
  1743. " AND dd.valueflag = '1'\n" +
  1744. " AND dd.accountid = :accountid\n" +
  1745. " ORDER BY dd.displayno";
  1746. OracleParameter[] parameters = new OracleParameter[]
  1747. {
  1748. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1749. };
  1750. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1751. sre.Data.Tables[0].TableName = "MouldType";
  1752. // 材料供应商
  1753. sqlString = "SELECT mms.supplierid, mms.suppliername, mms.displayno\n" +
  1754. " FROM TP_MST_MouldMaterialSuppliers mms\n" +
  1755. " WHERE mms.valueflag = '1'\n" +
  1756. " AND mms.accountid = :accountid\n" +
  1757. " ORDER BY mms.displayno";
  1758. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  1759. sre.Data.Tables[1].TableName = "Suppliers";
  1760. sqlString =
  1761. "SELECT ms.mouldstatusid, ms.mouldstatusname, ms.displayno\n" +
  1762. " FROM TP_SYS_MouldStatus ms\n" +
  1763. " WHERE ms.mouldstatusid > 0\n" +
  1764. " ORDER BY ms.displayno";
  1765. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString));
  1766. sre.Data.Tables[2].TableName = "MouldStatus";
  1767. return sre;
  1768. }
  1769. catch (Exception ex)
  1770. {
  1771. throw ex;
  1772. }
  1773. finally
  1774. {
  1775. if (con.ConnState == ConnectionState.Open)
  1776. {
  1777. con.Close();
  1778. }
  1779. }
  1780. }
  1781. /// <summary>
  1782. /// 获取模具档案一览查询数据
  1783. /// </summary>
  1784. /// <param name="sUserInfo"></param>
  1785. /// <returns></returns>
  1786. public static ServiceResultEntity GetFPC1001QueryData(SUserInfo sUserInfo, ClientRequestEntity cre)
  1787. {
  1788. ServiceResultEntity sre = new ServiceResultEntity();
  1789. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1790. try
  1791. {
  1792. con.Open();
  1793. string sqlString =
  1794. "SELECT 0 Sel, m.MouldID\n" +
  1795. " ,m.MouldCode\n" +
  1796. " ,m.MouldBarcode\n" +
  1797. " ,mtype.dictionaryvalue MouldTypeName\n" +
  1798. " ,mms.SupplierName\n" +
  1799. " ,m.ProductionDate\n" +
  1800. " ,m.GoodsID\n" +
  1801. " ,m.GoodsCode\n" +
  1802. " ,m.UserID\n" +
  1803. " ,m.UserCode\n" +
  1804. " ,m.Weight\n" +
  1805. " ,m.Cost\n" +
  1806. " ,m.StandardGroutingNum\n" +
  1807. " ,m.StandardGroutingSum\n" +
  1808. " ,m.GroutingNum GroutingNums\n" +
  1809. " ,case when m.OutputCount=1 then to_char(m.GroutingNum)\n" +
  1810. " else (select listagg(to_char(t.GroutingNum), ';') within GROUP(ORDER BY t.outputno) from TP_PC_MouldOutput t where t.MouldID=m.MouldID) end GroutingNum\n" +
  1811. " ,m.GroutingDateBegin\n" +
  1812. " ,m.GroutingDateEnd\n" +
  1813. " ,m.LastGroutingBatchNo\n" +
  1814. " ,m.MouldStatus\n" +
  1815. " ,ms.mouldstatusname\n" +
  1816. " ,m.RepairFlag\n" +
  1817. " ,m.ScrapDate\n" +
  1818. " ,m.ScrapUserID\n" +
  1819. " ,m.ScrapUserCode\n" +
  1820. " ,ScReason.dictionaryvalue ScrapReason\n" +
  1821. " ,m.ScrapResponsibility\n" +
  1822. " ,gl.groutinglinecode\n" +
  1823. //" ,gld.groutingmouldcode\n" +
  1824. " ,case when m.GroutingLineDetailID is null or m.OutputCount=1 then to_char(gld.groutingmouldcode) else \n" +
  1825. " (select listagg(to_char(gldd.groutingmouldcode), ',') within GROUP(ORDER BY gldd.groutinglinedetailid) from tp_pc_groutinglinedetail gldd where gldd.valueflag='1' and gldd.MouldID=m.MouldID) end groutingmouldcode\n" +
  1826. " ,m.Remarks\n" +
  1827. " ,m.CreateTime\n" +
  1828. " ,cu.usercode CreateUserCode\n" +
  1829. " ,m.OutputCount\n" +
  1830. " ,g.mouldmaterialcode\n" +
  1831. " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  1832. //2021年12月21日11:41:10 by fy modify 列表中增加一列【卸模线号】,显示他最后一次上线的线号
  1833. //begin
  1834. ",gl2.groutinglinecode UnloadingMouldLine\n" +
  1835. //end
  1836. ",mp.plan_code\n" + // add 夏常明 模具生产计划单号 2023-6-25
  1837. " FROM tp_pc_mould m\n" +
  1838. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  1839. " ON mtype.dictionaryid = m.mouldtype\n" +
  1840. " LEFT JOIN tp_mst_goods g\n" +
  1841. " ON g.goodsid = m.goodsid\n" +
  1842. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  1843. " ON mms.SupplierID = m.MaterialSupplier\n" +
  1844. " INNER JOIN tp_sys_mouldstatus ms\n" +
  1845. " ON ms.mouldstatusid = m.MouldStatus\n" +
  1846. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  1847. " ON ScReason.dictionaryid = m.ScrapReason\n" +
  1848. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  1849. " ON gld.groutinglinedetailid = m.GroutingLineDetailID\n" +
  1850. " LEFT JOIN tp_pc_groutingline gl\n" +
  1851. " ON gl.groutinglineid = gld.groutinglineid\n" +
  1852. " INNER JOIN tp_mst_user cu\n" +
  1853. " ON cu.userid = m.createuserid\n" +
  1854. //2021年12月21日11:41:10 by fy modify 列表中增加一列【卸模线号】,显示他最后一次上线的线号
  1855. //begin
  1856. "LEFT JOIN(\n" +
  1857. "SELECT\n" +
  1858. " t.groutinglinedetailid,\n" +
  1859. " t.mouldcode,\n" +
  1860. " t.rk\n" +
  1861. "FROM\n" +
  1862. " (\n" +
  1863. " SELECT\n" +
  1864. " t.groutinglinedetailid,\n" +
  1865. " t.mouldcode,\n" +
  1866. " rank ( ) over (PARTITION BY t.mouldcode ORDER BY t.createtime DESC) rk\n" +
  1867. " FROM\n" +
  1868. " tp_pc_mouldchangehistory t\n" +
  1869. " WHERE\n" +
  1870. " t.valueflag = 1\n" +
  1871. " AND t.mouldstatus IN( 2, 3 ) \n" +
  1872. " AND t.mouldstatusafter IN( 1, 4 ) \n" +
  1873. " ) t\n" +
  1874. "WHERE\n" +
  1875. " t.rk <= 1\n" +
  1876. ") mch ON mch.mouldcode = m.mouldcode\n" +
  1877. "LEFT JOIN tp_pc_groutinglinedetail gld2 ON gld2.GROUTINGLINEDETAILID = mch.GROUTINGLINEDETAILID\n" +
  1878. "LEFT JOIN tp_pc_groutingline gl2 ON gl2.groutinglineid = gld2.groutinglineid\n" +
  1879. //end
  1880. "left join t_mould_plan mp on m.MOULD_PLAN_ID = mp.plan_id \n" +//模具生产计划 add 夏常明 2023-6-25
  1881. " WHERE m.accountid = :accountid\n" +
  1882. " AND m.valueflag = '1'\n" +
  1883. " AND (:MouldBarcode IS NULL OR instr(m.MouldBarcode, :MouldBarcode) > 0)\n" +
  1884. " AND (:PDateBegin IS NULL OR m.ProductionDate >= :PDateBegin)\n" +
  1885. " AND (:PDateEnd IS NULL OR m.ProductionDate <= :PDateEnd)\n" +
  1886. " AND (:UserCode IS NULL OR instr(m.UserCode, :UserCode) > 0)\n" +
  1887. " AND (:GoodsCode IS NULL OR instr(m.GoodsCode, :GoodsCode) > 0)\n" +
  1888. " AND (:Remarks IS NULL OR instr(m.Remarks, :Remarks) > 0)\n" +
  1889. " AND (:MouldTypes IS NULL OR\n" +
  1890. " instr(',' || :MouldTypes || ',', ',' || m.MouldType || ',') > 0)\n" +
  1891. " AND (:Suppliers IS NULL OR\n" +
  1892. " instr(',' || :Suppliers || ',', ',' || m.MaterialSupplier || ',') > 0)\n" +
  1893. " AND (:MouldStatus IS NULL OR\n" +
  1894. " instr(',' || :MouldStatus || ',', ',' || m.MouldStatus || ',') > 0)\n" +
  1895. " AND (:SDateBegin IS NULL OR m.ScrapDate >= :SDateBegin)\n" +
  1896. " AND (:SDateEnd IS NULL OR m.ScrapDate <= :SDateEnd)\n" +
  1897. " AND (:MouldIDs IS NULL OR\n" +
  1898. " instr(',' || :MouldIDs || ',', ',' || m.MouldID || ',') > 0)\n" +
  1899. " ORDER BY m.MouldBarcode";
  1900. OracleParameter[] parameters = new OracleParameter[]
  1901. {
  1902. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1903. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1904. new OracleParameter(":PDateBegin", OracleDbType.Date, cre.Properties["PDateBegin"], ParameterDirection.Input),
  1905. new OracleParameter(":PDateEnd", OracleDbType.Date, cre.Properties["PDateEnd"], ParameterDirection.Input),
  1906. new OracleParameter(":MouldBarcode", OracleDbType.NVarchar2, cre.Properties["MouldBarcode"], ParameterDirection.Input),
  1907. new OracleParameter(":UserCode", OracleDbType.NVarchar2, cre.Properties["UserCode"], ParameterDirection.Input),
  1908. new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, cre.Properties["GoodsCode"], ParameterDirection.Input),
  1909. new OracleParameter(":Remarks", OracleDbType.NVarchar2, cre.Properties["Remarks"], ParameterDirection.Input),
  1910. new OracleParameter(":MouldTypes", OracleDbType.NVarchar2, cre.Properties["MouldTypes"], ParameterDirection.Input),
  1911. new OracleParameter(":Suppliers", OracleDbType.NVarchar2, cre.Properties["Suppliers"], ParameterDirection.Input),
  1912. new OracleParameter(":MouldStatus", OracleDbType.NVarchar2, cre.Properties["MouldStatus"], ParameterDirection.Input),
  1913. new OracleParameter(":SDateBegin", OracleDbType.Date, cre.Properties["ScrapDateBegin"], ParameterDirection.Input),
  1914. new OracleParameter(":SDateEnd", OracleDbType.Date, cre.Properties["ScrapDateEnd"], ParameterDirection.Input),
  1915. };
  1916. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1917. if (sre.Data == null || sre.Data.Tables.Count == 0 || sre.Data.Tables[0].Rows.Count == 0)
  1918. {
  1919. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  1920. }
  1921. return sre;
  1922. }
  1923. catch (Exception ex)
  1924. {
  1925. throw ex;
  1926. }
  1927. finally
  1928. {
  1929. if (con.ConnState == ConnectionState.Open)
  1930. {
  1931. con.Close();
  1932. }
  1933. }
  1934. }
  1935. /// <summary>
  1936. /// 查询模具是否报工
  1937. /// </summary>
  1938. /// <param name="sUserInfo"></param>
  1939. /// <param name="cre"></param>
  1940. /// <returns></returns>
  1941. public static ServiceResultEntity GetMouldPlan(SUserInfo sUserInfo, ClientRequestEntity cre)
  1942. {
  1943. ServiceResultEntity sre = new ServiceResultEntity();
  1944. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1945. try
  1946. {
  1947. con.Open();
  1948. string sqlString = "SELECT COUNT(1)\n" +
  1949. " FROM tp_pc_mould pm\n" +
  1950. " WHERE pm.mould_plan_id IS NOT NULL\n" +
  1951. " AND pm.accountid = :accountid\n" +
  1952. " AND instr(',' || :MouldIDs || ',', ',' || pm.mouldid || ',') > 0";
  1953. OracleParameter[] parameters = new OracleParameter[]
  1954. {
  1955. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1956. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1957. };
  1958. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1959. return sre;
  1960. }
  1961. catch (Exception ex)
  1962. {
  1963. throw ex;
  1964. }
  1965. finally
  1966. {
  1967. if (con.ConnState == ConnectionState.Open)
  1968. {
  1969. con.Close();
  1970. }
  1971. }
  1972. }
  1973. /// <summary>
  1974. /// 产品型号是否相同
  1975. /// </summary>
  1976. /// <param name="sUserInfo"></param>
  1977. /// <param name="cre"></param>
  1978. /// <returns></returns>
  1979. public static ServiceResultEntity GoodsIdSame(SUserInfo sUserInfo, ClientRequestEntity cre)
  1980. {
  1981. ServiceResultEntity sre = new ServiceResultEntity();
  1982. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1983. try
  1984. {
  1985. con.Open();
  1986. string sqlString = "SELECT DISTINCT pm.goodsid\n" +
  1987. " FROM tp_pc_mould pm\n" +
  1988. " WHERE pm.accountid = :accountid\n" +
  1989. " AND instr(',' || :MouldIDs || ',', ',' || pm.mouldid || ',') > 0";
  1990. OracleParameter[] parameters = new OracleParameter[]
  1991. {
  1992. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1993. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1994. };
  1995. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1996. return sre;
  1997. }
  1998. catch (Exception ex)
  1999. {
  2000. throw ex;
  2001. }
  2002. finally
  2003. {
  2004. if (con.ConnState == ConnectionState.Open)
  2005. {
  2006. con.Close();
  2007. }
  2008. }
  2009. }
  2010. /// <summary>
  2011. /// 根据产品查询模具生产计划数据源
  2012. /// </summary>
  2013. /// <param name="sUserInfo"></param>
  2014. /// <param name="cre"></param>
  2015. /// <returns></returns>
  2016. public static ServiceResultEntity GetFPC1004MouldPlanData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2017. {
  2018. ServiceResultEntity sre = new ServiceResultEntity();
  2019. int goodsid = Convert.ToInt32(cre.Properties["goodsid"]);
  2020. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2021. try
  2022. {
  2023. string sqlString = "SELECT mp.plan_id\n" +
  2024. " ,mp.plan_code ||'('||TO_CHAR(mp.plan_qty-mp.make_qty,'fm9999')||')' as plan_code\n" +
  2025. " ,mp.plan_status\n" +
  2026. " FROM t_mould_plan mp\n" +
  2027. " WHERE mp.goodsid = :goodsid\n" +
  2028. " AND mp.plan_status <>3";
  2029. OracleParameter[] parameters = new OracleParameter[]
  2030. {
  2031. new OracleParameter(":goodsid", OracleDbType.Int32, goodsid, ParameterDirection.Input),
  2032. };
  2033. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2034. return sre;
  2035. }
  2036. catch (Exception ex)
  2037. {
  2038. throw ex;
  2039. }
  2040. finally
  2041. {
  2042. if (con.ConnState == ConnectionState.Open)
  2043. {
  2044. con.Close();
  2045. }
  2046. }
  2047. }
  2048. /// <summary>
  2049. /// 获取模具新建、编辑画面期初数据
  2050. /// </summary>
  2051. /// <param name="sUserInfo"></param>
  2052. /// <returns></returns>
  2053. public static ServiceResultEntity GetFPC1002LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2054. {
  2055. ServiceResultEntity sre = new ServiceResultEntity();
  2056. int mouldID = cre.Properties.GetValue<int>("MouldID");
  2057. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2058. try
  2059. {
  2060. con.Open();
  2061. // 模具类型
  2062. string sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  2063. " FROM TP_MST_DataDictionary dd\n" +
  2064. " WHERE dd.DictionaryType = 'GMM002'\n" +
  2065. " AND dd.valueflag = '1'\n" +
  2066. " AND dd.accountid = :accountid\n" +
  2067. " ORDER BY dd.displayno";
  2068. OracleParameter[] parameters = new OracleParameter[]
  2069. {
  2070. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2071. };
  2072. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2073. sre.Data.Tables[0].TableName = "MouldType";
  2074. // 材料供应商
  2075. sqlString = "SELECT mms.supplierid, mms.suppliername, mms.displayno\n" +
  2076. " FROM TP_MST_MouldMaterialSuppliers mms\n" +
  2077. " WHERE mms.valueflag = '1'\n" +
  2078. " AND mms.accountid = :accountid\n" +
  2079. " ORDER BY mms.displayno";
  2080. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2081. sre.Data.Tables[1].TableName = "Suppliers";
  2082. if (mouldID > 0)
  2083. {
  2084. sqlString = "SELECT m.mouldid\n" +
  2085. " ,m.mouldbarcode\n" +
  2086. " ,m.mouldtype\n" +
  2087. " ,dd.dictionaryvalue mouldtypeName\n" +
  2088. " ,m.materialsupplier\n" +
  2089. " ,mms.suppliername\n" +
  2090. " ,m.productiondate\n" +
  2091. " ,m.goodsid\n" +
  2092. " ,m.goodscode\n" +
  2093. " ,m.userid\n" +
  2094. " ,m.usercode\n" +
  2095. " ,m.weight\n" +
  2096. " ,m.cost\n" +
  2097. " ,m.standardgroutingnum\n" +
  2098. " ,m.remarks\n" +
  2099. " ,m.OutputCount\n" +
  2100. " ,m.MOULD_PLAN_ID\n" +
  2101. " FROM tp_pc_mould m\n" +
  2102. " LEFT JOIN tp_mst_datadictionary dd\n" +
  2103. " ON dd.dictionaryid = m.mouldtype\n" +
  2104. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  2105. " ON mms.supplierid = m.materialsupplier\n" +
  2106. " WHERE m.mouldid = :mouldid";
  2107. parameters = new OracleParameter[]
  2108. {
  2109. new OracleParameter(":mouldid", OracleDbType.Int32, mouldID, ParameterDirection.Input),
  2110. };
  2111. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2112. sre.Data.Tables[2].TableName = "InfoData";
  2113. //模具生产计划不为空 返回模具生产计划数据源
  2114. if (!string.IsNullOrEmpty(sre.Data.Tables[2].Rows[0]["MOULD_PLAN_ID"] + ""))
  2115. {
  2116. sqlString = "SELECT mp.plan_id\n" +
  2117. " ,mp.plan_code\n" +
  2118. " ,mp.plan_status\n" +
  2119. " FROM t_mould_plan mp\n" +
  2120. " WHERE mp.goodsid = :goodsid and mp.valueflag = 1 and mp.plan_status != 3";
  2121. parameters = new OracleParameter[]
  2122. {
  2123. new OracleParameter(":goodsid", OracleDbType.Int32, Convert.ToInt32(sre.Data.Tables[2].Rows[0]["goodsid"]), ParameterDirection.Input),
  2124. };
  2125. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2126. sre.Data.Tables[3].TableName = "Mouldplan";
  2127. }
  2128. }
  2129. return sre;
  2130. }
  2131. catch (Exception ex)
  2132. {
  2133. throw ex;
  2134. }
  2135. finally
  2136. {
  2137. if (con.ConnState == ConnectionState.Open)
  2138. {
  2139. con.Close();
  2140. }
  2141. }
  2142. }
  2143. /// <summary>
  2144. /// 获取模具产品期初数据
  2145. /// </summary>
  2146. /// <param name="sUserInfo"></param>
  2147. /// <returns></returns>
  2148. public static ServiceResultEntity GetFPC1002GoodsData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2149. {
  2150. ServiceResultEntity sre = new ServiceResultEntity();
  2151. string mouldID = cre.Properties.GetValue<string>("GoodsCode");
  2152. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2153. try
  2154. {
  2155. con.Open();
  2156. string sqlString = "SELECT g.goodsid, g.goodscode,g.GOODSSPECIFICATION, g.mouldweight, g.mouldcost\n" +
  2157. " , g.StandardGroutingNum, g.MouldOutputCount" +
  2158. " FROM tp_mst_goods g\n" +
  2159. " WHERE g.goodscode = :goodscode";
  2160. OracleParameter[] parameters = new OracleParameter[]
  2161. {
  2162. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  2163. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2164. };
  2165. DataSet DS = con.GetSqlResultToDs(sqlString, parameters);
  2166. //获取未完成模具生产计划
  2167. sqlString = "SELECT mp.plan_id\n" +
  2168. " ,mp.plan_code ||'('||TO_CHAR(mp.plan_qty-mp.make_qty,'fm9999')||')' as plan_code\n" +
  2169. " FROM t_mould_plan mp\n" +
  2170. " INNER JOIN tp_mst_goods mg\n" +
  2171. " ON mp.goodsid = mg.goodsid\n" +
  2172. " WHERE mg.accountid = :accountid\n" +
  2173. " AND mg.goodscode = :goodscode\n" +
  2174. " AND mp.plan_status <>3";
  2175. parameters = new OracleParameter[]
  2176. {
  2177. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  2178. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2179. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2180. };
  2181. DataTable dt = con.GetSqlResultToDt(sqlString, parameters);
  2182. DS.Tables.Add(dt.Copy());
  2183. sre.Data = DS;
  2184. return sre;
  2185. }
  2186. catch (Exception ex)
  2187. {
  2188. throw ex;
  2189. }
  2190. finally
  2191. {
  2192. if (con.ConnState == ConnectionState.Open)
  2193. {
  2194. con.Close();
  2195. }
  2196. }
  2197. }
  2198. /// <summary>
  2199. /// 获取模具新建、编辑画面期初数据
  2200. /// </summary>
  2201. /// <param name="sUserInfo"></param>
  2202. /// <returns></returns>
  2203. public static ServiceResultEntity SetFPC1002Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2204. {
  2205. ServiceResultEntity sre = new ServiceResultEntity();
  2206. int mouldID = Convert.ToInt32(cre.Properties["MouldID"]);
  2207. int retrunRow = 0;
  2208. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2209. try
  2210. {
  2211. con.Connect();
  2212. if (mouldID == 0)
  2213. {
  2214. // 新建
  2215. //// 验证 条码是否重复
  2216. //string sql = "Select count(*) from TP_PC_Mould m where m.MouldBarcode = :MouldBarcode";
  2217. //OracleParameter[] paras = new OracleParameter[]
  2218. //{
  2219. // new OracleParameter(":MouldBarcode", OracleDbType.Varchar2,
  2220. // cre.Properties["MouldBarcode"], ParameterDirection.Input),
  2221. //};
  2222. //string count = con.GetSqlResultToStr(sql, paras);
  2223. //if ("0" != count)
  2224. //{
  2225. // sre.Status = Constant.ServiceResultStatus.Other;
  2226. // sre.Message = "模具条码【" + cre.Properties["MouldBarcode"] + "】已存在";
  2227. // return sre;
  2228. //}
  2229. string plan_code = string.Empty; //模具计划编码
  2230. //模具计划 未完成数量 模具数大小校验
  2231. if (cre.Properties["MOULD_PLAN_ID"] != null)
  2232. {
  2233. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  2234. " FROM t_mould_plan mp\n" +
  2235. " WHERE mp.plan_id = :mould_plan_id";
  2236. OracleParameter[] paras1 = new OracleParameter[]
  2237. {
  2238. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  2239. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),
  2240. };
  2241. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  2242. plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  2243. if (Convert.ToInt32(dt.Rows[0][0]) < Convert.ToInt32(cre.Properties["MCount"]))
  2244. {
  2245. sre.Message = " 模具个数不能大于模具生产计划未完成数量!";
  2246. sre.Status = Constant.ServiceResultStatus.Other;
  2247. return sre;
  2248. }
  2249. }
  2250. int mCount = 1;
  2251. if (cre.Properties["MCount"] != null)
  2252. {
  2253. mCount = Convert.ToInt32(cre.Properties["MCount"]);
  2254. }
  2255. mCount = (mCount < 1 ? 1 : mCount);
  2256. string sql = null;
  2257. OracleParameter[] paras = null;
  2258. for (int i = 0; i < mCount; i++)
  2259. {
  2260. mouldID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mould_id.nextval from dual "));
  2261. string mouldcode = con.GetSqlResultToStr("select fun_cmn_convertto36(" + mouldID + ", 6) from dual ");
  2262. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2263. int len = mouldcode.Length;
  2264. string mouldBarcode = DateTime.Now.ToString("yyMMdd") + (len > 6 ? mouldcode.Substring(len - 6) : mouldcode);
  2265. if (i > 0)
  2266. {
  2267. sre.Result += "," + mouldBarcode;
  2268. }
  2269. else
  2270. {
  2271. sre.Result = mouldBarcode;
  2272. }
  2273. //cre.Properties["MouldBarcode"] = mouldBarcode;
  2274. sql =
  2275. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2276. " (CHANGEID\n" +
  2277. " ,MOULDID\n" +
  2278. " ,MOULDCODE\n" +
  2279. " ,MOULDBARCODE\n" +
  2280. " ,GOODSID\n" +
  2281. " ,GOODSCODE\n" +
  2282. " ,OPERATIONTYPE\n" +
  2283. " ,MOULDSTATUS\n" +
  2284. " ,MOULDSTATUSAFTER\n" +
  2285. " ,GROUTINGNUM\n" +
  2286. " ,REMARKS\n" +
  2287. " ,CHANGEFLAG\n" +
  2288. " ,ACCOUNTID\n" +
  2289. " ,CREATEUSERID)\n" +
  2290. " Values( :changeID\n" +
  2291. " ,:MOULDID\n" +
  2292. " ,:MOULDCODE\n" +
  2293. " ,:MOULDBARCODE\n" +
  2294. " ,:GOODSID\n" +
  2295. " ,:GOODSCODE\n" +
  2296. " ,:OPERATIONTYPE\n" +
  2297. " ,0\n" +
  2298. " ,1\n" +
  2299. " ,0\n" +
  2300. " ,:REMARKS\n" +
  2301. " ,'1'\n" +
  2302. " ,:ACCOUNTID\n" +
  2303. " ,:CREATEUSERID\n" +
  2304. " )";
  2305. paras = new OracleParameter[]
  2306. {
  2307. new OracleParameter(":changeID", OracleDbType.Int32,
  2308. mouldHistoryID, ParameterDirection.Input),
  2309. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2310. mouldID, ParameterDirection.Input),
  2311. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2312. mouldcode, ParameterDirection.Input),
  2313. new OracleParameter(":MOULDBARCODE", OracleDbType.Varchar2,
  2314. mouldBarcode, ParameterDirection.Input),
  2315. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2316. cre.Properties["GoodsID"], ParameterDirection.Input),
  2317. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2318. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2319. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2320. (int)Constant.MouldOperationType.ToInv, ParameterDirection.Input),
  2321. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2322. cre.Properties["Remarks"], ParameterDirection.Input),
  2323. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2324. sUserInfo.AccountID, ParameterDirection.Input),
  2325. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,
  2326. sUserInfo.UserID, ParameterDirection.Input),
  2327. };
  2328. retrunRow += con.ExecuteNonQuery(sql, paras);
  2329. sql =
  2330. "INSERT INTO tp_pc_mould\n" +
  2331. " (MOULDID\n" +
  2332. " ,MOULDCODE\n" +
  2333. " ,MOULDBARCODE\n" +
  2334. " ,MOULDTYPE\n" +
  2335. " ,MATERIALSUPPLIER\n" +
  2336. " ,PRODUCTIONDATE\n" +
  2337. " ,GOODSID\n" +
  2338. " ,GOODSCODE\n" +
  2339. " ,USERID\n" +
  2340. " ,USERCODE\n" +
  2341. " ,WEIGHT\n" +
  2342. " ,COST\n" +
  2343. " ,STANDARDGROUTINGNUM\n" +
  2344. " ,OUTPUTCOUNT\n" +
  2345. " ,MOULDSTATUS\n" +
  2346. " ,PREMOULDSTATUS\n" +
  2347. " ,LASTCHANGEHISTORYID\n" +
  2348. " ,REMARKS\n" +
  2349. " ,MOULD_PLAN_ID\n" + //add 夏常明 模具生产计划id 2023-6-26
  2350. " ,ACCOUNTID\n" +
  2351. " ,CREATEUSERID\n" +
  2352. " ,UPDATEUSERID)\n" +
  2353. "VALUES\n" +
  2354. " (:MOULDID\n" +
  2355. " ,:MOULDCODE\n" +
  2356. " ,:MOULDBARCODE\n" +
  2357. " ,:MOULDTYPE\n" +
  2358. " ,:MATERIALSUPPLIER\n" +
  2359. " ,:PRODUCTIONDATE\n" +
  2360. " ,:GOODSID\n" +
  2361. " ,:GOODSCODE\n" +
  2362. " ,:USERID\n" +
  2363. " ,:USERCODE\n" +
  2364. " ,:WEIGHT\n" +
  2365. " ,:COST\n" +
  2366. " ,:STANDARDGROUTINGNUM\n" +
  2367. " ,:OUTPUTCOUNT\n" +
  2368. " ,:MOULDSTATUS\n" +
  2369. " ,:PREMOULDSTATUS\n" +
  2370. " ,:LASTCHANGEHISTORYID\n" +
  2371. " ,:REMARKS\n" +
  2372. " ,:MOULD_PLAN_ID\n" + //add 夏常明 模具生产计划id 2023-6-26
  2373. " ,:ACCOUNTID\n" +
  2374. " ,:CREATEUSERID\n" +
  2375. " ,:CREATEUSERID)";
  2376. paras = new OracleParameter[]
  2377. {
  2378. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2379. mouldcode, ParameterDirection.Input),
  2380. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  2381. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  2382. new OracleParameter(":PREMOULDSTATUS", OracleDbType.Int32,
  2383. (int)Constant.MouldStatus.Add, ParameterDirection.Input),
  2384. new OracleParameter(":LASTCHANGEHISTORYID", OracleDbType.Int32,
  2385. mouldHistoryID, ParameterDirection.Input),
  2386. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2387. mouldID, ParameterDirection.Input),
  2388. new OracleParameter(":MOULDBARCODE", OracleDbType.Varchar2,
  2389. mouldBarcode, ParameterDirection.Input),
  2390. new OracleParameter(":MOULDTYPE", OracleDbType.Int32,
  2391. cre.Properties["MouldType"], ParameterDirection.Input),
  2392. new OracleParameter(":MATERIALSUPPLIER", OracleDbType.Int32,
  2393. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2394. new OracleParameter(":PRODUCTIONDATE", OracleDbType.Date,
  2395. cre.Properties["ProductionDate"], ParameterDirection.Input),
  2396. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2397. cre.Properties["GoodsID"], ParameterDirection.Input),
  2398. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2399. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2400. new OracleParameter(":USERID", OracleDbType.Int32,
  2401. cre.Properties["UserID"], ParameterDirection.Input),
  2402. new OracleParameter(":USERCODE", OracleDbType.NVarchar2,
  2403. cre.Properties["UserCode"], ParameterDirection.Input),
  2404. new OracleParameter(":WEIGHT", OracleDbType.Decimal,
  2405. cre.Properties["Weight"], ParameterDirection.Input),
  2406. new OracleParameter(":COST", OracleDbType.Decimal,
  2407. cre.Properties["Cost"], ParameterDirection.Input),
  2408. new OracleParameter(":STANDARDGROUTINGNUM", OracleDbType.Decimal,
  2409. cre.Properties["StandardGroutingNum"], ParameterDirection.Input),
  2410. new OracleParameter(":OUTPUTCOUNT", OracleDbType.Decimal,
  2411. cre.Properties["OutputCount"], ParameterDirection.Input),
  2412. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2413. cre.Properties["Remarks"], ParameterDirection.Input),
  2414. new OracleParameter(":MOULD_PLAN_ID", OracleDbType.Int32,
  2415. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2416. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2417. sUserInfo.AccountID, ParameterDirection.Input),
  2418. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,
  2419. sUserInfo.UserID, ParameterDirection.Input),
  2420. };
  2421. retrunRow += con.ExecuteNonQuery(sql, paras);
  2422. //更新模具生产计划完成数量 添加报工履历 add 夏常明 2023-6-26
  2423. if (!string.IsNullOrEmpty(cre.Properties["MOULD_PLAN_ID"] + ""))
  2424. {
  2425. //更新模具生产计划完成数量
  2426. string sqlString = "UPDATE t_mould_plan\n" +
  2427. " SET make_qty = make_qty + 1\n" +
  2428. " WHERE plan_id = :MOULD_PLAN_ID";
  2429. paras = new OracleParameter[]
  2430. {
  2431. new OracleParameter(":MOULD_PLAN_ID", OracleDbType.Int32,
  2432. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2433. };
  2434. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2435. //添加报工履历
  2436. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  2437. " (his_type\n" +
  2438. " ,plan_id\n" +
  2439. " ,plan_code\n" +
  2440. " ,mouldid\n" +
  2441. " ,goodsid\n" +
  2442. " ,materialsupplier\n" +
  2443. " ,CREATEUSER\n" +
  2444. " ,accountid)\n" +
  2445. "VALUES\n" +
  2446. " (1\n" +
  2447. " ,:plan_id\n" +
  2448. " ,:plan_code\n" +
  2449. " ,:mouldid\n" +
  2450. " ,:goodsid\n" +
  2451. " ,:materialsupplier\n" +
  2452. " ,:CREATEUSER\n" +
  2453. " ,:accountid)";
  2454. paras = new OracleParameter[]
  2455. {
  2456. new OracleParameter(":plan_id", OracleDbType.Int32,
  2457. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2458. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  2459. plan_code ,ParameterDirection.Input),
  2460. new OracleParameter(":mouldid", OracleDbType.Int32,
  2461. mouldID ,ParameterDirection.Input),
  2462. new OracleParameter(":goodsid", OracleDbType.Int32,
  2463. cre.Properties["GoodsID"] ,ParameterDirection.Input),
  2464. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  2465. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2466. new OracleParameter(":accountid", OracleDbType.Int32,
  2467. sUserInfo.AccountID, ParameterDirection.Input),
  2468. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  2469. sUserInfo.UserID, ParameterDirection.Input),
  2470. };
  2471. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2472. }
  2473. // 多胞胎
  2474. int outputcount = Convert.ToInt32(cre.Properties["OutputCount"]);
  2475. if (outputcount > 1)
  2476. {
  2477. string sqlString = "insert into TP_PC_MouldOutput\n" +
  2478. " (MouldID, MouldCode, OutputNo, OutputCount, GroutingNum, CreateUserID)\n" +
  2479. "values\n" +
  2480. " (:MouldID, :MouldCode, :OutputNo, :OutputCount, 0, :CreateUserID)";
  2481. for (int j = 1; j <= outputcount; j++)
  2482. {
  2483. paras = new OracleParameter[]
  2484. {
  2485. new OracleParameter(":MouldID", OracleDbType.Int32,
  2486. mouldID, ParameterDirection.Input),
  2487. new OracleParameter(":MouldCode", OracleDbType.Varchar2,
  2488. mouldcode, ParameterDirection.Input),
  2489. new OracleParameter(":OutputNo", OracleDbType.Int32,
  2490. j, ParameterDirection.Input),
  2491. new OracleParameter(":OutputCount", OracleDbType.Int32,
  2492. outputcount , ParameterDirection.Input),
  2493. new OracleParameter(":CreateUserID", OracleDbType.Int32,
  2494. sUserInfo.UserID, ParameterDirection.Input),
  2495. };
  2496. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2497. }
  2498. }
  2499. }
  2500. }
  2501. else
  2502. {
  2503. sre.Result = cre.Properties["MouldBarcode"];
  2504. // 编辑
  2505. string sqlString = "UPDATE tp_pc_mould m\n" +
  2506. " SET m.mouldtype = :mouldtype\n" +
  2507. " ,m.materialsupplier = :materialsupplier\n" +
  2508. " ,m.productiondate = :productiondate\n" +
  2509. " ,m.userid = :userid\n" +
  2510. " ,m.usercode = :usercode\n" +
  2511. " ,m.weight = :weight\n" +
  2512. " ,m.cost = :cost\n" +
  2513. " ,m.standardgroutingnum = :standardgroutingnum\n" +
  2514. " ,m.remarks = :remarks\n" +
  2515. " ,m.UpdateUserID = :UpdateUserID\n" +
  2516. " WHERE m.mouldid = :mouldid";
  2517. OracleParameter[] parameters = new OracleParameter[]
  2518. {
  2519. new OracleParameter(":mouldtype", OracleDbType.Int32,
  2520. cre.Properties["MouldType"], ParameterDirection.Input),
  2521. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  2522. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2523. new OracleParameter(":productiondate", OracleDbType.Date,
  2524. cre.Properties["ProductionDate"], ParameterDirection.Input),
  2525. new OracleParameter(":userid", OracleDbType.Int32,
  2526. cre.Properties["UserID"], ParameterDirection.Input),
  2527. new OracleParameter(":usercode", OracleDbType.NVarchar2,
  2528. cre.Properties["UserCode"], ParameterDirection.Input),
  2529. new OracleParameter(":weight", OracleDbType.Decimal,
  2530. cre.Properties["Weight"], ParameterDirection.Input),
  2531. new OracleParameter(":cost", OracleDbType.Decimal,
  2532. cre.Properties["Cost"], ParameterDirection.Input),
  2533. new OracleParameter(":standardgroutingnum", OracleDbType.Decimal,
  2534. cre.Properties["StandardGroutingNum"], ParameterDirection.Input),
  2535. new OracleParameter(":remarks", OracleDbType.NVarchar2,
  2536. cre.Properties["Remarks"], ParameterDirection.Input),
  2537. new OracleParameter(":mouldid", OracleDbType.Int32,
  2538. mouldID, ParameterDirection.Input),
  2539. new OracleParameter(":UpdateUserID", OracleDbType.Int32,
  2540. sUserInfo.UserID, ParameterDirection.Input),
  2541. };
  2542. retrunRow = con.ExecuteNonQuery(sqlString, parameters);
  2543. }
  2544. con.Commit();
  2545. return sre;
  2546. }
  2547. catch (Exception ex)
  2548. {
  2549. throw ex;
  2550. }
  2551. finally
  2552. {
  2553. if (con.ConnState == ConnectionState.Open)
  2554. {
  2555. con.Disconnect();
  2556. }
  2557. }
  2558. }
  2559. /// <summary>
  2560. /// 获取模具信息
  2561. /// </summary>
  2562. /// <param name="sUserInfo"></param>
  2563. /// <returns></returns>
  2564. public static ServiceResultEntity GetMouldData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2565. {
  2566. ServiceResultEntity sre = new ServiceResultEntity();
  2567. int? mouldID = null;
  2568. string mouldBarcode = null;
  2569. if (cre.Properties.ContainsKey("MouldID"))
  2570. {
  2571. mouldID = cre.Properties.GetValue<int?>("MouldID");
  2572. }
  2573. if (cre.Properties.ContainsKey("MouldBarcode"))
  2574. {
  2575. mouldBarcode = cre.Properties["MouldBarcode"].ToString();
  2576. }
  2577. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2578. try
  2579. {
  2580. con.Open();
  2581. string sqlString =
  2582. "SELECT m.MouldID\n" +
  2583. " ,m.MouldCode\n" +
  2584. " ,m.MouldBarcode\n" +
  2585. " ,mtype.dictionaryvalue MouldTypeName\n" +
  2586. " ,mms.SupplierName\n" +
  2587. " ,m.ProductionDate\n" +
  2588. " ,m.GoodsID\n" +
  2589. " ,m.GoodsCode\n" +
  2590. " ,g.GoodsName\n" +
  2591. " ,g.GoodsSpecification\n" +
  2592. " ,m.UserID\n" +
  2593. " ,m.UserCode\n" +
  2594. " ,m.Weight\n" +
  2595. " ,m.Cost\n" +
  2596. " ,m.StandardGroutingNum\n" +
  2597. " ,m.OutputCount\n" +
  2598. " ,m.GroutingNum GroutingNums\n" +
  2599. " ,m.GroutingDateBegin\n" +
  2600. " ,m.GroutingDateEnd\n" +
  2601. " ,m.LastGroutingBatchNo\n" +
  2602. " ,m.MouldStatus\n" +
  2603. " ,ms.mouldstatusname\n" +
  2604. " ,m.RepairFlag\n" +
  2605. " ,m.ScrapDate\n" +
  2606. " ,m.ScrapUserID\n" +
  2607. " ,m.ScrapUserCode\n" +
  2608. " ,ScReason.dictionaryvalue ScrapReason\n" +
  2609. " ,m.ScrapResponsibility\n" +
  2610. " ,gl.groutinglinecode\n" +
  2611. " ,gld.groutingmouldcode\n" +
  2612. " ,m.Remarks\n" +
  2613. " ,m.CreateTime\n" +
  2614. " ,cu.usercode CreateUserCode\n" +
  2615. " ,nvl(mo.OutputNo,0) OutputNo\n" +
  2616. " ,nvl(mo.GroutingNum, m.GroutingNum) GroutingNum\n" +
  2617. " FROM tp_pc_mould m\n" +
  2618. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  2619. " ON mtype.dictionaryid = m.mouldtype\n" +
  2620. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  2621. " ON mms.SupplierID = m.MaterialSupplier\n" +
  2622. " INNER JOIN tp_sys_mouldstatus ms\n" +
  2623. " ON ms.mouldstatusid = m.MouldStatus\n" +
  2624. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  2625. " ON ScReason.dictionaryid = m.ScrapReason\n" +
  2626. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  2627. " ON gld.groutinglinedetailid = m.GroutingLineDetailID\n" +
  2628. " LEFT JOIN tp_pc_groutingline gl\n" +
  2629. " ON gl.groutinglineid = gld.groutinglineid\n" +
  2630. " INNER JOIN tp_mst_user cu\n" +
  2631. " ON cu.userid = m.createuserid\n" +
  2632. " INNER JOIN tp_mst_goods g\n" +
  2633. " ON g.goodsid = m.goodsid\n" +
  2634. " LEFT JOIN TP_PC_MouldOutput mo\n" +
  2635. " ON mo.mouldid = m.mouldid\n" +
  2636. " WHERE m.accountid = :accountid\n" +
  2637. " AND m.valueflag = '1'\n" +
  2638. " AND (:MouldBarcode IS NULL OR m.MouldBarcode = :MouldBarcode)\n" +
  2639. " AND (:MouldStatus IS NULL OR\n" +
  2640. " instr(',' || :MouldStatus || ',', ',' || m.MouldStatus || ',') > 0)\n" +
  2641. " AND (:MouldID IS NULL OR m.MouldID = :MouldID)";
  2642. OracleParameter[] parameters = new OracleParameter[]
  2643. {
  2644. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2645. new OracleParameter(":MouldID", OracleDbType.Int32, mouldID, ParameterDirection.Input),
  2646. new OracleParameter(":MouldBarcode", OracleDbType.NVarchar2, mouldBarcode, ParameterDirection.Input),
  2647. new OracleParameter(":MouldStatus", OracleDbType.Varchar2, cre.Properties["MouldStatus"], ParameterDirection.Input),
  2648. };
  2649. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2650. sre.Data.Tables[0].TableName = "InfoData";
  2651. return sre;
  2652. }
  2653. catch (Exception ex)
  2654. {
  2655. throw ex;
  2656. }
  2657. finally
  2658. {
  2659. if (con.ConnState == ConnectionState.Open)
  2660. {
  2661. con.Close();
  2662. }
  2663. }
  2664. }
  2665. /// <summary>
  2666. /// 替换模具条码
  2667. /// </summary>
  2668. /// <param name="sUserInfo"></param>
  2669. /// <returns></returns>
  2670. public static ServiceResultEntity SetFPC1003Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2671. {
  2672. ServiceResultEntity sre = new ServiceResultEntity();
  2673. int mouldID = Convert.ToInt32(cre.Properties["MouldID"]);
  2674. string mouldBarcode = cre.Properties["MouldBarcode"].ToString();
  2675. string newMouldBarcode = cre.Properties["NewMouldBarcode"].ToString();
  2676. int retrunRow = 0;
  2677. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2678. try
  2679. {
  2680. con.Connect();
  2681. // 验证 条码是否重复
  2682. string sql = "Select count(*) from TP_PC_Mould m where m.MouldBarcode = :MouldBarcode";
  2683. OracleParameter[] paras = new OracleParameter[]
  2684. {
  2685. new OracleParameter(":MouldBarcode", OracleDbType.Varchar2,
  2686. newMouldBarcode, ParameterDirection.Input),
  2687. };
  2688. string count = con.GetSqlResultToStr(sql, paras);
  2689. if ("0" != count)
  2690. {
  2691. sre.Status = Constant.ServiceResultStatus.Other;
  2692. sre.Message = "新模具条码【" + newMouldBarcode + "】已存在";
  2693. return sre;
  2694. }
  2695. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2696. sql =
  2697. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2698. " (CHANGEID\n" +
  2699. " ,MOULDID\n" +
  2700. " ,MOULDCODE\n" +
  2701. " ,MOULDBARCODE\n" +
  2702. " ,GOODSID\n" +
  2703. " ,GOODSCODE\n" +
  2704. " ,OPERATIONTYPE\n" +
  2705. " ,GroutingLineDetailID\n" +
  2706. " ,MOULDSTATUS\n" +
  2707. " ,MOULDSTATUSAFTER\n" +
  2708. " ,GROUTINGNUM\n" +
  2709. " ,REMARKS\n" +
  2710. " ,CHANGEFLAG\n" +
  2711. " ,MouldBarcodeAfter\n" +
  2712. " ,ACCOUNTID\n" +
  2713. " ,CREATEUSERID)\n" +
  2714. " SELECT :changeID\n" +
  2715. " ,MOULDID\n" +
  2716. " ,MOULDCODE\n" +
  2717. " ,:MOULDBARCODE\n" +
  2718. " ,GOODSID\n" +
  2719. " ,GOODSCODE\n" +
  2720. " ,:OPERATIONTYPE\n" +
  2721. " ,GroutingLineDetailID\n" +
  2722. " ,MOULDSTATUS\n" +
  2723. " ,MOULDSTATUS\n" +
  2724. " ,GROUTINGNUM\n" +
  2725. " ,:REMARKS\n" +
  2726. " ,'0'\n" +
  2727. " ,:NEWMOULDBARCODE\n" +
  2728. " ,ACCOUNTID\n" +
  2729. " ,CREATEUSERID\n" +
  2730. " FROM tp_pc_mould m\n" +
  2731. " WHERE m.mouldID = :MouldID";
  2732. paras = new OracleParameter[]
  2733. {
  2734. new OracleParameter(":MouldID", OracleDbType.Int32,
  2735. mouldID, ParameterDirection.Input),
  2736. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2737. (int)Constant.MouldOperationType.ChangeBarcode, ParameterDirection.Input),
  2738. new OracleParameter(":changeID", OracleDbType.Int32,
  2739. mouldHistoryID, ParameterDirection.Input),
  2740. new OracleParameter(":NEWMOULDBARCODE", OracleDbType.NVarchar2,
  2741. newMouldBarcode, ParameterDirection.Input),
  2742. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  2743. mouldBarcode, ParameterDirection.Input),
  2744. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2745. cre.Properties["Remarks"], ParameterDirection.Input),
  2746. };
  2747. retrunRow += con.ExecuteNonQuery(sql, paras);
  2748. sql = "UPDATE tp_pc_mould m\n" +
  2749. " SET m.mouldbarcode = :newmouldbarcode\n" +
  2750. " ,m.updateuserid = :userid\n" +
  2751. " ,m.lastchangehistoryid = :changeid\n" +
  2752. " WHERE m.mouldid = :mouldid";
  2753. paras = new OracleParameter[]
  2754. {
  2755. new OracleParameter(":newmouldbarcode", OracleDbType.NVarchar2,
  2756. newMouldBarcode, ParameterDirection.Input),
  2757. new OracleParameter(":mouldid", OracleDbType.Int32,
  2758. mouldID, ParameterDirection.Input),
  2759. new OracleParameter(":changeid", OracleDbType.Int32,
  2760. mouldHistoryID, ParameterDirection.Input),
  2761. new OracleParameter(":userid", OracleDbType.Int32,
  2762. sUserInfo.UserID, ParameterDirection.Input),
  2763. };
  2764. retrunRow += con.ExecuteNonQuery(sql, paras);
  2765. con.Commit();
  2766. return sre;
  2767. }
  2768. catch (Exception ex)
  2769. {
  2770. throw ex;
  2771. }
  2772. finally
  2773. {
  2774. if (con.ConnState == ConnectionState.Open)
  2775. {
  2776. con.Disconnect();
  2777. }
  2778. }
  2779. }
  2780. /// <summary>
  2781. /// 获取模具操作画面期初数据
  2782. /// </summary>
  2783. /// <param name="sUserInfo"></param>
  2784. /// <returns></returns>
  2785. public static ServiceResultEntity GetFPC1004LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2786. {
  2787. ServiceResultEntity sre = new ServiceResultEntity();
  2788. int mouldOperationType = Convert.ToInt32(cre.Properties["MouldOperationType"]);
  2789. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2790. try
  2791. {
  2792. string sqlString = null;
  2793. OracleParameter[] parameters = null;
  2794. if (mouldOperationType == (int)Constant.MouldOperationType.InvToScrap ||
  2795. mouldOperationType == (int)Constant.MouldOperationType.OnLineToScrap ||
  2796. mouldOperationType == (int)Constant.MouldOperationType.OutToScrap)
  2797. {
  2798. // 报废原因
  2799. sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  2800. " FROM TP_MST_DataDictionary dd\n" +
  2801. " WHERE dd.DictionaryType = 'GMM001'\n" +
  2802. " AND dd.valueflag = '1'\n" +
  2803. " AND dd.accountid = :accountid\n" +
  2804. " ORDER BY dd.displayno";
  2805. parameters = new OracleParameter[]
  2806. {
  2807. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2808. };
  2809. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2810. }
  2811. return sre;
  2812. }
  2813. catch (Exception ex)
  2814. {
  2815. throw ex;
  2816. }
  2817. finally
  2818. {
  2819. if (con.ConnState == ConnectionState.Open)
  2820. {
  2821. con.Close();
  2822. }
  2823. }
  2824. }
  2825. /// <summary>
  2826. /// 模具操作
  2827. /// </summary>
  2828. /// <param name="sUserInfo"></param>
  2829. /// <returns></returns>
  2830. public static ServiceResultEntity SetFPC1004Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2831. {
  2832. ServiceResultEntity sre = new ServiceResultEntity();
  2833. int mouldOperationType = Convert.ToInt32(cre.Properties["MouldOperationType"]);
  2834. int retrunRow = 0;
  2835. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2836. try
  2837. {
  2838. con.Connect();
  2839. OracleParameter[] paras = null;
  2840. object goods = cre.Properties["GoodsID"];
  2841. string sql =
  2842. "SELECT m.MouldID\n" +
  2843. " ,m.MouldCode\n" +
  2844. " ,m.MouldBarcode\n" +
  2845. " ,m.GoodsID\n" +
  2846. " ,m.GoodsCode\n" +
  2847. " ,m.GroutingNum\n" +
  2848. " ,m.MouldStatus\n" +
  2849. //" ,m.RepairFlag\n" +
  2850. //" ,m.ScrapDate\n" +
  2851. //" ,m.ScrapUserID\n" +
  2852. //" ,m.ScrapUserCode\n" +
  2853. " ,m.GroutingLineDetailID\n" +
  2854. " ,m.MaterialSupplier\n" +
  2855. " ,m.mould_plan_id\n" + //add 夏常明 模具生产计划id
  2856. " FROM tp_pc_mould m\n" +
  2857. " WHERE m.accountid = :accountid\n" +
  2858. " AND m.valueflag = '1'\n" +
  2859. " AND m.MouldID in (" + cre.Properties["MouldIDs"] + ")\n" +
  2860. " ORDER BY m.MouldBarcode for update";
  2861. paras = new OracleParameter[]
  2862. {
  2863. new OracleParameter(":accountid", OracleDbType.Int32,
  2864. sUserInfo.AccountID, ParameterDirection.Input),
  2865. };
  2866. DataTable mouldTable = con.GetSqlResultToDt(sql, paras);
  2867. // 变更型号
  2868. if (mouldOperationType == (int)Constant.MouldOperationType.ChangeGoodsCode)
  2869. {
  2870. #region
  2871. //校验是否存在已报工模具
  2872. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS NOT NULL", null);
  2873. if (mouldTable != null && mouldTable.Rows.Count > 0 && Convert.ToInt32(mouldTable.Rows[0]["MouldStatus"]) != 3 && mouldPlanDt.Length > 0)
  2874. {
  2875. sre.Message = "已报工模具,不能变更型号!";
  2876. sre.Status = Constant.ServiceResultStatus.Other;
  2877. return sre;
  2878. }
  2879. foreach (DataRow item in mouldTable.Rows)
  2880. {
  2881. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  2882. if (mouldStatus != 1 && mouldStatus != 2 && mouldStatus != 3)
  2883. {
  2884. continue;
  2885. }
  2886. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2887. //操作类别
  2888. DataTable OPERATIONTYPE = con.GetSqlResultToDt(@"SELECT OPERATIONTYPE FROM TP_PC_MOULDCHANGEHISTORY
  2889. WHERE CREATETIME=(SELECT MAX(CREATETIME)
  2890. FROM TP_PC_MOULDCHANGEHISTORY WHERE MOULDID=" + item["MouldID"] + ") AND MOULDID = " + item["MouldID"] + "", null);
  2891. sql =
  2892. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2893. " (CHANGEID\n" +
  2894. " ,MOULDID\n" +
  2895. " ,MOULDCODE\n" +
  2896. " ,MOULDBARCODE\n" +
  2897. " ,GOODSID\n" +
  2898. " ,GOODSCODE\n" +
  2899. " ,OPERATIONTYPE\n" +
  2900. " ,GroutingLineDetailID\n" +
  2901. " ,MOULDSTATUS\n" +
  2902. " ,MOULDSTATUSAFTER\n" +
  2903. " ,GROUTINGNUM\n" +
  2904. " ,REMARKS\n" +
  2905. " ,CHANGEFLAG\n" +
  2906. " ,GoodsIDAfter\n" +
  2907. " ,GoodsCodeAfter\n" +
  2908. " ,ACCOUNTID\n" +
  2909. " ,CREATEUSERID)\n" +
  2910. " Values( :changeID\n" +
  2911. " ,:MOULDID\n" +
  2912. " ,:MOULDCODE\n" +
  2913. " ,:MOULDBARCODE\n" +
  2914. " ,:GOODSID\n" +
  2915. " ,:GOODSCODE\n" +
  2916. " ,:OPERATIONTYPE\n" +
  2917. " ,:GroutingLineDetailID\n" +
  2918. " ,:MOULDSTATUS\n" +
  2919. " ,:MOULDSTATUS\n" +
  2920. " ,:GROUTINGNUM\n" +
  2921. " ,:REMARKS\n" +
  2922. " ,decode(:MOULDSTATUS,1,'3','0')\n" +
  2923. " ,:GoodsIDAfter\n" +
  2924. " ,:GoodsCodeAfter\n" +
  2925. " ,:ACCOUNTID\n" +
  2926. " ,:USERID\n" +
  2927. ")";
  2928. paras = new OracleParameter[]
  2929. {
  2930. new OracleParameter(":GroutingLineDetailID", OracleDbType.Int32,
  2931. item["GroutingLineDetailID"], ParameterDirection.Input),
  2932. new OracleParameter(":changeID", OracleDbType.Int32,
  2933. mouldHistoryID, ParameterDirection.Input),
  2934. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2935. item["MouldID"], ParameterDirection.Input),
  2936. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2937. item["MOULDCODE"], ParameterDirection.Input),
  2938. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  2939. item["MOULDBARCODE"], ParameterDirection.Input),
  2940. new OracleParameter(":GoodsCodeAfter", OracleDbType.NVarchar2,
  2941. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2942. new OracleParameter(":GoodsIDAfter", OracleDbType.Int32,
  2943. cre.Properties["GoodsID"], ParameterDirection.Input),
  2944. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2945. item["GOODSID"], ParameterDirection.Input),
  2946. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2947. item["GOODSCODE"], ParameterDirection.Input),
  2948. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2949. mouldOperationType, ParameterDirection.Input),
  2950. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  2951. item["MOULDSTATUS"], ParameterDirection.Input),
  2952. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  2953. item["GROUTINGNUM"], ParameterDirection.Input),
  2954. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2955. cre.Properties["Remarks"], ParameterDirection.Input),
  2956. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2957. sUserInfo.AccountID, ParameterDirection.Input),
  2958. new OracleParameter(":USERID", OracleDbType.Int32,
  2959. sUserInfo.UserID, ParameterDirection.Input),
  2960. };
  2961. retrunRow += con.ExecuteNonQuery(sql, paras);
  2962. if (mouldStatus == 2)
  2963. {
  2964. // 改成型线明细的产品型号
  2965. sql = "UPDATE TP_PC_GroutingLineDetail gld\n" +
  2966. " SET gld.goodsid = :goodsid\n" +
  2967. " ,gld.updateuserid = :userid\n" +
  2968. " WHERE gld.GroutingLineDetailID = :DetailID and gld.mouldid = :mouldid";
  2969. paras = new OracleParameter[]
  2970. {
  2971. new OracleParameter(":goodsid", OracleDbType.Int32,
  2972. cre.Properties["GoodsID"], ParameterDirection.Input),
  2973. new OracleParameter(":DetailID", OracleDbType.Int32,
  2974. item["GroutingLineDetailID"], ParameterDirection.Input),
  2975. new OracleParameter(":userid", OracleDbType.Int32,
  2976. sUserInfo.UserID, ParameterDirection.Input),
  2977. new OracleParameter(":mouldid", OracleDbType.Int32,
  2978. item["MouldID"], ParameterDirection.Input),
  2979. };
  2980. retrunRow += con.ExecuteNonQuery(sql, paras);
  2981. }
  2982. #region SAP模具变更接口传值
  2983. if (goods.ToString()!=item["GOODSID"].ToString() && (OPERATIONTYPE.Rows[0]["OPERATIONTYPE"].ToString() == "8" || OPERATIONTYPE.Rows[0]["OPERATIONTYPE"].ToString() == "-1"))
  2984. {
  2985. sql = @"SELECT
  2986. m.MouldID,
  2987. m.MOULDBARCODE,
  2988. (SELECT g.mouldmaterialcode FROM tp_mst_goods g WHERE g.goodsid = :goodsID ) AS 变更后,
  2989. g.mouldmaterialcode AS 变更前,
  2990. m.STANDARDGROUTINGSUM - m.GroutingNum as 剩余注浆次数,
  2991. CASE WHEN INSTR(GL.GROUTINGLINECODE, 'A') = 1 THEN '2110'
  2992. WHEN (INSTR(GL.GROUTINGLINECODE, 'B') = 1 OR INSTR(GL.GROUTINGLINECODE, 'D') = 1) THEN '2210'
  2993. WHEN INSTR(GL.GROUTINGLINECODE, 'C') = 1 THEN '2310'
  2994. ELSE '3001' END AS 库存地点
  2995. FROM tp_pc_mould m
  2996. left join tp_mst_goods g on m.goodsid = g.goodsid
  2997. LEFT JOIN TP_PC_MOULDCHANGEHISTORY mhis on mhis.MOULDID=m.MOULDID
  2998. LEFT JOIN TP_PC_GROUTINGLINEDETAIL gd on gd.GROUTINGLINEDETAILID=mhis.GROUTINGLINEDETAILID
  2999. LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gd.GROUTINGLINEID
  3000. WHERE m.MouldID =:MouldIDs
  3001. AND m.ACCOUNTID=:accountid
  3002. AND m.VALUEFLAG='1'
  3003. AND (mhis.OPERATIONTYPE='8')
  3004. AND MHIS.CREATETIME=(SELECT MAX(CREATETIME) FROM TP_PC_MOULDCHANGEHISTORY WHERE MouldID =:MouldIDs AND ( OPERATIONTYPE='8')) ";
  3005. paras = new OracleParameter[]
  3006. {
  3007. new OracleParameter(":accountid", OracleDbType.NVarchar2, sUserInfo.AccountID, ParameterDirection.Input),
  3008. new OracleParameter(":MouldIDs", OracleDbType.NVarchar2, item["MouldID"], ParameterDirection.Input),
  3009. new OracleParameter(":goodsID", OracleDbType.NVarchar2, goods.ToString(), ParameterDirection.Input),
  3010. };
  3011. DataTable dt = con.GetSqlResultToDt(sql, paras);
  3012. string ZTYPE;
  3013. string ZMSG;
  3014. if (dt != null && dt.Rows.Count > 0)
  3015. {
  3016. ZPPFM050(DateTime.Now.Date.ToString("yyyyMMdd"), dt, out ZTYPE, out ZMSG);
  3017. string upsql = string.Empty;
  3018. if ("S".Equals(ZTYPE))
  3019. {
  3020. //数据库写入日志表名TP_SAP_MOULDCHANGELOG(成功);
  3021. upsql = @"INSERT INTO TP_SAP_MOULDCHANGELOG(WERKS,MOULDID,MOULDBARCODE,MATERIALCODEFORMER,MATERIALCODEAFTER,INVENTORYPLACE,MSGTY,MSGTX)
  3022. VALUES(5000,:MOULDID,:MOULDBARCODE,:MATERIALCODEFORMER,:MATERIALCODEAFTER,:INVENTORYPLACE,:MSGTY,:MSGTX)";
  3023. paras = new OracleParameter[]
  3024. {
  3025. new OracleParameter(":MOULDID", OracleDbType.NVarchar2, dt.Rows[0]["MouldID"].ToString(), ParameterDirection.Input),
  3026. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2, dt.Rows[0]["MOULDBARCODE"].ToString(), ParameterDirection.Input),
  3027. new OracleParameter(":MATERIALCODEFORMER", OracleDbType.NVarchar2, dt.Rows[0]["变更前"].ToString(), ParameterDirection.Input),
  3028. new OracleParameter(":MATERIALCODEAFTER", OracleDbType.NVarchar2, dt.Rows[0]["变更后"].ToString(), ParameterDirection.Input),
  3029. new OracleParameter(":INVENTORYPLACE", OracleDbType.NVarchar2, dt.Rows[0]["库存地点"].ToString(), ParameterDirection.Input),
  3030. new OracleParameter(":MSGTY", OracleDbType.NVarchar2, ZTYPE, ParameterDirection.Input),
  3031. new OracleParameter(":MSGTX", OracleDbType.NVarchar2, ZMSG, ParameterDirection.Input),
  3032. };
  3033. con.ExecuteNonQuery(upsql, paras);
  3034. sre.Message = "";
  3035. sre.Status = Constant.ServiceResultStatus.Success;
  3036. }
  3037. else if ("E".Equals(ZTYPE))
  3038. {
  3039. //数据库写入日志表名TP_SAP_MOULDCHANGELOG(失败);
  3040. upsql = @"INSERT INTO TP_SAP_MOULDCHANGELOG(WERKS,MOULDID,MOULDBARCODE,MATERIALCODEFORMER,MATERIALCODEAFTER,INVENTORYPLACE,MSGTY,MSGTX)
  3041. VALUES(5000,:MOULDID,:MOULDBARCODE,:MATERIALCODEFORMER,:MATERIALCODEAFTER,:INVENTORYPLACE,:MSGTY,:MSGTX)";
  3042. paras = new OracleParameter[]
  3043. {
  3044. new OracleParameter(":MOULDID", OracleDbType.NVarchar2, dt.Rows[0]["MouldID"].ToString(), ParameterDirection.Input),
  3045. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2, dt.Rows[0]["MOULDBARCODE"].ToString(), ParameterDirection.Input),
  3046. new OracleParameter(":MATERIALCODEFORMER", OracleDbType.NVarchar2, dt.Rows[0]["变更前"].ToString(), ParameterDirection.Input),
  3047. new OracleParameter(":MATERIALCODEAFTER", OracleDbType.NVarchar2, dt.Rows[0]["变更后"].ToString(), ParameterDirection.Input),
  3048. new OracleParameter(":INVENTORYPLACE", OracleDbType.NVarchar2, dt.Rows[0]["库存地点"].ToString(), ParameterDirection.Input),
  3049. new OracleParameter(":MSGTY", OracleDbType.NVarchar2, ZTYPE, ParameterDirection.Input),
  3050. new OracleParameter(":MSGTX", OracleDbType.NVarchar2, ZMSG, ParameterDirection.Input),
  3051. };
  3052. con.ExecuteNonQuery(upsql, paras);
  3053. con.Commit();
  3054. sre.Message = ZMSG;
  3055. sre.Status = Constant.ServiceResultStatus.Other;
  3056. return sre;
  3057. }
  3058. }
  3059. }
  3060. #endregion
  3061. //模具变更sql
  3062. sql = "UPDATE tp_pc_mould m\n" +
  3063. " SET m.goodsid = :goodsid\n" +
  3064. " ,m.goodscode = :goodscode\n" +
  3065. " ,m.updateuserid = :userid\n" +
  3066. " ,m.lastchangehistoryid = :changeid\n" +
  3067. " WHERE m.mouldid = :mouldid";
  3068. paras = new OracleParameter[]
  3069. {
  3070. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  3071. cre.Properties["GoodsCode"], ParameterDirection.Input),
  3072. new OracleParameter(":goodsid", OracleDbType.Int32,
  3073. cre.Properties["GoodsID"], ParameterDirection.Input),
  3074. new OracleParameter(":changeid", OracleDbType.Int32,
  3075. mouldHistoryID, ParameterDirection.Input),
  3076. new OracleParameter(":userid", OracleDbType.Int32,
  3077. sUserInfo.UserID, ParameterDirection.Input),
  3078. new OracleParameter(":mouldid", OracleDbType.Int32,
  3079. item["MouldID"], ParameterDirection.Input),
  3080. };
  3081. retrunRow += con.ExecuteNonQuery(sql, paras);
  3082. }
  3083. #region 转模具料号SAP
  3084. //待产
  3085. //sql = "SELECT m.MouldID\n" +
  3086. // " ,m.MouldCode\n" +
  3087. // " ,m.MouldBarcode\n" +
  3088. // " ,m.GoodsID\n" +
  3089. // " ,m.GoodsCode\n" +
  3090. // " ,m.GroutingNum\n" +
  3091. // " ,m.MouldStatus\n" +
  3092. // " ,m.GroutingLineDetailID\n" +
  3093. // " ,g.mouldmaterialcode\n" +
  3094. // " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  3095. // " FROM tp_pc_mould m\n" +
  3096. // " left join tp_mst_goods g on m.goodsid = g.goodsid\n" +
  3097. // " WHERE m.accountid = :accountid\n" +
  3098. // " AND m.valueflag = '1'\n" +
  3099. // " AND m.MouldID in (" + cre.Properties["MouldIDs"] + ")\n" +
  3100. // " AND m.MOULDSTATUS = 3\n";
  3101. //paras = new OracleParameter[]
  3102. //{
  3103. // new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  3104. //};
  3105. //mouldTable = con.GetSqlResultToDt(sql, paras);
  3106. //string ZTYPE;
  3107. //string ZMSG;
  3108. //DataTable dt = new DataTable();
  3109. //// 查询更新后的产品编码-物料编码
  3110. //string sqlString = "SELECT g.mouldmaterialcode FROM tp_mst_goods g WHERE g.goodscode = :goodsCode";
  3111. //paras = new OracleParameter[]
  3112. //{
  3113. // new OracleParameter(":goodsCode", OracleDbType.NVarchar2,cre.Properties["GoodsCode"].ToString(), ParameterDirection.Input),
  3114. //};
  3115. //DataTable newGoodsCodeTable = con.GetSqlResultToDt(sqlString, paras);
  3116. ////更新前的模具信息
  3117. //sqlString = "";
  3118. //DataTable dtResult = ZPPFM050(DateTime.Now.Date.ToString("yyyyMMdd"), dt, out ZTYPE, out ZMSG);
  3119. #endregion
  3120. #endregion
  3121. }
  3122. // 模具领用
  3123. else if (mouldOperationType == (int)Constant.MouldOperationType.InvToOut)
  3124. {
  3125. #region
  3126. foreach (DataRow item in mouldTable.Rows)
  3127. {
  3128. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3129. if (mouldStatus != 1)
  3130. {
  3131. continue;
  3132. }
  3133. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3134. sql =
  3135. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3136. " (CHANGEID\n" +
  3137. " ,MOULDID\n" +
  3138. " ,MOULDCODE\n" +
  3139. " ,MOULDBARCODE\n" +
  3140. " ,GOODSID\n" +
  3141. " ,GOODSCODE\n" +
  3142. " ,OPERATIONTYPE\n" +
  3143. " ,MOULDSTATUS\n" +
  3144. " ,MOULDSTATUSAFTER\n" +
  3145. " ,GROUTINGNUM\n" +
  3146. " ,REMARKS\n" +
  3147. " ,CHANGEFLAG\n" +
  3148. " ,ACCOUNTID\n" +
  3149. " ,CREATEUSERID)\n" +
  3150. " Values( :changeID\n" +
  3151. " ,:MOULDID\n" +
  3152. " ,:MOULDCODE\n" +
  3153. " ,:MOULDBARCODE\n" +
  3154. " ,:GOODSID\n" +
  3155. " ,:GOODSCODE\n" +
  3156. " ,:OPERATIONTYPE\n" +
  3157. " ,:MOULDSTATUS\n" +
  3158. " ,:MOULDSTATUSAFTER\n" +
  3159. " ,:GROUTINGNUM\n" +
  3160. " ,:REMARKS\n" +
  3161. " ,'2'\n" +
  3162. " ,:ACCOUNTID\n" +
  3163. " ,:USERID\n" +
  3164. ")";
  3165. paras = new OracleParameter[]
  3166. {
  3167. new OracleParameter(":changeID", OracleDbType.Int32,
  3168. mouldHistoryID, ParameterDirection.Input),
  3169. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3170. item["MouldID"], ParameterDirection.Input),
  3171. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3172. item["MOULDCODE"], ParameterDirection.Input),
  3173. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3174. item["MOULDBARCODE"], ParameterDirection.Input),
  3175. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3176. item["GOODSID"], ParameterDirection.Input),
  3177. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3178. item["GOODSCODE"], ParameterDirection.Input),
  3179. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3180. mouldOperationType, ParameterDirection.Input),
  3181. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3182. (int)Constant.MouldStatus.Out, ParameterDirection.Input),
  3183. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3184. item["MOULDSTATUS"], ParameterDirection.Input),
  3185. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3186. item["GROUTINGNUM"], ParameterDirection.Input),
  3187. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3188. cre.Properties["Remarks"], ParameterDirection.Input),
  3189. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3190. sUserInfo.AccountID, ParameterDirection.Input),
  3191. new OracleParameter(":USERID", OracleDbType.Int32,
  3192. sUserInfo.UserID, ParameterDirection.Input),
  3193. };
  3194. retrunRow += con.ExecuteNonQuery(sql, paras);
  3195. sql = "UPDATE tp_pc_mould m\n" +
  3196. " SET m.premouldstatus = m.mouldstatus\n" +
  3197. " ,m.mouldstatus = :mouldstatus\n" +
  3198. " ,m.updateuserid = :userid\n" +
  3199. " ,m.lastchangehistoryid = :changeid\n" +
  3200. " WHERE m.mouldid = :mouldid";
  3201. paras = new OracleParameter[]
  3202. {
  3203. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3204. (int)Constant.MouldStatus.Out, ParameterDirection.Input),
  3205. new OracleParameter(":changeid", OracleDbType.Int32,
  3206. mouldHistoryID, ParameterDirection.Input),
  3207. new OracleParameter(":userid", OracleDbType.Int32,
  3208. sUserInfo.UserID, ParameterDirection.Input),
  3209. new OracleParameter(":mouldid", OracleDbType.Int32,
  3210. item["MouldID"], ParameterDirection.Input),
  3211. };
  3212. retrunRow += con.ExecuteNonQuery(sql, paras);
  3213. }
  3214. #endregion
  3215. }
  3216. // 模具回收
  3217. else if (mouldOperationType == (int)Constant.MouldOperationType.OutToInv)
  3218. {
  3219. #region
  3220. foreach (DataRow item in mouldTable.Rows)
  3221. {
  3222. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3223. if (mouldStatus != 3)
  3224. {
  3225. continue;
  3226. }
  3227. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3228. sql =
  3229. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3230. " (CHANGEID\n" +
  3231. " ,MOULDID\n" +
  3232. " ,MOULDCODE\n" +
  3233. " ,MOULDBARCODE\n" +
  3234. " ,GOODSID\n" +
  3235. " ,GOODSCODE\n" +
  3236. " ,OPERATIONTYPE\n" +
  3237. " ,MOULDSTATUS\n" +
  3238. " ,MOULDSTATUSAFTER\n" +
  3239. " ,GROUTINGNUM\n" +
  3240. " ,REMARKS\n" +
  3241. " ,CHANGEFLAG\n" +
  3242. " ,ACCOUNTID\n" +
  3243. " ,CREATEUSERID)\n" +
  3244. " Values( :changeID\n" +
  3245. " ,:MOULDID\n" +
  3246. " ,:MOULDCODE\n" +
  3247. " ,:MOULDBARCODE\n" +
  3248. " ,:GOODSID\n" +
  3249. " ,:GOODSCODE\n" +
  3250. " ,:OPERATIONTYPE\n" +
  3251. " ,:MOULDSTATUS\n" +
  3252. " ,:MOULDSTATUSAFTER\n" +
  3253. " ,:GROUTINGNUM\n" +
  3254. " ,:REMARKS\n" +
  3255. " ,'1'\n" +
  3256. " ,:ACCOUNTID\n" +
  3257. " ,:USERID\n" +
  3258. ")";
  3259. paras = new OracleParameter[]
  3260. {
  3261. new OracleParameter(":changeID", OracleDbType.Int32,
  3262. mouldHistoryID, ParameterDirection.Input),
  3263. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3264. item["MouldID"], ParameterDirection.Input),
  3265. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3266. item["MOULDCODE"], ParameterDirection.Input),
  3267. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3268. item["MOULDBARCODE"], ParameterDirection.Input),
  3269. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3270. item["GOODSID"], ParameterDirection.Input),
  3271. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3272. item["GOODSCODE"], ParameterDirection.Input),
  3273. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3274. mouldOperationType, ParameterDirection.Input),
  3275. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3276. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3277. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3278. item["MOULDSTATUS"], ParameterDirection.Input),
  3279. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3280. item["GROUTINGNUM"], ParameterDirection.Input),
  3281. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3282. cre.Properties["Remarks"], ParameterDirection.Input),
  3283. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3284. sUserInfo.AccountID, ParameterDirection.Input),
  3285. new OracleParameter(":USERID", OracleDbType.Int32,
  3286. sUserInfo.UserID, ParameterDirection.Input),
  3287. };
  3288. retrunRow += con.ExecuteNonQuery(sql, paras);
  3289. sql = "UPDATE tp_pc_mould m\n" +
  3290. " SET m.premouldstatus = m.mouldstatus\n" +
  3291. " ,m.mouldstatus = :mouldstatus\n" +
  3292. " ,m.updateuserid = :userid\n" +
  3293. " ,m.lastchangehistoryid = :changeid\n" +
  3294. " WHERE m.mouldid = :mouldid";
  3295. paras = new OracleParameter[]
  3296. {
  3297. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3298. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3299. new OracleParameter(":changeid", OracleDbType.Int32,
  3300. mouldHistoryID, ParameterDirection.Input),
  3301. new OracleParameter(":userid", OracleDbType.Int32,
  3302. sUserInfo.UserID, ParameterDirection.Input),
  3303. new OracleParameter(":mouldid", OracleDbType.Int32,
  3304. item["MouldID"], ParameterDirection.Input),
  3305. };
  3306. retrunRow += con.ExecuteNonQuery(sql, paras);
  3307. }
  3308. #endregion
  3309. }
  3310. // 报废撤销
  3311. else if (mouldOperationType == (int)Constant.MouldOperationType.ScrapToInv)
  3312. {
  3313. #region
  3314. foreach (DataRow item in mouldTable.Rows)
  3315. {
  3316. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3317. if (mouldStatus != 4)
  3318. {
  3319. continue;
  3320. }
  3321. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3322. sql =
  3323. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3324. " (CHANGEID\n" +
  3325. " ,MOULDID\n" +
  3326. " ,MOULDCODE\n" +
  3327. " ,MOULDBARCODE\n" +
  3328. " ,GOODSID\n" +
  3329. " ,GOODSCODE\n" +
  3330. " ,OPERATIONTYPE\n" +
  3331. " ,MOULDSTATUS\n" +
  3332. " ,MOULDSTATUSAFTER\n" +
  3333. " ,GROUTINGNUM\n" +
  3334. " ,REMARKS\n" +
  3335. " ,CHANGEFLAG\n" +
  3336. " ,ACCOUNTID\n" +
  3337. " ,CREATEUSERID)\n" +
  3338. " Values( :changeID\n" +
  3339. " ,:MOULDID\n" +
  3340. " ,:MOULDCODE\n" +
  3341. " ,:MOULDBARCODE\n" +
  3342. " ,:GOODSID\n" +
  3343. " ,:GOODSCODE\n" +
  3344. " ,:OPERATIONTYPE\n" +
  3345. " ,:MOULDSTATUS\n" +
  3346. " ,:MOULDSTATUSAFTER\n" +
  3347. " ,:GROUTINGNUM\n" +
  3348. " ,:REMARKS\n" +
  3349. " ,'1'\n" +
  3350. " ,:ACCOUNTID\n" +
  3351. " ,:USERID\n" +
  3352. ")";
  3353. paras = new OracleParameter[]
  3354. {
  3355. new OracleParameter(":changeID", OracleDbType.Int32,
  3356. mouldHistoryID, ParameterDirection.Input),
  3357. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3358. item["MouldID"], ParameterDirection.Input),
  3359. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3360. item["MOULDCODE"], ParameterDirection.Input),
  3361. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3362. item["MOULDBARCODE"], ParameterDirection.Input),
  3363. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3364. item["GOODSID"], ParameterDirection.Input),
  3365. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3366. item["GOODSCODE"], ParameterDirection.Input),
  3367. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3368. mouldOperationType, ParameterDirection.Input),
  3369. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3370. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3371. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3372. item["MOULDSTATUS"], ParameterDirection.Input),
  3373. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3374. item["GROUTINGNUM"], ParameterDirection.Input),
  3375. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3376. cre.Properties["Remarks"], ParameterDirection.Input),
  3377. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3378. sUserInfo.AccountID, ParameterDirection.Input),
  3379. new OracleParameter(":USERID", OracleDbType.Int32,
  3380. sUserInfo.UserID, ParameterDirection.Input),
  3381. };
  3382. retrunRow += con.ExecuteNonQuery(sql, paras);
  3383. sql = "UPDATE tp_pc_mould m\n" +
  3384. " SET m.premouldstatus = m.mouldstatus\n" +
  3385. " ,m.mouldstatus = :mouldstatus\n" +
  3386. " ,m.updateuserid = :userid\n" +
  3387. " ,m.lastchangehistoryid = :changeid\n" +
  3388. " ,m.ScrapDate = null\n" +
  3389. " ,m.ScrapUserID = null\n" +
  3390. " ,m.ScrapUserCode = null\n" +
  3391. " ,m.ScrapReason = null\n" +
  3392. " ,m.ScrapResponsibility = null\n" +
  3393. " WHERE m.mouldid = :mouldid";
  3394. paras = new OracleParameter[]
  3395. {
  3396. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3397. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3398. new OracleParameter(":changeid", OracleDbType.Int32,
  3399. mouldHistoryID, ParameterDirection.Input),
  3400. new OracleParameter(":userid", OracleDbType.Int32,
  3401. sUserInfo.UserID, ParameterDirection.Input),
  3402. new OracleParameter(":mouldid", OracleDbType.Int32,
  3403. item["MouldID"], ParameterDirection.Input),
  3404. };
  3405. retrunRow += con.ExecuteNonQuery(sql, paras);
  3406. }
  3407. #endregion
  3408. }
  3409. // 报废
  3410. else if (mouldOperationType == (int)Constant.MouldOperationType.InvToScrap)
  3411. {
  3412. #region
  3413. foreach (DataRow item in mouldTable.Rows)
  3414. {
  3415. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3416. if (mouldStatus != 1 && mouldStatus != 3)
  3417. {
  3418. continue;
  3419. }
  3420. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3421. sql =
  3422. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3423. " (CHANGEID\n" +
  3424. " ,MOULDID\n" +
  3425. " ,MOULDCODE\n" +
  3426. " ,MOULDBARCODE\n" +
  3427. " ,GOODSID\n" +
  3428. " ,GOODSCODE\n" +
  3429. " ,OPERATIONTYPE\n" +
  3430. " ,MOULDSTATUS\n" +
  3431. " ,MOULDSTATUSAFTER\n" +
  3432. " ,GROUTINGNUM\n" +
  3433. " ,REMARKS\n" +
  3434. " ,CHANGEFLAG\n" +
  3435. " ,ScrapReason\n" +
  3436. " ,ScrapResponsibility\n" +
  3437. " ,ACCOUNTID\n" +
  3438. " ,CREATEUSERID)\n" +
  3439. " Values( :changeID\n" +
  3440. " ,:MOULDID\n" +
  3441. " ,:MOULDCODE\n" +
  3442. " ,:MOULDBARCODE\n" +
  3443. " ,:GOODSID\n" +
  3444. " ,:GOODSCODE\n" +
  3445. " ,:OPERATIONTYPE\n" +
  3446. " ,:MOULDSTATUS\n" +
  3447. " ,:MOULDSTATUSAFTER\n" +
  3448. " ,:GROUTINGNUM\n" +
  3449. " ,:REMARKS\n" +
  3450. " ,:CHANGEFLAG\n" +
  3451. " ,:ScrapReason\n" +
  3452. " ,:ScrapResponsibility\n" +
  3453. " ,:ACCOUNTID\n" +
  3454. " ,:USERID\n" +
  3455. ")";
  3456. paras = new OracleParameter[]
  3457. {
  3458. new OracleParameter(":changeID", OracleDbType.Int32,
  3459. mouldHistoryID, ParameterDirection.Input),
  3460. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3461. item["MouldID"], ParameterDirection.Input),
  3462. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3463. item["MOULDCODE"], ParameterDirection.Input),
  3464. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3465. item["MOULDBARCODE"], ParameterDirection.Input),
  3466. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3467. item["GOODSID"], ParameterDirection.Input),
  3468. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3469. item["GOODSCODE"], ParameterDirection.Input),
  3470. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3471. (int)(mouldStatus == 1 ? Constant.MouldOperationType.InvToScrap : Constant.MouldOperationType.OutToScrap)
  3472. , ParameterDirection.Input),
  3473. new OracleParameter(":CHANGEFLAG", OracleDbType.Char,
  3474. (mouldStatus == 1 ? "2" : "0")
  3475. , ParameterDirection.Input),
  3476. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3477. (int)Constant.MouldStatus.Scrap, ParameterDirection.Input),
  3478. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3479. item["MOULDSTATUS"], ParameterDirection.Input),
  3480. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3481. item["GROUTINGNUM"], ParameterDirection.Input),
  3482. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3483. cre.Properties["Remarks"], ParameterDirection.Input),
  3484. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3485. sUserInfo.AccountID, ParameterDirection.Input),
  3486. new OracleParameter(":USERID", OracleDbType.Int32,
  3487. sUserInfo.UserID, ParameterDirection.Input),
  3488. new OracleParameter(":ScrapReason", OracleDbType.Int32,
  3489. cre.Properties["ScrapReason"], ParameterDirection.Input),
  3490. new OracleParameter(":ScrapResponsibility", OracleDbType.NVarchar2,
  3491. cre.Properties["ScrapResponsibility"], ParameterDirection.Input),
  3492. };
  3493. retrunRow += con.ExecuteNonQuery(sql, paras);
  3494. sql = "UPDATE tp_pc_mould m\n" +
  3495. " SET m.premouldstatus = m.mouldstatus\n" +
  3496. " ,m.mouldstatus = :mouldstatus\n" +
  3497. " ,m.updateuserid = :userid\n" +
  3498. " ,m.lastchangehistoryid = :changeid\n" +
  3499. " ,m.scrapdate = SYSDATE\n" +
  3500. " ,m.scrapuserid = :scrapuserid\n" +
  3501. " ,m.scrapusercode = :scrapusercode\n" +
  3502. " ,m.ScrapReason = :ScrapReason\n" +
  3503. " ,m.ScrapResponsibility = :ScrapResponsibility\n" +
  3504. " WHERE m.mouldid = :mouldid";
  3505. paras = new OracleParameter[]
  3506. {
  3507. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3508. (int)Constant.MouldStatus.Scrap, ParameterDirection.Input),
  3509. new OracleParameter(":changeid", OracleDbType.Int32,
  3510. mouldHistoryID, ParameterDirection.Input),
  3511. new OracleParameter(":userid", OracleDbType.Int32,
  3512. sUserInfo.UserID, ParameterDirection.Input),
  3513. new OracleParameter(":mouldid", OracleDbType.Int32,
  3514. item["MouldID"], ParameterDirection.Input),
  3515. new OracleParameter(":scrapuserid", OracleDbType.Int32,
  3516. sUserInfo.UserID, ParameterDirection.Input),
  3517. new OracleParameter(":scrapusercode", OracleDbType.NVarchar2,
  3518. sUserInfo.UserCode, ParameterDirection.Input),
  3519. new OracleParameter(":ScrapReason", OracleDbType.Int32,
  3520. cre.Properties["ScrapReason"], ParameterDirection.Input),
  3521. new OracleParameter(":ScrapResponsibility", OracleDbType.NVarchar2,
  3522. cre.Properties["ScrapResponsibility"], ParameterDirection.Input),
  3523. };
  3524. retrunRow += con.ExecuteNonQuery(sql, paras);
  3525. }
  3526. #endregion
  3527. }
  3528. // 撤销报工
  3529. else if (mouldOperationType == (int)Constant.MouldOperationType.UnMouldPlan)
  3530. {
  3531. //校验是否存在未报工模具
  3532. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS NULL", null);
  3533. if (mouldPlanDt.Length > 0)
  3534. {
  3535. sre.Message = "存在未报工模具!";
  3536. sre.Status = Constant.ServiceResultStatus.Other;
  3537. return sre;
  3538. }
  3539. foreach (DataRow item in mouldTable.Rows)
  3540. {
  3541. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  3542. " FROM t_mould_plan mp\n" +
  3543. " WHERE mp.plan_id = :mould_plan_id";
  3544. OracleParameter[] paras1 = new OracleParameter[]
  3545. {
  3546. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3547. item["mould_plan_id"], ParameterDirection.Input),
  3548. };
  3549. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  3550. string plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  3551. // 撤销报工(清空模具关联模具生产计划id)
  3552. sqlString = "UPDATE tp_pc_mould\n" +
  3553. " SET mould_plan_id = NULL\n" +
  3554. " ,updateuserid =:userid\n" +
  3555. " WHERE mouldid = :mouldid";
  3556. paras = new OracleParameter[]
  3557. {
  3558. new OracleParameter(":userid", OracleDbType.Int32,
  3559. sUserInfo.UserID, ParameterDirection.Input),
  3560. new OracleParameter(":mouldid", OracleDbType.Int32,
  3561. item["MouldID"], ParameterDirection.Input),
  3562. };
  3563. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3564. // 报工计划 完成数量-1
  3565. sqlString = "UPDATE t_mould_plan\n" +
  3566. " SET make_qty = make_qty - 1\n" +
  3567. " ,updateuserid =:userid\n" +
  3568. " WHERE plan_id = :plan_id";
  3569. paras = new OracleParameter[]
  3570. {
  3571. new OracleParameter(":userid", OracleDbType.Int32,
  3572. sUserInfo.UserID, ParameterDirection.Input),
  3573. new OracleParameter(":plan_id", OracleDbType.Int32,
  3574. item["mould_plan_id"], ParameterDirection.Input),
  3575. };
  3576. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3577. //报工计划履历
  3578. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  3579. " (his_type\n" +
  3580. " ,plan_id\n" +
  3581. " ,plan_code\n" +
  3582. " ,mouldid\n" +
  3583. " ,goodsid\n" +
  3584. " ,materialsupplier\n" +
  3585. " ,remarks\n" +
  3586. " ,CREATEUSER\n" +
  3587. " ,accountid)\n" +
  3588. "VALUES\n" +
  3589. " (-1\n" +
  3590. " ,:plan_id\n" +
  3591. " ,:plan_code\n" +
  3592. " ,:mouldid\n" +
  3593. " ,:goodsid\n" +
  3594. " ,:materialsupplier\n" +
  3595. " ,:remarks\n" +
  3596. " ,:CREATEUSER\n" +
  3597. " ,:accountid)";
  3598. paras = new OracleParameter[]
  3599. {
  3600. new OracleParameter(":plan_id", OracleDbType.Int32,
  3601. item["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  3602. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  3603. plan_code ,ParameterDirection.Input),
  3604. new OracleParameter(":mouldid", OracleDbType.Int32,
  3605. item["MouldID"], ParameterDirection.Input),
  3606. new OracleParameter(":goodsid", OracleDbType.Int32,
  3607. item["GoodsID"] ,ParameterDirection.Input),
  3608. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  3609. item["MaterialSupplier"], ParameterDirection.Input),
  3610. new OracleParameter(":accountid", OracleDbType.Int32,
  3611. sUserInfo.AccountID, ParameterDirection.Input),
  3612. new OracleParameter(":remarks", OracleDbType.Varchar2,
  3613. cre.Properties["Remarks"] ,ParameterDirection.Input),
  3614. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  3615. sUserInfo.UserID, ParameterDirection.Input),
  3616. };
  3617. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3618. }
  3619. }
  3620. // 生产报工
  3621. else if (mouldOperationType == (int)Constant.MouldOperationType.MouldPlan)
  3622. {
  3623. int mould_plan_id = Convert.ToInt32(cre.Properties["mould_plan_id"]);
  3624. //校验是否存在已报工模具
  3625. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS not NULL", null);
  3626. if (mouldPlanDt.Length > 0)
  3627. {
  3628. sre.Message = "存在已报工模具!";
  3629. sre.Status = Constant.ServiceResultStatus.Other;
  3630. return sre;
  3631. }
  3632. DataView dataView = new DataView(mouldTable);
  3633. DataTable dts = dataView.ToTable(true, "GoodsID");
  3634. if (dts.Rows.Count > 1)
  3635. {
  3636. sre.Message = "存在不同的产品型号!";
  3637. sre.Status = Constant.ServiceResultStatus.Other;
  3638. return sre;
  3639. }
  3640. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  3641. " FROM t_mould_plan mp\n" +
  3642. " WHERE mp.plan_id = :mould_plan_id";
  3643. OracleParameter[] paras1 = new OracleParameter[]
  3644. {
  3645. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3646. mould_plan_id, ParameterDirection.Input),
  3647. };
  3648. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  3649. //生产计划未完成数量
  3650. int incomplete = Convert.ToInt32(dt.Rows[0]["incomplete"]);
  3651. if (incomplete < mouldTable.Rows.Count)
  3652. {
  3653. sre.Message = "报工数量大于生产计划未完成数量!";
  3654. sre.Status = Constant.ServiceResultStatus.Other;
  3655. return sre;
  3656. }
  3657. string plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  3658. foreach (DataRow item in mouldTable.Rows)
  3659. {
  3660. // 生产报工(清空模具关联模具生产计划id)
  3661. sqlString = "UPDATE tp_pc_mould\n" +
  3662. " SET mould_plan_id = :mould_plan_id\n" +
  3663. " ,updateuserid =:userid\n" +
  3664. " WHERE mouldid = :mouldid";
  3665. paras = new OracleParameter[]
  3666. {
  3667. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3668. mould_plan_id, ParameterDirection.Input),
  3669. new OracleParameter(":userid", OracleDbType.Int32,
  3670. sUserInfo.UserID, ParameterDirection.Input),
  3671. new OracleParameter(":mouldid", OracleDbType.Int32,
  3672. item["MouldID"], ParameterDirection.Input),
  3673. };
  3674. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3675. // 报工计划 完成数量+1
  3676. sqlString = "UPDATE t_mould_plan\n" +
  3677. " SET make_qty = make_qty + 1\n" +
  3678. " ,updateuserid =:userid\n" +
  3679. " WHERE plan_id = :plan_id";
  3680. paras = new OracleParameter[]
  3681. {
  3682. new OracleParameter(":userid", OracleDbType.Int32,
  3683. sUserInfo.UserID, ParameterDirection.Input),
  3684. new OracleParameter(":plan_id", OracleDbType.Int32,
  3685. mould_plan_id, ParameterDirection.Input),
  3686. };
  3687. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3688. //报工计划履历
  3689. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  3690. " (his_type\n" +
  3691. " ,plan_id\n" +
  3692. " ,plan_code\n" +
  3693. " ,mouldid\n" +
  3694. " ,goodsid\n" +
  3695. " ,materialsupplier\n" +
  3696. " ,remarks\n" +
  3697. " ,CREATEUSER\n" +
  3698. " ,accountid)\n" +
  3699. "VALUES\n" +
  3700. " (1\n" +
  3701. " ,:plan_id\n" +
  3702. " ,:plan_code\n" +
  3703. " ,:mouldid\n" +
  3704. " ,:goodsid\n" +
  3705. " ,:materialsupplier\n" +
  3706. " ,:remarks\n" +
  3707. " ,:CREATEUSER\n" +
  3708. " ,:accountid)";
  3709. paras = new OracleParameter[]
  3710. {
  3711. new OracleParameter(":plan_id", OracleDbType.Int32,
  3712. mould_plan_id, ParameterDirection.Input),// 模具生产计划id
  3713. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  3714. plan_code ,ParameterDirection.Input),
  3715. new OracleParameter(":mouldid", OracleDbType.Int32,
  3716. item["MouldID"], ParameterDirection.Input),
  3717. new OracleParameter(":goodsid", OracleDbType.Int32,
  3718. item["GoodsID"] ,ParameterDirection.Input),
  3719. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  3720. item["MaterialSupplier"], ParameterDirection.Input),
  3721. new OracleParameter(":accountid", OracleDbType.Int32,
  3722. sUserInfo.AccountID, ParameterDirection.Input),
  3723. new OracleParameter(":remarks", OracleDbType.Varchar2,
  3724. cre.Properties["Remarks"] ,ParameterDirection.Input),
  3725. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  3726. sUserInfo.UserID, ParameterDirection.Input),
  3727. };
  3728. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3729. }
  3730. }
  3731. con.Commit();
  3732. return sre;
  3733. }
  3734. catch (Exception ex)
  3735. {
  3736. throw ex;
  3737. }
  3738. finally
  3739. {
  3740. if (con.ConnState == ConnectionState.Open)
  3741. {
  3742. con.Disconnect();
  3743. }
  3744. }
  3745. }
  3746. /// <summary>
  3747. /// 保存试验标识
  3748. /// </summary>
  3749. /// <param name="sUserInfo"></param>
  3750. /// <returns></returns>
  3751. public static ServiceResultEntity SaveTestMouldFlag(SUserInfo sUserInfo, ClientRequestEntity cre)
  3752. {
  3753. ServiceResultEntity sre = new ServiceResultEntity();
  3754. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3755. try
  3756. {
  3757. string testMouldFlag = cre.Properties["TestMouldFlag"] + "";
  3758. con.Connect();
  3759. OracleParameter[] paras = null;
  3760. string sql = @"
  3761. SELECT DISTINCT G.GROUTINGLINEID
  3762. ,G.GROUTINGLINECODE
  3763. ,G.TESTFLAG
  3764. FROM TP_PC_GROUTINGLINE G
  3765. INNER JOIN TP_PC_GROUTINGLINEDETAIL GD
  3766. ON GD.GROUTINGLINEID = G.GROUTINGLINEID
  3767. WHERE INSTR(:MOULDIDS, ',' || GD.MOULDID || ',') > 0 ";
  3768. paras = new OracleParameter[]
  3769. {
  3770. new OracleParameter(":MOULDIDS", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  3771. };
  3772. DataTable dt = con.GetSqlResultToDt(sql, paras);
  3773. foreach (DataRow row in dt.Rows)
  3774. {
  3775. // 如果要改成‘0’,但成型线整线试验,则不允许改
  3776. if (testMouldFlag.Equals("0") && (row["TESTFLAG"] + "").Equals("1"))
  3777. {
  3778. sre.OtherStatus = -1;
  3779. sre.Message = row["GROUTINGLINECODE"] + "是试验成型线,不能改为非试验模具。";
  3780. return sre;
  3781. }
  3782. }
  3783. sql = @"
  3784. UPDATE TP_PC_MOULD M
  3785. SET M.TESTMOULDFLAG = :TESTMOULDFLAG,
  3786. M.UPDATEUSERID = :USERID
  3787. WHERE INSTR(:MOULDIDS, ',' || M.MOULDID || ',') > 0 ";
  3788. paras = new OracleParameter[]
  3789. {
  3790. new OracleParameter(":TESTMOULDFLAG", OracleDbType.Char, testMouldFlag, ParameterDirection.Input),
  3791. new OracleParameter(":USERID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  3792. new OracleParameter(":MOULDIDS", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  3793. };
  3794. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3795. sql = @"
  3796. INSERT INTO TP_PC_MOULDHISTORY
  3797. (MOULDID,
  3798. TESTMOULDFLAG,
  3799. ACCOUNTID,
  3800. CREATEUSERID)
  3801. VALUES
  3802. (:MOULDID,
  3803. :TESTMOULDFLAG,
  3804. :ACCOUNTID,
  3805. :USERID) ";
  3806. string[] mouldids = (cre.Properties["MouldIDs"] + "").Split(',');
  3807. foreach (string mouldid in mouldids)
  3808. {
  3809. if (!string.IsNullOrEmpty(mouldid))
  3810. {
  3811. paras = new OracleParameter[]
  3812. {
  3813. new OracleParameter(":MOULDID", OracleDbType.Varchar2, mouldid, ParameterDirection.Input),
  3814. new OracleParameter(":TESTMOULDFLAG", OracleDbType.Char, testMouldFlag, ParameterDirection.Input),
  3815. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  3816. new OracleParameter(":USERID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  3817. };
  3818. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3819. }
  3820. }
  3821. foreach (DataRow row in dt.Rows)
  3822. {
  3823. sql = @"
  3824. SELECT 1
  3825. FROM TP_PC_GROUTINGLINE G
  3826. INNER JOIN TP_PC_GROUTINGLINEDETAIL GD
  3827. ON GD.GROUTINGLINEID = G.GROUTINGLINEID
  3828. INNER JOIN TP_PC_MOULD M
  3829. ON M.MOULDID = GD.MOULDID
  3830. WHERE M.TESTMOULDFLAG = '0'
  3831. AND G.GROUTINGLINEID = :GROUTINGLINEID ";
  3832. paras = new OracleParameter[]
  3833. {
  3834. new OracleParameter(":GROUTINGLINEID", OracleDbType.Int32, row["GROUTINGLINEID"], ParameterDirection.Input),
  3835. };
  3836. object isExists = con.GetSqlResultToObj(sql, paras);
  3837. if (isExists == null)
  3838. {
  3839. sql = @"
  3840. UPDATE TP_PC_GROUTINGLINE
  3841. SET TESTFLAG = '1'
  3842. WHERE GROUTINGLINEID = :GROUTINGLINEID ";
  3843. paras = new OracleParameter[]
  3844. {
  3845. new OracleParameter(":GROUTINGLINEID", OracleDbType.Int32, row["GROUTINGLINEID"], ParameterDirection.Input),
  3846. };
  3847. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3848. }
  3849. }
  3850. con.Commit();
  3851. return sre;
  3852. }
  3853. catch (Exception ex)
  3854. {
  3855. throw ex;
  3856. }
  3857. finally
  3858. {
  3859. if (con.ConnState == ConnectionState.Open)
  3860. {
  3861. con.Disconnect();
  3862. }
  3863. }
  3864. }
  3865. /// <summary>
  3866. /// sap接口-模具型号变更-转模具料号接口 ZPPFM050
  3867. /// </summary>
  3868. /// <param name="sUserInfo"></param>
  3869. /// <param name="cre"></param>
  3870. /// <returns></returns>
  3871. public static void ZPPFM050(string BUDAT, DataTable dtTable, out string ZTYPE, out string ZMSG)
  3872. {
  3873. RfcConfigParameters rfcPara = new RfcConfigParameters();
  3874. rfcPara.Add(RfcConfigParameters.AppServerHost, appServerHost);
  3875. rfcPara.Add(RfcConfigParameters.SystemNumber, systemNumber);
  3876. rfcPara.Add(RfcConfigParameters.User, user);
  3877. rfcPara.Add(RfcConfigParameters.Password, password);
  3878. rfcPara.Add(RfcConfigParameters.Client, client);
  3879. rfcPara.Add(RfcConfigParameters.Name, "CON");
  3880. rfcPara.Add(RfcConfigParameters.Language, "ZH");
  3881. rfcPara.Add(RfcConfigParameters.PoolSize, "5");
  3882. rfcPara.Add(RfcConfigParameters.ConnectionIdleTimeout, "60");
  3883. RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfcPara);
  3884. RfcRepository rfcRep = rfcDest.Repository;
  3885. //接口API
  3886. IRfcFunction rfcApi = rfcRep.CreateFunction("ZPPFM050");
  3887. //WERKS CHAR 4 0 工厂 Y 5000
  3888. //MATNR_B CHAR 40 0 物料编号_转换前 Y 211860087N2000
  3889. //MATNR_A CHAR 40 0 物料编号_转换后 Y 211860088N2000
  3890. //MENGE QUAN 13 3 数量 Y 50
  3891. //MEINS UNIT 3 0 基本计量单位 Y CI
  3892. //BUDAT DATS 8 0 凭证中的过帐日期 Y 格式: yyyymmdd
  3893. //LGORT CHAR 4 0 库存地点 Y 2110、2210、2310
  3894. //输入参数
  3895. IRfcStructure imTable = rfcApi.GetStructure("IS_ITAB");
  3896. foreach (DataRow dr in dtTable.Rows)
  3897. {
  3898. imTable.SetValue("WERKS", "5000");
  3899. imTable.SetValue("MATNR_B", dr["变更前"]);
  3900. imTable.SetValue("MATNR_A", dr["变更后"]);
  3901. imTable.SetValue("MENGE", dr["剩余注浆次数"]);
  3902. imTable.SetValue("MEINS", "CI");
  3903. imTable.SetValue("BUDAT", BUDAT);
  3904. imTable.SetValue("LGORT", dr["库存地点"]);
  3905. }
  3906. //调用接口
  3907. rfcApi.Invoke(rfcDest);
  3908. //获取输出
  3909. ZTYPE = rfcApi.GetValue("ZTYPE").ToString();
  3910. ZMSG = rfcApi.GetValue("ZMSG").ToString();;
  3911. rfcDest = null;
  3912. rfcRep = null;
  3913. }
  3914. /// <summary>
  3915. /// IRfcTable转DataTable
  3916. /// </summary>
  3917. /// <param name="myrfcTable"></param>
  3918. /// <returns></returns>
  3919. private static DataTable GetDataTableFromRFCTable(IRfcTable myrfcTable)
  3920. {
  3921. DataTable loTable = new DataTable();
  3922. int liElement = 0;
  3923. for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
  3924. {
  3925. RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
  3926. loTable.Columns.Add(metadata.Name);
  3927. }
  3928. foreach (IRfcStructure Row in myrfcTable)
  3929. {
  3930. DataRow ldr = loTable.NewRow();
  3931. for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
  3932. {
  3933. RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
  3934. ldr[metadata.Name] = Row.GetString(metadata.Name);
  3935. }
  3936. loTable.Rows.Add(ldr);
  3937. }
  3938. return loTable;
  3939. }
  3940. #endregion
  3941. #region 模具盘点
  3942. /// <summary>
  3943. /// 获取盘点单列表(searchbox用)
  3944. /// </summary>
  3945. /// <param name="sUserInfo"></param>
  3946. /// <returns></returns>
  3947. public static ServiceResultEntity GetMouldCheckedList(SUserInfo sUserInfo, ClientRequestEntity cre)
  3948. {
  3949. ServiceResultEntity sre = new ServiceResultEntity();
  3950. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3951. try
  3952. {
  3953. con.Open();
  3954. string sqlString = @"select CheckedID inCheckedID,CheckedNo inCheckedNo,AccountDate,Remarks from TP_PC_MouldChecked where accountid=:accountid and ValueFlag=1 order by CheckedID desc";
  3955. List<OracleParameter> parameters = new List<OracleParameter>();
  3956. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  3957. sre.Data = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3958. return sre;
  3959. }
  3960. catch (Exception ex)
  3961. {
  3962. throw ex;
  3963. }
  3964. finally
  3965. {
  3966. if (con.ConnState == ConnectionState.Open)
  3967. {
  3968. con.Close();
  3969. }
  3970. }
  3971. }
  3972. /// <summary>
  3973. /// 获取盘点单列表(一览用)
  3974. /// </summary>
  3975. /// <param name="sUserInfo"></param>
  3976. /// <returns></returns>
  3977. public static ServiceResultEntity GetAllMouldCheckList(SUserInfo sUserInfo, ClientRequestEntity cre)
  3978. {
  3979. ServiceResultEntity sre = new ServiceResultEntity();
  3980. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3981. try
  3982. {
  3983. con.Open();
  3984. string sqlString = "SELECT gbc.checkedid\n" +
  3985. " ,gbc.checkedno\n" +
  3986. " ,gbc.checkname\n" +
  3987. " ,gbc.remarks\n" +
  3988. " ,gbc.createtime\n" +
  3989. " ,u.usercode CreateUserCode\n" +
  3990. " ,u.username CreateUserName\n" +
  3991. " FROM TP_PC_MouldChecked gbc\n" +
  3992. " LEFT JOIN tp_mst_user u\n" +
  3993. " ON u.userid = gbc.createuserid\n" +
  3994. " WHERE gbc.valueflag = '1'\n" +
  3995. " AND gbc.accountid = :accountid\n" +
  3996. " AND (:datebegin IS NULL OR gbc.createtime >= :datebegin)\n" +
  3997. " AND (:dateend IS NULL OR gbc.createtime <= :dateend)\n" +
  3998. " AND (:checkedno IS NULL OR instr(gbc.checkedno, :checkedno) > 0)\n" +
  3999. " AND (:checkname IS NULL OR instr(gbc.checkname, :checkname) > 0)\n" +
  4000. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)" +
  4001. " ORDER BY checkedid desc";
  4002. OracleParameter[] parameters = new OracleParameter[] {
  4003. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4004. new OracleParameter(":datebegin", OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  4005. new OracleParameter(":dateend", OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  4006. new OracleParameter(":checkedno", OracleDbType.NVarchar2, cre.Properties["checkedno"], ParameterDirection.Input),
  4007. new OracleParameter(":checkname", OracleDbType.NVarchar2, cre.Properties["checkname"], ParameterDirection.Input),
  4008. new OracleParameter(":remarks", OracleDbType.NVarchar2, cre.Properties["remarks"], ParameterDirection.Input),
  4009. };
  4010. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4011. return sre;
  4012. }
  4013. catch (Exception ex)
  4014. {
  4015. throw ex;
  4016. }
  4017. finally
  4018. {
  4019. if (con.ConnState == ConnectionState.Open)
  4020. {
  4021. con.Close();
  4022. }
  4023. }
  4024. }
  4025. /// <summary>
  4026. /// 获取盘点单明细(一览用)
  4027. /// </summary>
  4028. /// <param name="sUserInfo"></param>
  4029. /// <returns></returns>
  4030. public static ServiceResultEntity GetAllMouldCheckDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  4031. {
  4032. ServiceResultEntity sre = new ServiceResultEntity();
  4033. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4034. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4035. try
  4036. {
  4037. sre.Data = new DataSet();
  4038. con.Open();
  4039. string sqlString = "SELECT gbu.checkedid, u.userid, u.usercode, u.username\n" +
  4040. " FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4041. " LEFT JOIN tp_mst_user u\n" +
  4042. " ON u.userid = gbu.userid\n" +
  4043. " WHERE gbu.checkedid = :checkedid";
  4044. OracleParameter[] parameters = new OracleParameter[] {
  4045. new OracleParameter(":checkedid", OracleDbType.Int32, checkedID, ParameterDirection.Input),
  4046. };
  4047. DataTable userTable = con.GetSqlResultToDt(sqlString, parameters);
  4048. userTable.TableName = "UserTable";
  4049. sre.Data.Tables.Add(userTable);
  4050. sqlString = "SELECT 0 sel\n" +
  4051. " ,gbcd.CheckedID -- 盘点单ID\n" +
  4052. " ,gbcd.mouldBarCode -- 模具条码\n" +
  4053. " ,gbcd.MouldID\n" +
  4054. " ,mtype.dictionaryvalue MouldTypeName\n" +
  4055. " ,mms.SupplierName\n" +
  4056. " ,gbcd.ProductionDate\n" +
  4057. " ,gbcd.GoodsID\n" +
  4058. " ,gbcd.GoodsCode\n" +
  4059. " ,gbcd.UserID\n" +
  4060. " ,gbcd.UserCode\n" +
  4061. " ,gbcd.Weight\n" +
  4062. " ,gbcd.Cost\n" +
  4063. //" ,gbcd.StandardGroutingNum\n" +
  4064. " ,m.STANDARDGROUTINGSUM StandardGroutingNum\n" +
  4065. " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  4066. " ,m.GroutingNum\n" +
  4067. " ,m.GroutingDateBegin\n" +
  4068. " ,m.GroutingDateEnd\n" +
  4069. " ,m.LastGroutingBatchNo\n" +
  4070. " ,m.MouldStatus\n" +
  4071. //" ,gbcd.GroutingNum\n" +
  4072. //" ,gbcd.GroutingDateBegin\n" +
  4073. //" ,gbcd.GroutingDateEnd\n" +
  4074. //" ,gbcd.LastGroutingBatchNo\n" +
  4075. //" ,gbcd.MouldStatus\n" +
  4076. " ,ms.mouldstatusname\n" +
  4077. " ,gbcd.RepairFlag\n" +
  4078. " ,gbcd.ScrapDate\n" +
  4079. " ,gbcd.ScrapUserID\n" +
  4080. " ,gbcd.ScrapUserCode\n" +
  4081. " ,ScReason.dictionaryvalue ScrapReason\n" +
  4082. " ,gbcd.ScrapResponsibility\n" +
  4083. " ,gl.groutinglinecode\n" +
  4084. " ,gld.groutingmouldcode\n" +
  4085. " ,gbcd.Remarks -- 备注\n" +
  4086. " ,gbcd.CheckedFlag -- 盘点标识\n" +
  4087. " ,gbcd.CheckedDate -- 盘点时间\n" +
  4088. " ,CUser.usercode CheckedUserCode -- 盘点工号\n" +
  4089. " ,g.mouldmaterialcode\n" +
  4090. " FROM tp_pc_mouldcheckeddetail gbcd\n" +
  4091. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  4092. " ON mtype.dictionaryid = gbcd.mouldtype\n" +
  4093. " LEFT JOIN tp_pc_mould m\n" +
  4094. " ON m.MouldID = gbcd.MouldID\n" +
  4095. " LEFT JOIN tp_mst_goods g\n" +
  4096. " ON g.goodsid = m.goodsid\n" +
  4097. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  4098. " ON mms.SupplierID = gbcd.MaterialSupplier\n" +
  4099. " INNER JOIN tp_sys_mouldstatus ms\n" +
  4100. " ON ms.mouldstatusid = gbcd.MouldStatus\n" +
  4101. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  4102. " ON ScReason.dictionaryid = gbcd.ScrapReason\n" +
  4103. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  4104. " ON gld.groutinglinedetailid = gbcd.GroutingLineDetailID\n" +
  4105. " LEFT JOIN tp_pc_groutingline gl\n" +
  4106. " ON gl.groutinglineid = gld.groutinglineid\n" +
  4107. " LEFT JOIN tp_mst_user CUser\n" +
  4108. " ON CUser.userid = gbcd.CheckedUserID" +
  4109. " WHERE gbcd.checkedid = :checkedid\n" +
  4110. " AND gbcd.checkedflag = :checkedflag";
  4111. OracleParameter[] paras = new OracleParameter[]{
  4112. new OracleParameter(":checkedflag",OracleDbType.Int32,(int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  4113. new OracleParameter(":checkedid",OracleDbType.Int32,checkedID,ParameterDirection.Input),
  4114. };
  4115. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4116. paras[0].Value = (int)Constant.InCheckedFlag.InCheckeded;
  4117. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4118. paras[0].Value = (int)Constant.InCheckedFlag.InCheckedWin;
  4119. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4120. paras[0].Value = (int)Constant.InCheckedFlag.Loss;
  4121. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4122. return sre;
  4123. }
  4124. catch (Exception ex)
  4125. {
  4126. throw ex;
  4127. }
  4128. finally
  4129. {
  4130. if (con.ConnState == ConnectionState.Open)
  4131. {
  4132. con.Close();
  4133. }
  4134. }
  4135. }
  4136. /// <summary>
  4137. /// 获取盘点单信息(编辑用)
  4138. /// </summary>
  4139. /// <param name="sUserInfo"></param>
  4140. /// <returns></returns>
  4141. public static ServiceResultEntity GetMouldCheckedInfoForUpdate(SUserInfo sUserInfo, ClientRequestEntity cre)
  4142. {
  4143. ServiceResultEntity sre = new ServiceResultEntity();
  4144. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4145. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4146. try
  4147. {
  4148. con.Open();
  4149. string sqlString =
  4150. "SELECT gbc.checkedid, gbc.checkedno, gbc.checkname, gbc.remarks\n" +
  4151. " FROM TP_PC_MouldChecked gbc\n" +
  4152. " WHERE gbc.checkedid = :checkedid";
  4153. OracleParameter[] parameters = new OracleParameter[] {
  4154. new OracleParameter(":checkedid", OracleDbType.Int32, checkedID, ParameterDirection.Input)
  4155. };
  4156. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4157. sqlString =
  4158. "SELECT u.userid, u.usercode, u.username\n" +
  4159. " FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4160. " INNER JOIN tp_mst_user u\n" +
  4161. " ON u.userid = gbu.userid\n" +
  4162. " WHERE gbu.checkedid = :checkedid" +
  4163. " ORDER BY u.usercode";
  4164. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  4165. return sre;
  4166. }
  4167. catch (Exception ex)
  4168. {
  4169. throw ex;
  4170. }
  4171. finally
  4172. {
  4173. if (con.ConnState == ConnectionState.Open)
  4174. {
  4175. con.Close();
  4176. }
  4177. }
  4178. }
  4179. /// <summary>
  4180. /// 保存盘点单
  4181. /// </summary>
  4182. /// <param name="sUserInfo">用户基本信息</param>
  4183. /// <returns></returns>
  4184. public static ServiceResultEntity SaveMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4185. {
  4186. ServiceResultEntity sre = new ServiceResultEntity();
  4187. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4188. string checkedName = cre.Properties["CheckedName"].ToString();
  4189. string remarks = cre.Properties["Remarks"].ToString();
  4190. int returnRows = 0;
  4191. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4192. try
  4193. {
  4194. string sql = null;
  4195. OracleParameter[] paras = null;
  4196. if (checkedID > 0)
  4197. {
  4198. // 编辑
  4199. sql = "UPDATE TP_PC_MouldChecked gbc\n" +
  4200. " SET gbc.checkname = :checkname\n" +
  4201. " ,gbc.remarks = :remarks\n" +
  4202. " ,gbc.updateuserid = :updateuserid\n" +
  4203. " WHERE gbc.checkedid = :checkedid";
  4204. paras = new OracleParameter[] {
  4205. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4206. checkedID,ParameterDirection.Input),
  4207. new OracleParameter(":checkname",OracleDbType.NVarchar2,
  4208. checkedName,ParameterDirection.Input),
  4209. new OracleParameter(":remarks",OracleDbType.NVarchar2,
  4210. remarks,ParameterDirection.Input),
  4211. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4212. sUserInfo.UserID,ParameterDirection.Input)
  4213. };
  4214. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4215. sql = "DELETE FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4216. " WHERE gbu.checkedid = :checkedid";
  4217. paras = new OracleParameter[] {
  4218. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4219. checkedID,ParameterDirection.Input),
  4220. };
  4221. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4222. if (cre.Data != null && cre.Data.Tables.Count > 0)
  4223. {
  4224. sql = "INSERT INTO Tp_PC_Mouldcheckeduser gbu\n" +
  4225. " (checkedid, userid, usercode)\n" +
  4226. "VALUES\n" +
  4227. " (:checkedid, :userid, :usercode)";
  4228. foreach (DataRow item in cre.Data.Tables[0].Rows)
  4229. {
  4230. paras = new OracleParameter[] {
  4231. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4232. checkedID,ParameterDirection.Input),
  4233. new OracleParameter(":userid",OracleDbType.Int32,
  4234. item["UserID"],ParameterDirection.Input),
  4235. new OracleParameter(":usercode",OracleDbType.NVarchar2,
  4236. item["UserCode"],ParameterDirection.Input),
  4237. };
  4238. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4239. }
  4240. }
  4241. }
  4242. else
  4243. {
  4244. // 新建
  4245. //盘点单号
  4246. string checkedNo = string.Format("MIC{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
  4247. //获得账务日期
  4248. DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
  4249. //盘点单ID
  4250. sql = "select SEQ_PC_MouldChecked_ID.nextval from dual";
  4251. checkedID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
  4252. #region 插入盘点单主表信息
  4253. sql = @"insert into TP_PC_MouldChecked
  4254. (
  4255. CheckedID,
  4256. CheckedNo,
  4257. AccountDate,
  4258. Remarks,
  4259. AccountID,
  4260. CreateUserID,
  4261. UpdateUserID,
  4262. CHECKNAME
  4263. ) values
  4264. ( :CheckedID,
  4265. :CheckedNo,
  4266. :AccountDate,
  4267. :Remarks,
  4268. :AccountID,
  4269. :CreateUserID,
  4270. :CreateUserID,
  4271. :CHECKNAME
  4272. )";
  4273. OracleParameter[] Paras = new OracleParameter[] {
  4274. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4275. checkedID,ParameterDirection.Input),
  4276. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2,
  4277. checkedNo,ParameterDirection.Input),
  4278. new OracleParameter(":AccountDate",OracleDbType.Date,
  4279. accountDate,ParameterDirection.Input),
  4280. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  4281. remarks,ParameterDirection.Input),
  4282. new OracleParameter(":AccountID",OracleDbType.Int32,
  4283. sUserInfo.AccountID,ParameterDirection.Input),
  4284. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  4285. sUserInfo.UserID,ParameterDirection.Input),
  4286. new OracleParameter(":CHECKNAME",OracleDbType.NVarchar2,
  4287. checkedName,ParameterDirection.Input),
  4288. };
  4289. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4290. #endregion
  4291. #region 盘点工号
  4292. if (cre.Data != null && cre.Data.Tables.Count > 0)
  4293. {
  4294. sql = "INSERT INTO Tp_PC_Mouldcheckeduser gbu\n" +
  4295. " (checkedid, userid, usercode)\n" +
  4296. "VALUES\n" +
  4297. " (:checkedid, :userid, :usercode)";
  4298. foreach (DataRow item in cre.Data.Tables[0].Rows)
  4299. {
  4300. paras = new OracleParameter[] {
  4301. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4302. checkedID,ParameterDirection.Input),
  4303. new OracleParameter(":userid",OracleDbType.Int32,
  4304. item["UserID"],ParameterDirection.Input),
  4305. new OracleParameter(":usercode",OracleDbType.NVarchar2,
  4306. item["UserCode"],ParameterDirection.Input),
  4307. };
  4308. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4309. }
  4310. }
  4311. #endregion
  4312. #region 盘点信息
  4313. sql =
  4314. "INSERT INTO TP_PC_MouldCHECKEDDETAIL\n" +
  4315. " (CHECKEDID\n" +
  4316. " ,CHECKEDNO\n" +
  4317. " ,MouldID\n" +
  4318. " ,MouldCODE\n" +
  4319. " ,MouldBARCODE\n" +
  4320. " ,mouldtype\n" +
  4321. " ,materialsupplier\n" +
  4322. " ,productiondate\n" +
  4323. " ,goodsid\n" +
  4324. " ,goodscode\n" +
  4325. " ,userid\n" +
  4326. " ,usercode\n" +
  4327. " ,weight\n" +
  4328. " ,cost\n" +
  4329. " ,standardgroutingnum\n" +
  4330. " ,groutingnum\n" +
  4331. " ,groutingdatebegin\n" +
  4332. " ,groutingdateend\n" +
  4333. " ,lastgroutingbatchno\n" +
  4334. " ,mouldstatus\n" +
  4335. " ,premouldstatus\n" +
  4336. " ,repairflag\n" +
  4337. " ,scrapdate\n" +
  4338. " ,scrapuserid\n" +
  4339. " ,scrapusercode\n" +
  4340. " ,scrapreason\n" +
  4341. " ,scrapresponsibility\n" +
  4342. " ,lastchangehistoryid\n" +
  4343. " ,groutinglinedetailid\n" +
  4344. " ,REMARKS\n" +
  4345. " ,ACCOUNTID\n" +
  4346. " ,VALUEFLAG\n" +
  4347. " ,CREATEUSERID\n" +
  4348. " ,UPDATEUSERID)\n" +
  4349. " SELECT :CHECKEDID\n" +
  4350. " ,:CHECKEDNO\n" +
  4351. " ,gdd.MouldID\n" +
  4352. " ,gdd.MouldCODE\n" +
  4353. " ,gdd.MouldBARCODE\n" +
  4354. " ,gdd.mouldtype\n" +
  4355. " ,gdd.materialsupplier\n" +
  4356. " ,gdd.productiondate\n" +
  4357. " ,gdd.goodsid\n" +
  4358. " ,gdd.goodscode\n" +
  4359. " ,gdd.userid\n" +
  4360. " ,gdd.usercode\n" +
  4361. " ,gdd.weight\n" +
  4362. " ,gdd.cost\n" +
  4363. " ,gdd.standardgroutingnum\n" +
  4364. " ,gdd.groutingnum\n" +
  4365. " ,gdd.groutingdatebegin\n" +
  4366. " ,gdd.groutingdateend\n" +
  4367. " ,gdd.lastgroutingbatchno\n" +
  4368. " ,gdd.mouldstatus\n" +
  4369. " ,gdd.premouldstatus\n" +
  4370. " ,gdd.repairflag\n" +
  4371. " ,gdd.scrapdate\n" +
  4372. " ,gdd.scrapuserid\n" +
  4373. " ,gdd.scrapusercode\n" +
  4374. " ,gdd.scrapreason\n" +
  4375. " ,gdd.scrapresponsibility\n" +
  4376. " ,gdd.lastchangehistoryid\n" +
  4377. " ,gdd.groutinglinedetailid\n" +
  4378. " ,gdd.REMARKS\n" +
  4379. " ,gdd.ACCOUNTID\n" +
  4380. " ,'1'\n" +
  4381. " ,:CHECKEDUSERID\n" +
  4382. " ,:CHECKEDUSERID\n" +
  4383. " FROM tp_pC_Mould gdd\n" +
  4384. " LEFT JOIN tp_mst_goods g\n" +
  4385. " ON g.goodsid = gdd.goodsid\n" +
  4386. " LEFT JOIN tp_mst_goodsType gt\n" +
  4387. " ON gt.goodstypeid = g.goodstypeid\n" +
  4388. "WHERE gdd.valueflag = '1'\n" +
  4389. " AND gdd.accountid = :accountid\n" +
  4390. " AND gdd.mouldstatus in (1,2,3) \n" +
  4391. " AND (:DateBegin IS NULL OR gdd.productiondate >= :DateBegin)\n" +
  4392. " AND (:DateEnd IS NULL OR gdd.productiondate <= :DateEnd)\n" +
  4393. " AND (:mouldstatus IS NULL OR\n" +
  4394. " instr(',' || :mouldstatus || ',', ',' || gdd.mouldstatus || ',') > 0)\n" +
  4395. " AND (:GoodsIDS IS NULL OR\n" +
  4396. " instr(',' || :GoodsIDS || ',', ',' || gdd.GoodsID || ',') > 0)\n" +
  4397. " AND (:GoodsTypeCode IS NULL OR\n" +
  4398. " instr(gt.goodstypecode, :GoodsTypeCode) = 1)";
  4399. paras = new OracleParameter[] {
  4400. new OracleParameter(":accountid",OracleDbType.Int32,
  4401. sUserInfo.AccountID,ParameterDirection.Input),
  4402. new OracleParameter(":CHECKEDID",OracleDbType.Int32,
  4403. checkedID,ParameterDirection.Input),
  4404. new OracleParameter(":CHECKEDNO",OracleDbType.NVarchar2,
  4405. checkedNo,ParameterDirection.Input),
  4406. new OracleParameter(":CHECKEDUSERID",OracleDbType.Int32,
  4407. sUserInfo.UserID,ParameterDirection.Input),
  4408. new OracleParameter(":DateBegin",OracleDbType.Date,
  4409. cre.Properties["DateBegin"],ParameterDirection.Input),
  4410. new OracleParameter(":DateEnd",OracleDbType.Date,
  4411. cre.Properties["DateEnd"],ParameterDirection.Input),
  4412. new OracleParameter(":mouldstatus",OracleDbType.NVarchar2,
  4413. cre.Properties["MouldStatus"],ParameterDirection.Input),
  4414. new OracleParameter(":GoodsIDS",OracleDbType.NVarchar2,
  4415. cre.Properties["GoodsCodeList"],ParameterDirection.Input),
  4416. new OracleParameter(":GoodsTypeCode",OracleDbType.NVarchar2,
  4417. cre.Properties["GoodsTypeCode"],ParameterDirection.Input),
  4418. };
  4419. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4420. #endregion
  4421. }
  4422. oracleTrConn.Commit();
  4423. }
  4424. catch (Exception ex)
  4425. {
  4426. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4427. {
  4428. oracleTrConn.Rollback();
  4429. oracleTrConn.Disconnect();
  4430. }
  4431. throw ex;
  4432. }
  4433. finally
  4434. {
  4435. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4436. {
  4437. oracleTrConn.Disconnect();
  4438. }
  4439. }
  4440. return sre;
  4441. }
  4442. /// <summary>
  4443. /// 停用盘点单
  4444. /// </summary>
  4445. /// <param name="sUserInfo">用户基本信息</param>
  4446. /// <returns></returns>
  4447. public static ServiceResultEntity DisableMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4448. {
  4449. ServiceResultEntity sre = new ServiceResultEntity();
  4450. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4451. int returnRows = 0;
  4452. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4453. try
  4454. {
  4455. string sql = "update TP_PC_MouldChecked set valueflag='0', updateuserid=:updateuserid where CheckedID=:CheckedID and valueflag='1'";
  4456. OracleParameter[] Paras = new OracleParameter[] {
  4457. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4458. checkedID,ParameterDirection.Input),
  4459. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4460. sUserInfo.UserID,ParameterDirection.Input)
  4461. };
  4462. returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
  4463. if (returnRows > 0)
  4464. {
  4465. sre.Status = Constant.ServiceResultStatus.Success;
  4466. }
  4467. else
  4468. {
  4469. sre.Status = Constant.ServiceResultStatus.Other;
  4470. }
  4471. oracleTrConn.Commit();
  4472. oracleTrConn.Disconnect();
  4473. }
  4474. catch (Exception ex)
  4475. {
  4476. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4477. {
  4478. oracleTrConn.Rollback();
  4479. oracleTrConn.Disconnect();
  4480. }
  4481. throw ex;
  4482. }
  4483. finally
  4484. {
  4485. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4486. {
  4487. oracleTrConn.Disconnect();
  4488. }
  4489. }
  4490. return sre;
  4491. }
  4492. /// <summary>
  4493. /// 更新盘点单(条码盘点)
  4494. /// </summary>
  4495. /// <param name="InCheckedID">盘点单号</param>
  4496. /// <param name="BarCode">产品条码</param>
  4497. /// <param name="sUserInfo">用户基本信息</param>
  4498. /// <returns></returns>
  4499. public static ServiceResultEntity UpdateMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4500. {
  4501. ServiceResultEntity sre = new ServiceResultEntity();
  4502. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4503. string barcode = cre.Properties["Barcode"].ToString();
  4504. int returnRows = 0;
  4505. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4506. try
  4507. {
  4508. string sql = null;
  4509. OracleParameter[] paras = null;
  4510. DataSet ds = null;
  4511. sql = @"select CheckedFlag,CHECKEDUSERID from TP_PC_MouldCheckedDetail where CheckedID=:CheckedID and MouldBarCode=:MouldBarCode and Valueflag=1";
  4512. paras = new OracleParameter[] {
  4513. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4514. checkedID,ParameterDirection.Input),
  4515. new OracleParameter(":MouldBarCode",OracleDbType.NVarchar2,
  4516. barcode,ParameterDirection.Input)
  4517. };
  4518. ds = oracleTrConn.GetSqlResultToDs(sql, paras);
  4519. // 不在盘点单中
  4520. if (ds != null && ds.Tables[0].Rows.Count == 0)
  4521. {
  4522. sql = @"select CheckedNo from tp_pC_Mouldchecked where CheckedID=:CheckedID";
  4523. paras = new OracleParameter[] {
  4524. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4525. checkedID,ParameterDirection.Input),
  4526. };
  4527. ds = oracleTrConn.GetSqlResultToDs(sql, paras);
  4528. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  4529. {
  4530. sre.Status = Constant.ServiceResultStatus.Other;
  4531. sre.OtherStatus = -1;
  4532. sre.Message = "盘点单不存在";
  4533. return sre;
  4534. }
  4535. string checkedNo = ds.Tables[0].Rows[0]["CheckedNo"].ToString();
  4536. // 条码是否在模具档案中
  4537. sql = "SELECT gdd.MouldID\n" +
  4538. " FROM tp_pC_Mould gdd\n" +
  4539. " WHERE gdd.Mouldbarcode = :MouldBarCode";
  4540. paras = new OracleParameter[] {
  4541. new OracleParameter(":MouldBarCode",OracleDbType.NVarchar2,
  4542. barcode,ParameterDirection.Input)
  4543. };
  4544. DataTable dt = oracleTrConn.GetSqlResultToDt(sql, paras);
  4545. if (dt == null || dt.Rows.Count == 0)
  4546. {
  4547. // 无效条码
  4548. sre.Status = Constant.ServiceResultStatus.Other;
  4549. sre.OtherStatus = -1;
  4550. sre.Message = "条码【" + barcode + "】为无效条码";
  4551. return sre;
  4552. }
  4553. sql =
  4554. "INSERT INTO TP_PC_MouldCHECKEDDETAIL\n" +
  4555. " (CHECKEDID\n" +
  4556. " ,CHECKEDNO\n" +
  4557. " ,MouldID\n" +
  4558. " ,MouldCODE\n" +
  4559. " ,MouldBARCODE\n" +
  4560. " ,mouldtype\n" +
  4561. " ,materialsupplier\n" +
  4562. " ,productiondate\n" +
  4563. " ,goodsid\n" +
  4564. " ,goodscode\n" +
  4565. " ,userid\n" +
  4566. " ,usercode\n" +
  4567. " ,weight\n" +
  4568. " ,cost\n" +
  4569. " ,standardgroutingnum\n" +
  4570. " ,groutingnum\n" +
  4571. " ,groutingdatebegin\n" +
  4572. " ,groutingdateend\n" +
  4573. " ,lastgroutingbatchno\n" +
  4574. " ,mouldstatus\n" +
  4575. " ,premouldstatus\n" +
  4576. " ,repairflag\n" +
  4577. " ,scrapdate\n" +
  4578. " ,scrapuserid\n" +
  4579. " ,scrapusercode\n" +
  4580. " ,scrapreason\n" +
  4581. " ,scrapresponsibility\n" +
  4582. " ,lastchangehistoryid\n" +
  4583. " ,groutinglinedetailid\n" +
  4584. " ,REMARKS\n" +
  4585. " ,CHECKEDFLAG\n" +
  4586. " ,CHECKEDDATE\n" +
  4587. " ,CHECKEDUSERID\n" +
  4588. " ,ACCOUNTID\n" +
  4589. " ,VALUEFLAG\n" +
  4590. " ,CREATEUSERID\n" +
  4591. " ,UPDATEUSERID)\n" +
  4592. " SELECT :CHECKEDID\n" +
  4593. " ,:CHECKEDNO\n" +
  4594. " ,gdd.MouldID\n" +
  4595. " ,gdd.MouldCODE\n" +
  4596. " ,gdd.MouldBARCODE\n" +
  4597. " ,gdd.mouldtype\n" +
  4598. " ,gdd.materialsupplier\n" +
  4599. " ,gdd.productiondate\n" +
  4600. " ,gdd.goodsid\n" +
  4601. " ,gdd.goodscode\n" +
  4602. " ,gdd.userid\n" +
  4603. " ,gdd.usercode\n" +
  4604. " ,gdd.weight\n" +
  4605. " ,gdd.cost\n" +
  4606. " ,gdd.standardgroutingnum\n" +
  4607. " ,gdd.groutingnum\n" +
  4608. " ,gdd.groutingdatebegin\n" +
  4609. " ,gdd.groutingdateend\n" +
  4610. " ,gdd.lastgroutingbatchno\n" +
  4611. " ,gdd.mouldstatus\n" +
  4612. " ,gdd.premouldstatus\n" +
  4613. " ,gdd.repairflag\n" +
  4614. " ,gdd.scrapdate\n" +
  4615. " ,gdd.scrapuserid\n" +
  4616. " ,gdd.scrapusercode\n" +
  4617. " ,gdd.scrapreason\n" +
  4618. " ,gdd.scrapresponsibility\n" +
  4619. " ,gdd.lastchangehistoryid\n" +
  4620. " ,gdd.groutinglinedetailid\n" +
  4621. " ,REMARKS\n" +
  4622. " ,'2'\n" +
  4623. " ,SYSDATE\n" +
  4624. " ,:CHECKEDUSERID\n" +
  4625. " ,ACCOUNTID\n" +
  4626. " ,'1'\n" +
  4627. " ,:CHECKEDUSERID\n" +
  4628. " ,:CHECKEDUSERID\n" +
  4629. " FROM tp_pC_Mould gdd\n" +
  4630. " WHERE MouldID = :MouldID";
  4631. paras = new OracleParameter[] {
  4632. new OracleParameter(":CHECKEDID",OracleDbType.Int32,
  4633. checkedID,ParameterDirection.Input),
  4634. new OracleParameter(":CHECKEDNO",OracleDbType.NVarchar2,
  4635. checkedNo,ParameterDirection.Input),
  4636. new OracleParameter(":CHECKEDUSERID",OracleDbType.Int32,
  4637. sUserInfo.UserID,ParameterDirection.Input),
  4638. new OracleParameter(":MouldID",OracleDbType.Int32,
  4639. dt.Rows[0]["MouldID"],ParameterDirection.Input),
  4640. };
  4641. returnRows = oracleTrConn.ExecuteNonQuery(sql, paras);
  4642. //returnRows = 10;
  4643. }
  4644. else
  4645. {
  4646. string checkedFlag = ds.Tables[0].Rows[0]["CheckedFlag"].ToString();
  4647. if (checkedFlag == "1")
  4648. {
  4649. sre.Status = Constant.ServiceResultStatus.Other;
  4650. sre.OtherStatus = -1;
  4651. sre.Message = "条码【" + barcode + "】已被盘点";
  4652. return sre;
  4653. }
  4654. else if (checkedFlag == "2")
  4655. {
  4656. sre.Status = Constant.ServiceResultStatus.Other;
  4657. sre.OtherStatus = -1;
  4658. sre.Message = "条码【" + barcode + "】已被盘盈";
  4659. return sre;
  4660. }
  4661. sql = "update TP_PC_MouldCheckedDetail set CheckedFlag=:CheckedFlag,CheckedDate=sysdate,CheckedUserID=:CheckedUserID,UpdateUserID=:UpdateUserID where CheckedID=:CheckedID and MouldBarCode=:BarCode and CheckedFlag=:whereCheckedFlag";
  4662. paras = new OracleParameter[] {
  4663. new OracleParameter(":CheckedUserID",OracleDbType.Int32,
  4664. sUserInfo.UserID,ParameterDirection.Input),
  4665. new OracleParameter(":CheckedFlag",OracleDbType.Int32,
  4666. (int)Constant.InCheckedFlag.InCheckeded,ParameterDirection.Input),
  4667. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4668. checkedID,ParameterDirection.Input),
  4669. new OracleParameter(":BarCode",OracleDbType.NVarchar2,
  4670. barcode,ParameterDirection.Input),
  4671. new OracleParameter(":whereCheckedFlag",OracleDbType.Int32,
  4672. (int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  4673. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  4674. sUserInfo.UserID,ParameterDirection.Input),
  4675. };
  4676. returnRows = oracleTrConn.ExecuteNonQuery(sql, paras);
  4677. //returnRows = 1;
  4678. }
  4679. if (returnRows == 0)
  4680. {
  4681. oracleTrConn.Rollback();
  4682. oracleTrConn.Disconnect();
  4683. }
  4684. else
  4685. {
  4686. oracleTrConn.Commit();
  4687. oracleTrConn.Disconnect();
  4688. }
  4689. }
  4690. catch (Exception ex)
  4691. {
  4692. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4693. {
  4694. oracleTrConn.Rollback();
  4695. oracleTrConn.Disconnect();
  4696. }
  4697. throw ex;
  4698. }
  4699. finally
  4700. {
  4701. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4702. {
  4703. oracleTrConn.Disconnect();
  4704. }
  4705. }
  4706. return sre;
  4707. }
  4708. /// <summary>
  4709. /// 报损未盘点
  4710. /// </summary>
  4711. /// <param name="sUserInfo">用户基本信息</param>
  4712. /// <returns></returns>
  4713. public static ServiceResultEntity SaveClearMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4714. {
  4715. ServiceResultEntity sre = new ServiceResultEntity();
  4716. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4717. string barcodes = cre.Properties["Barcodes"].ToString();
  4718. int barcodeCount = Convert.ToInt32(cre.Properties["BarcodeCount"]);
  4719. int returnRows = 0;
  4720. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4721. try
  4722. {
  4723. // 待产 在库 可以报损
  4724. string sqlString = "SELECT m.mouldid,m.mouldcode, m.mouldbarcode, m.mouldstatus,m.GoodsID,m.GoodsCode,m.GroutingNum\n" +
  4725. " FROM TP_PC_Mould m\n" +
  4726. " WHERE m.valueflag = '1'\n" +
  4727. " AND m.accountid = :accountid\n" +
  4728. " AND m.mouldstatus IN (1, 3)\n" +
  4729. " AND instr(:barcodes, m.mouldbarcode) > 0\n" +
  4730. " for update";
  4731. OracleParameter[] paras = new OracleParameter[] {
  4732. new OracleParameter(":barcodes",OracleDbType.NVarchar2,
  4733. barcodes,ParameterDirection.Input),
  4734. new OracleParameter(":accountid",OracleDbType.Int32,
  4735. sUserInfo.AccountID,ParameterDirection.Input),
  4736. };
  4737. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  4738. if (dt == null || dt.Rows.Count == 0)
  4739. {
  4740. sre.Status = Constant.ServiceResultStatus.Other;
  4741. sre.Message = "【在产】或【已报废】的模具不能直接报废";
  4742. return sre;
  4743. }
  4744. if (dt.Rows.Count != barcodeCount)
  4745. {
  4746. sre.Status = Constant.ServiceResultStatus.Other;
  4747. sre.Message = "【在产】或【已报废】的模具不能直接报废";
  4748. }
  4749. string sqlStringInsertHis =
  4750. "INSERT INTO TP_PC_MouldChangeHistory\n" +
  4751. " (ChangeID\n" +
  4752. " ,MouldID\n" +
  4753. " ,MouldCode\n" +
  4754. " ,MouldBarcode\n" +
  4755. " ,GoodsID\n" +
  4756. " ,GoodsCode\n" +
  4757. " ,OperationType\n" +
  4758. " ,MouldStatus\n" +
  4759. " ,MouldStatusAfter\n" +
  4760. " ,GroutingNum\n" +
  4761. " ,ChangeFlag\n" +
  4762. " ,ScrapResponsibility\n" +
  4763. " ,AccountID\n" +
  4764. " ,CreateUserID)\n" +
  4765. "VALUES\n" +
  4766. " (:ChangeID\n" +
  4767. " ,:MouldID\n" +
  4768. " ,:MouldCode\n" +
  4769. " ,:MouldBarcode\n" +
  4770. " ,:GoodsID\n" +
  4771. " ,:GoodsCode\n" +
  4772. " ,:OperationType\n" +
  4773. " ,:MouldStatus\n" +
  4774. " ,4\n" +
  4775. " ,:GroutingNum\n" +
  4776. " ,decode(:OperationType, 2, '2','0')\n" +
  4777. " ,'盘亏报损'\n" +
  4778. " ,:AccountID\n" +
  4779. " ,:CreateUserID)";
  4780. string sqlStringUpdateMould = "UPDATE TP_PC_Mould m\n" +
  4781. " SET m.premouldstatus = m.mouldstatus\n" +
  4782. " ,m.mouldstatus = 4\n" +
  4783. " ,m.scrapdate = SYSDATE\n" +
  4784. " ,m.scrapuserid = :scrapuserid\n" +
  4785. " ,m.scrapusercode = :scrapusercode\n" +
  4786. " ,m.ScrapResponsibility = '盘亏报损'\n" +
  4787. " ,m.LastChangeHistoryID = :LastChangeHistoryID\n" +
  4788. " ,m.updateuserid = :updateuserid\n" +
  4789. " WHERE m.mouldid = :mouldid";
  4790. sqlString = "UPDATE tp_pc_Mouldcheckeddetail gdd\n" +
  4791. " SET gdd.checkedflag = '3'\n" +
  4792. " ,gdd.CheckedDate = SYSDATE\n" +
  4793. " ,gdd.CheckedUserID = :UserID\n" +
  4794. " ,gdd.UpdateUserID = :UserID\n" +
  4795. " WHERE gdd.checkedflag = '0'\n" +
  4796. " AND gdd.CheckedID = :CheckedID" +
  4797. " AND gdd.mouldid = :MouldID";
  4798. foreach (DataRow item in dt.Rows)
  4799. {
  4800. int mouldHistoryID = Convert.ToInt32(oracleTrConn.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  4801. // 插入变更履历
  4802. paras = new OracleParameter[] {
  4803. new OracleParameter(":ChangeID",OracleDbType.Int32,
  4804. mouldHistoryID,ParameterDirection.Input),
  4805. new OracleParameter(":MouldID",OracleDbType.Int32,
  4806. item["MouldID"],ParameterDirection.Input),
  4807. new OracleParameter(":MouldCode",OracleDbType.NVarchar2,
  4808. item["MouldCode"],ParameterDirection.Input),
  4809. new OracleParameter(":MouldBarcode",OracleDbType.NVarchar2,
  4810. item["MouldBarcode"],ParameterDirection.Input),
  4811. new OracleParameter(":GoodsID",OracleDbType.Int32,
  4812. item["GoodsID"],ParameterDirection.Input),
  4813. new OracleParameter(":GoodsCode",OracleDbType.NVarchar2,
  4814. item["GoodsCode"],ParameterDirection.Input),
  4815. new OracleParameter(":MouldStatus",OracleDbType.Int32,
  4816. item["MouldStatus"],ParameterDirection.Input),
  4817. new OracleParameter(":GroutingNum",OracleDbType.Int32,
  4818. item["GroutingNum"],ParameterDirection.Input),
  4819. new OracleParameter(":AccountID",OracleDbType.Int32,
  4820. sUserInfo.AccountID,ParameterDirection.Input),
  4821. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  4822. sUserInfo.UserID,ParameterDirection.Input),
  4823. new OracleParameter(":OperationType",OracleDbType.Int32,
  4824. (item["MouldStatus"].ToString() == "1"? (int)Constant.MouldOperationType.InvToScrap:(int)Constant.MouldOperationType.OutToScrap)
  4825. ,ParameterDirection.Input),
  4826. };
  4827. returnRows += oracleTrConn.ExecuteNonQuery(sqlStringInsertHis, paras);
  4828. // 修改模具状态
  4829. paras = new OracleParameter[] {
  4830. new OracleParameter(":MouldID",OracleDbType.Int32,
  4831. item["MouldID"],ParameterDirection.Input),
  4832. new OracleParameter(":scrapuserid",OracleDbType.Int32,
  4833. sUserInfo.UserID,ParameterDirection.Input),
  4834. new OracleParameter(":LastChangeHistoryID",OracleDbType.Int32,
  4835. mouldHistoryID,ParameterDirection.Input),
  4836. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4837. sUserInfo.UserID,ParameterDirection.Input),
  4838. new OracleParameter(":scrapusercode",OracleDbType.NVarchar2,
  4839. sUserInfo.UserCode,ParameterDirection.Input),
  4840. };
  4841. returnRows += oracleTrConn.ExecuteNonQuery(sqlStringUpdateMould, paras);
  4842. // 清除盘点明细
  4843. paras = new OracleParameter[] {
  4844. new OracleParameter(":MouldID",OracleDbType.Int32,
  4845. item["MouldID"],ParameterDirection.Input),
  4846. new OracleParameter(":UserID",OracleDbType.Int32,
  4847. sUserInfo.UserID,ParameterDirection.Input),
  4848. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4849. checkedID,ParameterDirection.Input),
  4850. };
  4851. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  4852. }
  4853. oracleTrConn.Commit();
  4854. }
  4855. catch (Exception ex)
  4856. {
  4857. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4858. {
  4859. oracleTrConn.Rollback();
  4860. oracleTrConn.Disconnect();
  4861. }
  4862. throw ex;
  4863. }
  4864. finally
  4865. {
  4866. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4867. {
  4868. oracleTrConn.Disconnect();
  4869. }
  4870. }
  4871. return sre;
  4872. }
  4873. /// <summary>
  4874. /// 获取盘点单明细
  4875. /// </summary>
  4876. /// <param name="procedureID">工序ID</param>
  4877. /// <returns>DataSet</returns>
  4878. public static DataSet GetUpdateMouldCheckedInfo(int checkedID, SUserInfo sUserInfo)
  4879. {
  4880. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4881. try
  4882. {
  4883. con.Open();
  4884. string sqlString = @"SELECT to_char(checked.UserCheckedCount) || '/' ||
  4885. to_char(checked.CheckedCount) CheckedCount
  4886. ,to_char(checked.UserOverageCount) || '/' ||
  4887. to_char(checked.OverageCount) OverageCount
  4888. ,to_char(checked.UserCheckedCount + checked.UserOverageCount) || '/' ||
  4889. to_char(checked.CheckedCount + checked.OverageCount) || '/' ||
  4890. to_char(TCount) TCount
  4891. FROM (SELECT icd.checkedid
  4892. , SUM(CASE
  4893. WHEN icd.checkeduserid = :userid AND icd.CheckedFlag = '1' THEN
  4894. 1
  4895. ELSE
  4896. 0
  4897. END) UserCheckedCount
  4898. , SUM(CASE
  4899. WHEN icd.checkeduserid = :userid AND icd.CheckedFlag = '2' THEN
  4900. 1
  4901. ELSE
  4902. 0
  4903. END) UserOverageCount
  4904. , SUM(CASE
  4905. WHEN icd.CheckedFlag = '1' THEN
  4906. 1
  4907. ELSE
  4908. 0
  4909. END) CheckedCount
  4910. , SUM(CASE
  4911. WHEN icd.CheckedFlag = '2' THEN
  4912. 1
  4913. ELSE
  4914. 0
  4915. END) OverageCount
  4916. ,COUNT(icd.checkedid) TCount
  4917. FROM tp_pC_Mouldcheckeddetail icd
  4918. WHERE icd.checkedid = :checkedid
  4919. AND icd.valueflag = '1'
  4920. -- xuwei add 2022-02-26
  4921. group by icd.checkedid
  4922. -- xuwei end
  4923. ) checked";
  4924. OracleParameter[] paras = new OracleParameter[]{
  4925. new OracleParameter(":checkedid",OracleDbType.Int32, checkedID, ParameterDirection.Input),
  4926. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  4927. };
  4928. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  4929. ds.Tables[0].TableName = "Table1";
  4930. sqlString = @"SELECT icd.goodscode, COUNT(icd.goodscode) goodscount
  4931. FROM tp_pC_Mouldcheckeddetail icd
  4932. WHERE icd.checkedid = :checkedid
  4933. AND icd.checkeduserid = :userid
  4934. AND icd.CheckedFlag = '1'
  4935. AND icd.valueflag = '1'
  4936. GROUP BY icd.goodscode";
  4937. DataTable dt = con.GetSqlResultToDt(sqlString, paras);
  4938. dt.TableName = "Table2";
  4939. ds.Tables.Add(dt);
  4940. return ds;
  4941. }
  4942. catch (Exception ex)
  4943. {
  4944. throw ex;
  4945. }
  4946. finally
  4947. {
  4948. if (con.ConnState == ConnectionState.Open)
  4949. {
  4950. con.Close();
  4951. }
  4952. }
  4953. }
  4954. #endregion
  4955. #region 模具库存结转
  4956. /// <summary>
  4957. /// 获取模具库存结转一览查询数据
  4958. /// </summary>
  4959. /// <param name="sUserInfo"></param>
  4960. /// <returns></returns>
  4961. public static ServiceResultEntity GetFPC1201QueryData(SUserInfo sUserInfo, ClientRequestEntity cre)
  4962. {
  4963. ServiceResultEntity sre = new ServiceResultEntity();
  4964. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4965. try
  4966. {
  4967. con.Open();
  4968. string sqlString =
  4969. "SELECT mc.yyyymm, mc.begindate, mc.enddate, mc.remarks\n" +
  4970. " FROM TP_PC_MouldCarryOver mc\n" +
  4971. " WHERE mc.accountid = :accountid\n" +
  4972. " AND mc.yyyymm >= :DateBegin\n" +
  4973. " AND mc.yyyymm <= :DateEnd\n" +
  4974. " ORDER BY mc.yyyymm desc";
  4975. OracleParameter[] parameters = new OracleParameter[]
  4976. {
  4977. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4978. new OracleParameter(":DateBegin", OracleDbType.Char, cre.Properties["DateBegin"], ParameterDirection.Input),
  4979. new OracleParameter(":DateEnd", OracleDbType.Char, cre.Properties["DateEnd"], ParameterDirection.Input),
  4980. };
  4981. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4982. if (sre.Data == null || sre.Data.Tables.Count == 0 || sre.Data.Tables[0].Rows.Count == 0)
  4983. {
  4984. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4985. return sre;
  4986. }
  4987. sqlString = "SELECT mcd.yyyymm\n" +
  4988. " ,gt2.goodstypecode goodstypecode2\n" +
  4989. " ,gt2.goodstypename goodstypename2\n" +
  4990. " ,mcd.goodscode\n" +
  4991. " ,mcd.mouldnum\n" +
  4992. " FROM TP_PC_Mouldcarryoverdetail mcd\n" +
  4993. " INNER JOIN tp_mst_goods g\n" +
  4994. " ON g.goodsid = mcd.goodsid\n" +
  4995. " INNER JOIN tp_mst_goodstype gt\n" +
  4996. " ON gt.goodstypeid = g.goodstypeid\n" +
  4997. " INNER JOIN tp_mst_goodstype gt2\n" +
  4998. " ON gt2.accountid = gt.accountid\n" +
  4999. " AND gt2.goodstypecode = substr(gt.goodstypecode, 1, 6)\n" +
  5000. " WHERE mcd.accountid = :accountid\n" +
  5001. " AND mcd.yyyymm = :YYYYMM\n" +
  5002. " AND mcd.mouldstatus = 1 -- 在库\n" +
  5003. " ORDER BY gt2.goodstypecode, mcd.goodscode";
  5004. parameters = new OracleParameter[]
  5005. {
  5006. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5007. new OracleParameter(":YYYYMM", OracleDbType.Char, sre.Data.Tables[0].Rows[0]["YYYYMM"], ParameterDirection.Input),
  5008. };
  5009. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  5010. return sre;
  5011. }
  5012. catch (Exception ex)
  5013. {
  5014. throw ex;
  5015. }
  5016. finally
  5017. {
  5018. if (con.ConnState == ConnectionState.Open)
  5019. {
  5020. con.Close();
  5021. }
  5022. }
  5023. }
  5024. public static ServiceResultEntity SAPQuery(SUserInfo sUserInfo, ClientRequestEntity cre)
  5025. {
  5026. ServiceResultEntity sre = new ServiceResultEntity();
  5027. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5028. try
  5029. {
  5030. #region 获取东科单据号
  5031. int ZDKNO = Convert.ToInt32(oracleTrConn.GetSqlResultToObj("select SEQ_MOULDCHANGELOGID.NEXTVAL from dual "));
  5032. #endregion
  5033. #region 普通参数
  5034. DateTime createTime = DateTime.Now;
  5035. string ceshi1 = createTime.ToString("yyyyMMdd");
  5036. //消息类型: S 成功,E 错误
  5037. string ZTYPE;
  5038. //消息文本
  5039. string ZMSG;
  5040. #endregion
  5041. #region 调用SAP接口方法
  5042. string upsql = string.Empty;
  5043. DataTable dtResult = new DataTable();
  5044. string sqlString = @"SELECT * FROM TP_CESHI ";
  5045. DataTable newTable = oracleTrConn.GetSqlResultToDt(sqlString);
  5046. for (int j = 0; j < newTable.Rows.Count; j++)
  5047. {
  5048. int count = Convert.ToInt32(newTable.Rows[j]["mouldcount"]);
  5049. dtResult = ZMMFM045("20231108", ZDKNO + "", newTable.Rows[j]["cj"].ToString(), newTable.Rows[j]["MATNR"].ToString(),count, out ZTYPE, out ZMSG);
  5050. if (dtResult != null && dtResult.Rows.Count > 0)
  5051. {
  5052. if ("S".Equals(ZTYPE))
  5053. {
  5054. #region 插入SAP模具变更传输日志
  5055. string insql = @"
  5056. INSERT INTO TP_SAP_MOULDCHANGELOG
  5057. ( BLDAT
  5058. , BUDAT
  5059. , WERKS
  5060. , LGORT_FM
  5061. , LGORT_TO
  5062. , MATNR
  5063. , BWART
  5064. , MEINS
  5065. , MENGE
  5066. , MBLNR
  5067. , MJAHR
  5068. , MSGTY
  5069. , MSGTX)
  5070. VALUES
  5071. ( SYSDATE
  5072. , SYSDATE
  5073. , '5000'
  5074. , '3001'
  5075. , :LGORT_TO
  5076. , :MATNR
  5077. , '311'
  5078. , 'PCS'
  5079. , :MENGE
  5080. , :MBLNR
  5081. , :MJAHR
  5082. , :MSGTY
  5083. , :MSGTX)";
  5084. OracleParameter[] inparas = new OracleParameter[]{
  5085. //new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,ZDKNO, ParameterDirection.Input),
  5086. new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,newTable.Rows[j]["cj"], ParameterDirection.Input),
  5087. new OracleParameter(":MATNR", OracleDbType.NVarchar2,newTable.Rows[j]["MATNR"], ParameterDirection.Input),
  5088. new OracleParameter(":MENGE", OracleDbType.Int32,count, ParameterDirection.Input),
  5089. new OracleParameter(":MBLNR", OracleDbType.NVarchar2, dtResult.Rows[0]["MBLNR"].ToString(), ParameterDirection.Input),
  5090. new OracleParameter(":MJAHR", OracleDbType.NVarchar2,dtResult.Rows[0]["MJAHR"].ToString(), ParameterDirection.Input),
  5091. new OracleParameter(":MSGTY", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTY"].ToString(), ParameterDirection.Input),
  5092. new OracleParameter(":MSGTX", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTX"].ToString(), ParameterDirection.Input)
  5093. };
  5094. oracleTrConn.ExecuteNonQuery(insql, inparas);
  5095. #endregion
  5096. }
  5097. else if ("E".Equals(ZTYPE))
  5098. {
  5099. #region 插入SAP模具变更传输日志
  5100. string insql = @"
  5101. INSERT INTO TP_SAP_MOULDCHANGELOG
  5102. ( BLDAT
  5103. , BUDAT
  5104. , WERKS
  5105. , LGORT_FM
  5106. , LGORT_TO
  5107. , MATNR
  5108. , BWART
  5109. , MEINS
  5110. , MENGE
  5111. , MBLNR
  5112. , MJAHR
  5113. , MSGTY
  5114. , MSGTX)
  5115. VALUES
  5116. ( SYSDATE
  5117. , SYSDATE
  5118. , '5000'
  5119. , '3001'
  5120. , :LGORT_TO
  5121. , :MATNR
  5122. , '311'
  5123. , 'PCS'
  5124. , :MENGE
  5125. , :MBLNR
  5126. , :MJAHR
  5127. , :MSGTY
  5128. , :MSGTX)";
  5129. OracleParameter[] inparas = new OracleParameter[]{
  5130. //new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,ZDKNO, ParameterDirection.Input),
  5131. new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,newTable.Rows[j]["cj"], ParameterDirection.Input),
  5132. new OracleParameter(":MATNR", OracleDbType.NVarchar2,newTable.Rows[j]["MATNR"], ParameterDirection.Input),
  5133. new OracleParameter(":MENGE", OracleDbType.Int32,count, ParameterDirection.Input),
  5134. new OracleParameter(":MBLNR", OracleDbType.NVarchar2, dtResult.Rows[0]["MBLNR"].ToString(), ParameterDirection.Input),
  5135. new OracleParameter(":MJAHR", OracleDbType.NVarchar2,dtResult.Rows[0]["MJAHR"].ToString(), ParameterDirection.Input),
  5136. new OracleParameter(":MSGTY", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTY"].ToString(), ParameterDirection.Input),
  5137. new OracleParameter(":MSGTX", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTX"].ToString(), ParameterDirection.Input)
  5138. };
  5139. oracleTrConn.ExecuteNonQuery(insql, inparas);
  5140. #endregion
  5141. if (dtResult != null && dtResult.Rows.Count > 0)
  5142. {
  5143. sre.Status = Constant.ServiceResultStatus.Other;
  5144. sre.OtherStatus = -10001;
  5145. sre.Message = dtResult.Rows[0]["MSGTX"].ToString();
  5146. oracleTrConn.Rollback();
  5147. oracleTrConn.Disconnect();
  5148. return sre;
  5149. }
  5150. else
  5151. {
  5152. sre.Status = Constant.ServiceResultStatus.Other;
  5153. sre.OtherStatus = -10002;
  5154. sre.Message = dtResult.Rows[0]["MSGTX"].ToString();
  5155. oracleTrConn.Rollback();
  5156. oracleTrConn.Disconnect();
  5157. return sre;
  5158. }
  5159. }
  5160. }
  5161. }
  5162. #endregion
  5163. //提交事务
  5164. oracleTrConn.Commit();
  5165. oracleTrConn.Disconnect();
  5166. }
  5167. catch (Exception ex)
  5168. {
  5169. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5170. {
  5171. oracleTrConn.Rollback();
  5172. oracleTrConn.Disconnect();
  5173. }
  5174. throw ex;
  5175. }
  5176. return sre;
  5177. }
  5178. /// <summary>
  5179. /// 东科与SAP系统之摸具状态变更(上模)
  5180. /// </summary>
  5181. /// <param name="BLDAT"></param>
  5182. /// <param name="ZDKNO"></param>
  5183. /// <param name="dtTable"></param>
  5184. /// <param name="ZTYPE"></param>
  5185. /// <param name="ZMSG"></param>
  5186. /// <returns></returns>
  5187. public static DataTable ZMMFM045(string BLDAT, string ZDKNO, string cj, string MATNR, int dtcount, out string ZTYPE, out string ZMSG)
  5188. {
  5189. #region 接口定义
  5190. RfcConfigParameters rfcPara = new RfcConfigParameters();
  5191. rfcPara.Add(RfcConfigParameters.AppServerHost, appServerHost);
  5192. rfcPara.Add(RfcConfigParameters.SystemNumber, systemNumber);
  5193. rfcPara.Add(RfcConfigParameters.User, user);
  5194. rfcPara.Add(RfcConfigParameters.Password, password);
  5195. rfcPara.Add(RfcConfigParameters.Client, client);
  5196. rfcPara.Add(RfcConfigParameters.Name, "CON");
  5197. rfcPara.Add(RfcConfigParameters.Language, "ZH");
  5198. rfcPara.Add(RfcConfigParameters.PoolSize, "5");
  5199. rfcPara.Add(RfcConfigParameters.ConnectionIdleTimeout, "60");
  5200. RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfcPara);
  5201. RfcRepository rfcRep = rfcDest.Repository;
  5202. #endregion
  5203. //接口API
  5204. IRfcFunction rfcApi = rfcRep.CreateFunction("ZMMFM045");
  5205. //输入参数
  5206. IRfcTable imTable = rfcApi.GetTable("IT_ITEM");
  5207. #region 传参
  5208. imTable.Append();
  5209. imTable.SetValue("BLDAT", BLDAT); //凭证日期
  5210. imTable.SetValue("BUDAT", BLDAT); //过帐日期
  5211. imTable.SetValue("WERKS", "5000"); //工厂(默认:5000)
  5212. imTable.SetValue("LGORT_FM", "3001"); //发出库位:3001
  5213. imTable.SetValue("LGORT_TO", cj); //接收库位:一车间2110、二车间2210、三车间2310
  5214. imTable.SetValue("MATNR", MATNR); //物料编号:模具对应产品的物料编号
  5215. imTable.SetValue("BWART", "311"); //移动类型(库存管理):311
  5216. imTable.SetValue("MEINS", "PCS"); //基本计量单位:PCS
  5217. imTable.SetValue("MENGE", dtcount); //数量
  5218. imTable.SetValue("ZDKNO", ZDKNO); //东科单据号 (LOGOID)
  5219. #endregion
  5220. //调用接口
  5221. rfcApi.Invoke(rfcDest);
  5222. //获取输出
  5223. ZTYPE = rfcApi.GetValue("ZTYPE").ToString();
  5224. ZMSG = rfcApi.GetValue("ZMSG").ToString();
  5225. IRfcTable table = rfcApi.GetTable("ET_RETURN");
  5226. DataTable dt = GetDataTableFromRFCTable(table);
  5227. rfcDest = null;
  5228. rfcRep = null;
  5229. return dt;
  5230. }
  5231. /// <summary>
  5232. /// 获取模具库存结转明细查询数据
  5233. /// </summary>
  5234. /// <param name="sUserInfo"></param>
  5235. /// <returns></returns>
  5236. public static ServiceResultEntity GetFPC1201QueryDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  5237. {
  5238. ServiceResultEntity sre = new ServiceResultEntity();
  5239. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5240. try
  5241. {
  5242. con.Open();
  5243. string sqlString = "SELECT mcd.yyyymm\n" +
  5244. " ,gt2.goodstypecode goodstypecode2\n" +
  5245. " ,gt2.goodstypename goodstypename2\n" +
  5246. " ,mcd.goodscode\n" +
  5247. " ,mcd.mouldnum\n" +
  5248. " FROM TP_PC_Mouldcarryoverdetail mcd\n" +
  5249. " INNER JOIN tp_mst_goods g\n" +
  5250. " ON g.goodsid = mcd.goodsid\n" +
  5251. " INNER JOIN tp_mst_goodstype gt\n" +
  5252. " ON gt.goodstypeid = g.goodstypeid\n" +
  5253. " INNER JOIN tp_mst_goodstype gt2\n" +
  5254. " ON gt2.accountid = gt.accountid\n" +
  5255. " AND gt2.goodstypecode = substr(gt.goodstypecode, 1, 6)\n" +
  5256. " WHERE mcd.accountid = :accountid\n" +
  5257. " AND mcd.yyyymm = :YYYYMM\n" +
  5258. " AND mcd.mouldstatus = 1 -- 在库\n" +
  5259. " ORDER BY gt2.goodstypecode, mcd.goodscode";
  5260. OracleParameter[] parameters = new OracleParameter[]
  5261. {
  5262. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5263. new OracleParameter(":YYYYMM", OracleDbType.Char, cre.Properties["YYYYMM"], ParameterDirection.Input),
  5264. };
  5265. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5266. return sre;
  5267. }
  5268. catch (Exception ex)
  5269. {
  5270. throw ex;
  5271. }
  5272. finally
  5273. {
  5274. if (con.ConnState == ConnectionState.Open)
  5275. {
  5276. con.Close();
  5277. }
  5278. }
  5279. }
  5280. #region 模具库存自动结转设置
  5281. /// <summary>
  5282. /// 获取模具库存自动结转设置
  5283. /// </summary>
  5284. /// <param name="cre"></param>
  5285. /// <param name="sUserInfo"></param>
  5286. /// <returns></returns>
  5287. public static ServiceResultEntity GetFPC1204Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5288. {
  5289. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5290. try
  5291. {
  5292. ServiceResultEntity sre = new ServiceResultEntity();
  5293. string sqlString = "SELECT JOB_NAME, REPEAT_INTERVAL, LAST_START_DATE, NEXT_RUN_DATE, ENABLED\n" +
  5294. " FROM USER_SCHEDULER_JOBS\n" +
  5295. " WHERE JOB_NAME = 'JOB_AUTOMOULDCARRYOVER'";
  5296. oracleConn.Open();
  5297. DataSet data = oracleConn.GetSqlResultToDs(sqlString);
  5298. sre.Data = data;
  5299. oracleConn.Close();
  5300. return sre;
  5301. }
  5302. catch (Exception ex)
  5303. {
  5304. if (oracleConn.ConnState == ConnectionState.Open)
  5305. {
  5306. oracleConn.Close();
  5307. }
  5308. throw ex;
  5309. }
  5310. }
  5311. /// <summary>
  5312. /// 保存模具库存自动结转设置
  5313. /// </summary>
  5314. /// <param name="cre"></param>
  5315. /// <param name="sUserInfo"></param>
  5316. /// <returns></returns>
  5317. public static ServiceResultEntity SetFPC1204Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5318. {
  5319. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5320. try
  5321. {
  5322. ServiceResultEntity sre = new ServiceResultEntity();
  5323. // 检验参数的有效性
  5324. if (cre == null || cre.Request == null || cre.Request.ToString() == "")
  5325. {
  5326. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  5327. return sre;
  5328. }
  5329. oracleTrConn.Connect();
  5330. OracleParameter[] oracleParameter = new OracleParameter[]
  5331. {
  5332. new OracleParameter("name","JOB_AUTOMOULDCARRYOVER"),
  5333. new OracleParameter("attribute", "repeat_interval"),
  5334. new OracleParameter("value", cre.Request.ToString())
  5335. };
  5336. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.set_attribute", oracleParameter);
  5337. oracleParameter = new OracleParameter[]
  5338. {
  5339. new OracleParameter("name","JOB_AUTOMOULDCARRYOVER")
  5340. };
  5341. if (cre.Properties["Enabled"].ToString() == "1")
  5342. {
  5343. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.enable", oracleParameter);
  5344. }
  5345. else
  5346. {
  5347. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.disable", oracleParameter);
  5348. }
  5349. //if (cre.Properties["Run"].ToString() == "1")
  5350. //{
  5351. // // oracleParameter = new OracleParameter[]
  5352. // // {
  5353. // // new OracleParameter("job_name","JOB_AUTOMOULDCARRYOVER"),
  5354. // // new OracleParameter("use_current_session", OracleDbType., 0)
  5355. // // };
  5356. // //oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.run_job", oracleParameter);
  5357. // string sqlString = "begin\n" +
  5358. // "sys.dbms_scheduler.run_job('JOB_AUTOMOULDCARRYOVER', false);\n" +
  5359. // "end;";
  5360. // oracleTrConn.ExecuteNonQuery(sqlString);
  5361. //}
  5362. oracleTrConn.Commit();
  5363. oracleTrConn.Disconnect();
  5364. return sre;
  5365. }
  5366. catch (Exception ex)
  5367. {
  5368. if (oracleTrConn.ConnState == ConnectionState.Open)
  5369. {
  5370. oracleTrConn.Rollback();
  5371. oracleTrConn.Disconnect();
  5372. }
  5373. throw ex;
  5374. }
  5375. }
  5376. #endregion
  5377. /// <summary>
  5378. /// 获取模具库存结转期初
  5379. /// </summary>
  5380. /// <param name="cre"></param>
  5381. /// <param name="sUserInfo"></param>
  5382. /// <returns></returns>
  5383. public static ServiceResultEntity GetFPC1202Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5384. {
  5385. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5386. try
  5387. {
  5388. ServiceResultEntity sre = new ServiceResultEntity();
  5389. string sqlString =
  5390. "SELECT --nvl(MAX(mc.yyyymm), ' ') LastYYYYMM\n" +
  5391. " MAX(mc.yyyymm) LastYYYYMM\n" +
  5392. " ,to_char(SYSDATE, 'yyyymm') YYYYMM\n" +
  5393. " ,trunc(SYSDATE, 'mm') CurMonth\n" +
  5394. " FROM tp_pc_mouldcarryover mc\n" +
  5395. " WHERE mc.accountid = :accountid";
  5396. OracleParameter[] oracleParameter = new OracleParameter[]
  5397. {
  5398. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5399. };
  5400. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  5401. oracleConn.Close();
  5402. return sre;
  5403. }
  5404. catch (Exception ex)
  5405. {
  5406. if (oracleConn.ConnState == ConnectionState.Open)
  5407. {
  5408. oracleConn.Close();
  5409. }
  5410. throw ex;
  5411. }
  5412. }
  5413. /// <summary>
  5414. /// 模具库存结转
  5415. /// </summary>
  5416. /// <param name="cre"></param>
  5417. /// <param name="sUserInfo"></param>
  5418. /// <returns></returns>
  5419. public static ServiceResultEntity SetFPC1202Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5420. {
  5421. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5422. try
  5423. {
  5424. ServiceResultEntity sre = new ServiceResultEntity();
  5425. oracleTrConn.Connect();
  5426. OracleParameter[] oracleParameter = new OracleParameter[]
  5427. {
  5428. new OracleParameter("in_CarryoverMonth", OracleDbType.Date, cre.Properties["CarryoverMonth"], ParameterDirection.Input),
  5429. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5430. new OracleParameter("in_UserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  5431. new OracleParameter("in_Remarks", OracleDbType.NVarchar2, cre.Properties["Remarks"], ParameterDirection.Input),
  5432. };
  5433. oracleTrConn.ExecStoredProcedure("pro_job_pc_mouldcarryover", oracleParameter);
  5434. oracleTrConn.Commit();
  5435. oracleTrConn.Disconnect();
  5436. return sre;
  5437. }
  5438. catch (Exception ex)
  5439. {
  5440. if (oracleTrConn.ConnState == ConnectionState.Open)
  5441. {
  5442. oracleTrConn.Rollback();
  5443. oracleTrConn.Disconnect();
  5444. }
  5445. throw ex;
  5446. }
  5447. }
  5448. /// <summary>
  5449. /// 模具库存反结转
  5450. /// </summary>
  5451. /// <param name="cre"></param>
  5452. /// <param name="sUserInfo"></param>
  5453. /// <returns></returns>
  5454. public static ServiceResultEntity SetFPC1203Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5455. {
  5456. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5457. try
  5458. {
  5459. ServiceResultEntity sre = new ServiceResultEntity();
  5460. oracleTrConn.Connect();
  5461. OracleParameter[] oracleParameter = new OracleParameter[]
  5462. {
  5463. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5464. new OracleParameter(":yyyymm", OracleDbType.Char, cre.Properties["YYYYMM"], ParameterDirection.Input),
  5465. };
  5466. string sqlString =
  5467. "DELETE FROM tp_pc_mouldcarryover mc\n" +
  5468. " WHERE mc.accountid = :accountid\n" +
  5469. " AND mc.yyyymm >= :yyyymm";
  5470. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5471. sqlString =
  5472. "DELETE FROM tp_pc_mouldcarryoverdetail mcd\n" +
  5473. " WHERE mcd.accountid = :accountid\n" +
  5474. " AND mcd.yyyymm >= :yyyymm";
  5475. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5476. sqlString =
  5477. "UPDATE tp_pc_mouldchangehistory mch\n" +
  5478. " SET mch.yyyymm = NULL\n" +
  5479. " WHERE mch.accountid = :accountid\n" +
  5480. " AND mch.yyyymm >= :yyyymm";
  5481. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5482. oracleTrConn.Commit();
  5483. oracleTrConn.Disconnect();
  5484. return sre;
  5485. }
  5486. catch (Exception ex)
  5487. {
  5488. if (oracleTrConn.ConnState == ConnectionState.Open)
  5489. {
  5490. oracleTrConn.Rollback();
  5491. oracleTrConn.Disconnect();
  5492. }
  5493. throw ex;
  5494. }
  5495. }
  5496. #endregion
  5497. #region 成检材料报损配置
  5498. /// <summary>
  5499. /// 成检材料报损配置工序查询
  5500. /// </summary>
  5501. /// <param name="sUserInfo"></param>
  5502. /// <returns></returns>
  5503. public static ServiceResultEntity GetFinishedCheckProcedure(SUserInfo sUserInfo, ClientRequestEntity cre)
  5504. {
  5505. ServiceResultEntity sre = new ServiceResultEntity();
  5506. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5507. try
  5508. {
  5509. con.Open();
  5510. string sqlString = "SELECT t.procedureid\n" +
  5511. " ,t.procedurename\n" +
  5512. " FROM tp_pc_procedure t\n" +
  5513. " WHERE t.valueflag = '1'\n" +
  5514. " AND t.AccountID = :accountid\n" +
  5515. " AND t.modeltype = -5" +
  5516. " AND (:PROCEDURENAME is null or :PROCEDURENAME = '' or instr(t.procedurename, :PROCEDURENAME) > 0 )\n";
  5517. OracleParameter[] parameters = new OracleParameter[]
  5518. {
  5519. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5520. new OracleParameter(":PROCEDURENAME", OracleDbType.Varchar2, cre.Properties["PROCEDURENAME"], ParameterDirection.Input),
  5521. };
  5522. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5523. return sre;
  5524. }
  5525. catch (Exception ex)
  5526. {
  5527. throw ex;
  5528. }
  5529. finally
  5530. {
  5531. if (con.ConnState == ConnectionState.Open)
  5532. {
  5533. con.Close();
  5534. }
  5535. }
  5536. }
  5537. /// <summary>
  5538. /// 成检材料报损配置查询
  5539. /// </summary>
  5540. /// <param name="sUserInfo"></param>
  5541. /// <returns></returns>
  5542. public static ServiceResultEntity GetIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5543. {
  5544. ServiceResultEntity sre = new ServiceResultEntity();
  5545. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5546. try
  5547. {
  5548. con.Open();
  5549. string sqlString = "SELECT (SELECT 1\n" +
  5550. " FROM tp_pc_procedureidnrktype pit\n" +
  5551. " WHERE pit.idnrktype = d.dictionaryvalue\n" +
  5552. " AND pit.procedureid = :PROCEDUREID) AS check1\n" +
  5553. " ,d.dictionaryvalue as idnrktype \n" +
  5554. " ,(SELECT 1\n" +
  5555. " FROM tp_pc_procedureidnrktype pit\n" +
  5556. " WHERE pit.idnrktype = d.dictionaryvalue\n" +
  5557. " AND pit.procedureid = :PROCEDUREID AND pit.SCANFLAG = 1) AS SCANFLAG\n" +
  5558. " FROM tp_mst_datadictionary d\n" +
  5559. " WHERE d.dictionarytype = 'TPC010'\n" +
  5560. " AND d.valueflag = '1'\n" +
  5561. " AND d.accountid = :accountid" +
  5562. " AND (:PROCEDURENAME is null or :PROCEDURENAME = '' or instr(d.dictionaryvalue, :PROCEDURENAME) > 0 )\n";
  5563. OracleParameter[] parameters = new OracleParameter[]
  5564. {
  5565. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5566. new OracleParameter(":PROCEDUREID", OracleDbType.Int32, cre.Properties["PROCEDUREID"], ParameterDirection.Input),
  5567. new OracleParameter(":PROCEDURENAME", OracleDbType.Varchar2, cre.Properties["PROCEDURENAME"]+"", ParameterDirection.Input),
  5568. };
  5569. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5570. return sre;
  5571. }
  5572. catch (Exception ex)
  5573. {
  5574. throw ex;
  5575. }
  5576. finally
  5577. {
  5578. if (con.ConnState == ConnectionState.Open)
  5579. {
  5580. con.Close();
  5581. }
  5582. }
  5583. }
  5584. /// <summary>
  5585. /// 已选成检材料类型查询
  5586. /// </summary>
  5587. /// <param name="sUserInfo"></param>
  5588. /// <returns></returns>
  5589. public static ServiceResultEntity GetProcedureIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5590. {
  5591. ServiceResultEntity sre = new ServiceResultEntity();
  5592. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5593. try
  5594. {
  5595. con.Open();
  5596. string sqlString = "SELECT pi.procedureid\n" +
  5597. " ,pi.idnrktype\n" +
  5598. " ,pi.SCANFLAG\n" +
  5599. " ,1 as AlreadyCheck\n" +
  5600. " FROM tp_pc_procedureidnrktype pi\n" +
  5601. " WHERE pi.procedureid = :PROCEDUREID";
  5602. OracleParameter[] parameters = new OracleParameter[]
  5603. {
  5604. new OracleParameter(":PROCEDUREID", OracleDbType.Int32, cre.Properties["PROCEDUREID"], ParameterDirection.Input),
  5605. };
  5606. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5607. return sre;
  5608. }
  5609. catch (Exception ex)
  5610. {
  5611. throw ex;
  5612. }
  5613. finally
  5614. {
  5615. if (con.ConnState == ConnectionState.Open)
  5616. {
  5617. con.Close();
  5618. }
  5619. }
  5620. }
  5621. /// <summary>
  5622. /// 保存成检材料类型
  5623. /// </summary>
  5624. /// <param name="sUserInfo"></param>
  5625. /// <returns></returns>
  5626. public static ServiceResultEntity SavePackingBOMData(SUserInfo sUserInfo, ClientRequestEntity cre)
  5627. {
  5628. ServiceResultEntity sre = new ServiceResultEntity();
  5629. int procedureId = Convert.ToInt32(cre.Properties["ProcedureId"]);
  5630. DataTable procedureTable = cre.Data.Tables[0];
  5631. int returnRows = 0;
  5632. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5633. try
  5634. {
  5635. string sqlString = null;
  5636. if (procedureTable != null && procedureTable.Rows.Count > 0)
  5637. {
  5638. //先删除后插入
  5639. sqlString = "delete from tp_pc_procedureidnrktype where procedureid=" + procedureId;
  5640. oracleTrConn.ExecuteNonQuery(sqlString);
  5641. foreach (DataRow item in procedureTable.Rows)
  5642. {
  5643. sqlString = @"insert into tp_pc_procedureidnrktype
  5644. (
  5645. procedureid,
  5646. idnrktype,
  5647. SCANFLAG
  5648. ) values
  5649. ( :procedureid,
  5650. :idnrktype,
  5651. :scanflag
  5652. )";
  5653. OracleParameter[] Paras = new OracleParameter[] {
  5654. new OracleParameter(":procedureid",OracleDbType.Int32,procedureId,ParameterDirection.Input),
  5655. new OracleParameter(":idnrktype",OracleDbType.Varchar2, item["idnrktype"] + "",ParameterDirection.Input),
  5656. new OracleParameter(":scanflag",OracleDbType.Varchar2, item["SCANFLAG"] + "",ParameterDirection.Input),
  5657. };
  5658. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5659. }
  5660. }
  5661. oracleTrConn.Commit();
  5662. }
  5663. catch (Exception ex)
  5664. {
  5665. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5666. {
  5667. oracleTrConn.Rollback();
  5668. oracleTrConn.Disconnect();
  5669. }
  5670. throw ex;
  5671. }
  5672. finally
  5673. {
  5674. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5675. {
  5676. oracleTrConn.Disconnect();
  5677. }
  5678. }
  5679. return sre;
  5680. }
  5681. #endregion
  5682. #region 线边仓组件配置
  5683. /// <summary>
  5684. /// 线边仓查询
  5685. /// </summary>
  5686. /// <param name="sUserInfo"></param>
  5687. /// <param name="cre"></param>
  5688. /// <returns></returns>
  5689. public static ServiceResultEntity GetLGORT(SUserInfo sUserInfo, ClientRequestEntity cre)
  5690. {
  5691. ServiceResultEntity sre = new ServiceResultEntity();
  5692. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5693. try
  5694. {
  5695. con.Open();
  5696. string sqlString = @"SELECT dictionaryvalue,dictionaryID FROM
  5697. TP_MST_DATADICTIONARY MDD
  5698. WHERE DICTIONARYTYPE = :DICTIONARYTYPE
  5699. AND ACCOUNTID =:accountid
  5700. AND VALUEFLAG =1
  5701. AND (:dictionaryvalue IS NULL OR :dictionaryvalue = '' OR INSTR(MDD.DICTIONARYVALUE,:dictionaryvalue)>0)";
  5702. OracleParameter[] parameters = new OracleParameter[]
  5703. {
  5704. new OracleParameter(":DICTIONARYTYPE", OracleDbType.NVarchar2, cre.Properties["DICTIONARYTYPE"], ParameterDirection.Input),
  5705. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5706. new OracleParameter(":dictionaryvalue", OracleDbType.NVarchar2, cre.Properties["dictionaryvalue"], ParameterDirection.Input),
  5707. };
  5708. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5709. return sre;
  5710. }
  5711. catch (Exception ex)
  5712. {
  5713. throw ex;
  5714. }
  5715. finally
  5716. {
  5717. if (con.ConnState == ConnectionState.Open)
  5718. {
  5719. con.Close();
  5720. }
  5721. }
  5722. }
  5723. /// <summary>
  5724. /// 组件类型配置
  5725. /// </summary>
  5726. /// <param name="sUserInfo"></param>
  5727. /// <param name="cre"></param>
  5728. /// <returns></returns>
  5729. public static ServiceResultEntity GetIDNRKTYPE(SUserInfo sUserInfo, ClientRequestEntity cre)
  5730. {
  5731. ServiceResultEntity sre = new ServiceResultEntity();
  5732. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5733. try
  5734. {
  5735. con.Open();
  5736. string sqlString = @"SELECT mdd.dictionaryvalue ModuleName
  5737. ,CASE
  5738. WHEN pl.idnrktype IS NULL THEN
  5739. 0
  5740. ELSE
  5741. 1
  5742. END check1
  5743. FROM tp_mst_datadictionary mdd
  5744. LEFT JOIN (SELECT tpl.idnrktype
  5745. FROM tp_pm_lgortidnrktyperel tpl
  5746. WHERE tpl.lgort = :lgort) pl
  5747. ON mdd.dictionaryvalue = pl.idnrktype
  5748. WHERE mdd.valueflag = 1
  5749. AND mdd.dictionarytype = 'TPC010'
  5750. AND mdd.accountid = :accountid
  5751. AND (:ModuleName is null or :ModuleName = '' or instr (mdd.dictionaryvalue,:ModuleName)>0)";
  5752. OracleParameter[] parameters = new OracleParameter[]
  5753. {
  5754. new OracleParameter(":LGORT", OracleDbType.NVarchar2, cre.Properties["LGORT"], ParameterDirection.Input),
  5755. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5756. new OracleParameter(":ModuleName", OracleDbType.NVarchar2,cre.Properties["ModuleName"], ParameterDirection.Input),
  5757. };
  5758. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5759. return sre;
  5760. }
  5761. catch (Exception ex)
  5762. {
  5763. throw ex;
  5764. }
  5765. finally
  5766. {
  5767. if (con.ConnState == ConnectionState.Open)
  5768. {
  5769. con.Close();
  5770. }
  5771. }
  5772. }
  5773. /// <summary>
  5774. /// 保存线边仓与组件类别关联关系
  5775. /// </summary>
  5776. /// <param name="sUserInfo"></param>
  5777. /// <param name="cre"></param>
  5778. /// <returns></returns>
  5779. public static ServiceResultEntity SaveLgortIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5780. {
  5781. ServiceResultEntity sre = new ServiceResultEntity();
  5782. string LGORT = cre.Properties["LGORT"].ToString();
  5783. DataTable LGORTTable = cre.Data.Tables[0];
  5784. int returnRows = 0;
  5785. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5786. try
  5787. {
  5788. string sqlString = "delete from tp_pm_lgortidnrktyperel where LGORT =" + LGORT;
  5789. oracleTrConn.ExecuteNonQuery(sqlString);
  5790. if (LGORTTable != null && LGORTTable.Rows.Count > 0)
  5791. {
  5792. foreach (DataRow item in LGORTTable.Rows)
  5793. {
  5794. sqlString = @"INSERT INTO tp_pm_lgortidnrktyperel
  5795. (lgort
  5796. ,idnrktype)
  5797. VALUES
  5798. (:lgort
  5799. ,:idnrktype)";
  5800. OracleParameter[] Paras = new OracleParameter[] {
  5801. new OracleParameter(":lgort",OracleDbType.NVarchar2,LGORT,ParameterDirection.Input),
  5802. new OracleParameter(":idnrktype",OracleDbType.Varchar2, item["idnrktype"] + "",ParameterDirection.Input),
  5803. };
  5804. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5805. }
  5806. }
  5807. oracleTrConn.Commit();
  5808. }
  5809. catch (Exception ex)
  5810. {
  5811. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5812. {
  5813. oracleTrConn.Rollback();
  5814. oracleTrConn.Disconnect();
  5815. }
  5816. throw ex;
  5817. }
  5818. finally
  5819. {
  5820. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5821. {
  5822. oracleTrConn.Disconnect();
  5823. }
  5824. }
  5825. return sre;
  5826. }
  5827. #endregion
  5828. #region 产品装配明细表
  5829. /// <summary>
  5830. /// 产品装配明细表查询
  5831. /// </summary>
  5832. /// <param name="sUserInfo"></param>
  5833. /// <returns></returns>
  5834. public static ServiceResultEntity GetBarCodeIdnrkRel(SUserInfo sUserInfo, ClientRequestEntity cre)
  5835. {
  5836. ServiceResultEntity sre = new ServiceResultEntity();
  5837. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5838. try
  5839. {
  5840. string sqlString = @"
  5841. SELECT T.RELATIONID,
  5842. T.BARCODE,
  5843. T.MATNR,
  5844. T.IDNRK,
  5845. T.MEINS,
  5846. T.MENGE,
  5847. T.IDNRKNAME,
  5848. case when instr(T.IDNRKONLYCODE,',') > 0 then
  5849. substr(T.IDNRKONLYCODE,0,instr(T.IDNRKONLYCODE,',')-1)
  5850. else T.IDNRKONLYCODE end as IDNRKONLYCODE,
  5851. T.CHARG,
  5852. T.LGORT,
  5853. P.PROCEDURENAME,
  5854. T.CREATETIME,
  5855. CU.USERNAME AS CREATEUSERNAME
  5856. FROM TP_PM_BARCODEIDNRKREL T
  5857. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  5858. ON GDD.BARCODE = T.BARCODE
  5859. AND (GDD.ONELEVELTYPEID IS NULL OR GDD.ONELEVELTYPEID <> 7)
  5860. AND (GDD.TWOLEVELTYPEID IS NULL OR GDD.TWOLEVELTYPEID <> 7)
  5861. LEFT JOIN TP_PC_PROCEDURE P
  5862. ON T.PROCEDUREID = P.PROCEDUREID
  5863. LEFT JOIN TP_MST_USER CU
  5864. ON CU.USERID = T.CREATEUSERID
  5865. WHERE T.ACCOUNTID = :ACCOUNTID
  5866. AND T.CREATETIME >= :CREATETIMEBEGIN
  5867. AND T.CREATETIME < :CREATETIMEEND
  5868. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(T.BARCODE, :BARCODE) > 0)
  5869. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(T.MATNR, :MATNR) > 0)
  5870. AND (:IDNRK IS NULL OR :IDNRK = '' OR INSTR(T.IDNRK, :IDNRK) > 0)
  5871. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(T.IDNRKNAME, :IDNRKNAME) > 0)
  5872. AND (:NOONLYCODEFLAG = 1 OR T.IDNRKONLYCODE IS NULL OR T.IDNRKONLYCODE = '') ";
  5873. OracleParameter[] parameters = new OracleParameter[]
  5874. {
  5875. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5876. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  5877. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  5878. new OracleParameter(":IDNRK", OracleDbType.Varchar2, cre.Properties["Idnrk"], ParameterDirection.Input),
  5879. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  5880. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  5881. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  5882. new OracleParameter(":NOONLYCODEFLAG", OracleDbType.Int32, cre.Properties["NoOnlyCodeFlag"], ParameterDirection.Input),
  5883. };
  5884. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5885. return sre;
  5886. }
  5887. catch (Exception ex)
  5888. {
  5889. throw ex;
  5890. }
  5891. finally
  5892. {
  5893. if (con.ConnState == ConnectionState.Open)
  5894. {
  5895. con.Close();
  5896. }
  5897. }
  5898. }
  5899. /// <summary>
  5900. /// 保存产品装配组件唯一编码
  5901. /// </summary>
  5902. /// <param name="sUserInfo"></param>
  5903. /// <returns></returns>
  5904. public static ServiceResultEntity SaveIdnrkOnlyCode(SUserInfo sUserInfo, ClientRequestEntity cre)
  5905. {
  5906. ServiceResultEntity sre = new ServiceResultEntity();
  5907. int relationID = Convert.ToInt32(cre.Properties["RelationID"]);
  5908. string idnrkOnlyCode = cre.Properties["IdnrkOnlyCode"] + "";
  5909. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5910. try
  5911. {
  5912. string sqlString = null;
  5913. //更新
  5914. sqlString = @"update TP_PM_BARCODEIDNRKREL set IDNRKONLYCODE = :idnrkOnlyCode where RELATIONID = :relationID";
  5915. OracleParameter[] Paras = new OracleParameter[] {
  5916. new OracleParameter(":relationID",OracleDbType.Int32,relationID,ParameterDirection.Input),
  5917. new OracleParameter(":idnrkOnlyCode",OracleDbType.Varchar2, idnrkOnlyCode,ParameterDirection.Input),
  5918. };
  5919. sre.OtherStatus = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5920. oracleTrConn.Commit();
  5921. }
  5922. catch (Exception ex)
  5923. {
  5924. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5925. {
  5926. oracleTrConn.Rollback();
  5927. oracleTrConn.Disconnect();
  5928. }
  5929. throw ex;
  5930. }
  5931. finally
  5932. {
  5933. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5934. {
  5935. oracleTrConn.Disconnect();
  5936. }
  5937. }
  5938. return sre;
  5939. }
  5940. #endregion
  5941. #region 品管数据记录明细表
  5942. /// <summary>
  5943. /// 品管数据记录明细表
  5944. /// </summary>
  5945. /// <param name="sUserInfo"></param>
  5946. /// <returns></returns>
  5947. public static ServiceResultEntity GetPinGuanDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  5948. {
  5949. ServiceResultEntity sre = new ServiceResultEntity();
  5950. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5951. try
  5952. {
  5953. string sqlString = @"
  5954. SELECT DISTINCT PGI.BARCODE,
  5955. GD.GOODSCODE,
  5956. GD.GROUTINGLINECODE,
  5957. PGI.WORKSTATION,
  5958. U.USERNAME,
  5959. U.USERCODE,
  5960. PGI.CREATETIME,
  5961. PGI.INSPECTIONLEVEL,
  5962. PGI.PACKINGDEFECT,
  5963. PGI.INSPECTIONGOODSLEVEL,
  5964. L.GOODSLEVELNAME,
  5965. (SELECT LISTAGG(to_char(D.defectcode) || '#' || to_char(d.defectname) || '#' ||
  5966. to_char(d.defectusercode), ',') within GROUP(ORDER BY d.productiondefectid)
  5967. FROM tp_pm_defect d
  5968. WHERE D.PRODUCTIONDATAID = PDD.PRODUCTIONDATAID
  5969. AND D.VALUEFLAG = '1') AS DEFECT,
  5970. PGI.VALUEFLAG
  5971. FROM TP_PM_PinGuanInspection PGI
  5972. LEFT JOIN TP_MST_USER U ON PGI.CREATEUSERID = U.USERID
  5973. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.BARCODE = PGI.BARCODE
  5974. LEFT JOIN TP_MST_GOODSLEVEL L ON L.GOODSLEVELTYPEID = GD.GOODSLEVELTYPEID
  5975. LEFT JOIN (SELECT PD2.BARCODE,
  5976. PD2.PRODUCTIONDATAID FROM (
  5977. SELECT PD1.BARCODE,
  5978. PD1.PRODUCTIONDATAID,
  5979. ROW_NUMBER() OVER(PARTITION BY PD1.BARCODE ORDER BY PD1.PRODUCTIONDATAID DESC) AS DATAID
  5980. FROM TP_PM_PRODUCTIONDATA PD1
  5981. WHERE PD1.VALUEFLAG = '1'
  5982. AND PD1.CHECKBATCHNO = '1'
  5983. ORDER BY PD1.CREATETIME DESC
  5984. ) PD2 WHERE PD2.DATAID = 1) PDD ON PDD.BARCODE = PGI.BARCODE
  5985. WHERE PGI.CREATETIME >= :datebeginMasterStar
  5986. AND PGI.CREATETIME <= :datebeginMasterEnd ";
  5987. if (cre.Properties["BarCode"] + "" != "" && cre.Properties["BarCode"] + "" != null)
  5988. {
  5989. string barcode = cre.Properties["BarCode"].ToString();
  5990. sqlString += " AND PGI.BARCODE = :BARCODE ";
  5991. }
  5992. if (cre.Properties["WorkStation"] + "" != "" && cre.Properties["WorkStation"] + "" != null)
  5993. {
  5994. sqlString += " AND PGI.WORKSTATION = :WORKSTATION ";
  5995. }
  5996. if (cre.Properties["User"] + "" != "" && cre.Properties["User"] + "" != null)
  5997. {
  5998. sqlString += " AND U.USERCODE like :USERCODE ";
  5999. }
  6000. sqlString += " order by PGI.CREATETIME,PGI.BARCODE ";
  6001. OracleParameter[] parameters = new OracleParameter[]
  6002. {
  6003. new OracleParameter(":datebeginMasterStar", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6004. new OracleParameter(":datebeginMasterEnd", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6005. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6006. new OracleParameter(":WORKSTATION", OracleDbType.Varchar2, cre.Properties["WorkStation"], ParameterDirection.Input),
  6007. new OracleParameter(":USERCODE", OracleDbType.Varchar2, "%"+cre.Properties["User"]+"%", ParameterDirection.Input),
  6008. };
  6009. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6010. return sre;
  6011. }
  6012. catch (Exception ex)
  6013. {
  6014. throw ex;
  6015. }
  6016. finally
  6017. {
  6018. if (con.ConnState == ConnectionState.Open)
  6019. {
  6020. con.Close();
  6021. }
  6022. }
  6023. }
  6024. #endregion
  6025. #region 作业指导书配置
  6026. /// <summary>
  6027. /// 作业指导书配置
  6028. /// </summary>
  6029. /// <param name="sUserInfo"></param>
  6030. /// <param name="cre"></param>
  6031. /// <returns></returns>
  6032. public static ServiceResultEntity GetProcedure(SUserInfo sUserInfo, ClientRequestEntity cre)
  6033. {
  6034. ServiceResultEntity sre = new ServiceResultEntity();
  6035. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6036. try
  6037. {
  6038. con.Open();
  6039. string sqlString = "";
  6040. if (cre.Properties["onlyflag"].ToString() == "1")
  6041. {
  6042. sqlString = " SELECT sd.procedureName,sd.procedureID,1 as AlreadyCheck" +
  6043. " FROM TP_PC_SOPBOOKTYPEDATA sd\n" +
  6044. " WHERE sd.soptypeid = :soptypeid";
  6045. }
  6046. else
  6047. {
  6048. sqlString = "SELECT (SELECT 1\n" +
  6049. " FROM TP_PC_SOPBOOKTYPEDATA sd\n" +
  6050. " WHERE sd.procedurename = p.procedureName " +
  6051. " and sd.soptypeid = :soptypeid) AS check1\n" +
  6052. " ,p.procedureName as procedureName\n" +
  6053. " ,p.procedureID\n" +
  6054. " FROM tp_pc_procedure p\n" +
  6055. " WHERE p.valueflag = '1'\n" +
  6056. " AND p.accountid = :accountid";
  6057. if (!string.IsNullOrWhiteSpace(cre.Properties["ProcedureName"] + ""))
  6058. {
  6059. sqlString += " AND P.PROCEDURENAME LIKE :PROCEDURENAME";
  6060. }
  6061. }
  6062. OracleParameter[] parameters = new OracleParameter[]
  6063. {
  6064. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6065. new OracleParameter(":soptypeid", OracleDbType.NVarchar2, cre.Properties["SOPTYPEID"], ParameterDirection.Input),
  6066. new OracleParameter(":PROCEDURENAME", OracleDbType.NVarchar2, "%"+cre.Properties["ProcedureName"]+"%", ParameterDirection.Input),
  6067. };
  6068. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6069. return sre;
  6070. }
  6071. catch (Exception ex)
  6072. {
  6073. throw ex;
  6074. }
  6075. finally
  6076. {
  6077. if (con.ConnState == ConnectionState.Open)
  6078. {
  6079. con.Close();
  6080. }
  6081. }
  6082. }
  6083. /// <summary>
  6084. /// 保存 作业指导书配置
  6085. /// </summary>
  6086. /// <param name="sUserInfo"></param>
  6087. /// <returns></returns>
  6088. public static ServiceResultEntity SaveSOPData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6089. {
  6090. ServiceResultEntity sre = new ServiceResultEntity();
  6091. int soptypeID = Convert.ToInt32(cre.Properties["SOPTYPEID"]);
  6092. string soptype = cre.Properties["SOPTYPE"] + "";
  6093. DataTable procedureTable = cre.Data.Tables[0];
  6094. int returnRows = 0;
  6095. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  6096. try
  6097. {
  6098. string sqlString = null;
  6099. if (procedureTable != null && procedureTable.Rows.Count > 0)
  6100. {
  6101. //先删除后插入
  6102. sqlString = "delete from TP_PC_SOPBOOKTYPEDATA where soptypeid=" + soptypeID;
  6103. oracleTrConn.ExecuteNonQuery(sqlString);
  6104. foreach (DataRow item in procedureTable.Rows)
  6105. {
  6106. sqlString = @"insert into TP_PC_SOPBOOKTYPEDATA
  6107. (
  6108. soptypeid,
  6109. SOPTYPENAME,
  6110. PROCEDUREID,
  6111. PROCEDURENAME,
  6112. VALUEFLAG
  6113. ) values
  6114. ( :soptypeid,
  6115. :SOPTYPENAME,
  6116. :PROCEDUREID,
  6117. :PROCEDURENAME,
  6118. 1
  6119. )";
  6120. OracleParameter[] Paras = new OracleParameter[] {
  6121. new OracleParameter(":soptypeid",OracleDbType.Int32,soptypeID,ParameterDirection.Input),
  6122. new OracleParameter(":SOPTYPENAME",OracleDbType.Varchar2, soptype,ParameterDirection.Input),
  6123. new OracleParameter(":PROCEDUREID",OracleDbType.Int32,item["PROCEDUREID"],ParameterDirection.Input),
  6124. new OracleParameter(":PROCEDURENAME",OracleDbType.Varchar2, item["PROCEDURENAME"] + "",ParameterDirection.Input),
  6125. };
  6126. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  6127. }
  6128. }
  6129. oracleTrConn.Commit();
  6130. }
  6131. catch (Exception ex)
  6132. {
  6133. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6134. {
  6135. oracleTrConn.Rollback();
  6136. oracleTrConn.Disconnect();
  6137. }
  6138. throw ex;
  6139. }
  6140. finally
  6141. {
  6142. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6143. {
  6144. oracleTrConn.Disconnect();
  6145. }
  6146. }
  6147. return sre;
  6148. }
  6149. #endregion
  6150. #region 分配到工序节点
  6151. /// <summary>
  6152. /// 分配到工序节点
  6153. /// </summary>
  6154. /// <param name="sUserInfo"></param>
  6155. /// <param name="cre"></param>
  6156. /// <returns></returns>
  6157. public static ServiceResultEntity GetProcedureID(SUserInfo sUserInfo, ClientRequestEntity cre)
  6158. {
  6159. ServiceResultEntity sre = new ServiceResultEntity();
  6160. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6161. try
  6162. {
  6163. string sqlString = "SELECT PU.PROCEDUREID,PU.NODENO,P.PROCEDURENAME,1 as AlreadyCheck\n" +
  6164. "FROM TP_PC_ProcedureUser PU\n" +
  6165. "LEFT JOIN TP_PC_procedure P ON PU.PROCEDUREID = P.PROCEDUREID\n" +
  6166. "WHERE PU.USERID = :userID";
  6167. OracleParameter[] parameters = new OracleParameter[]
  6168. {
  6169. new OracleParameter(":userID", OracleDbType.NVarchar2, cre.Properties["userID"], ParameterDirection.Input),
  6170. };
  6171. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6172. return sre;
  6173. }
  6174. catch (Exception ex)
  6175. {
  6176. throw ex;
  6177. }
  6178. finally
  6179. {
  6180. if (con.ConnState == ConnectionState.Open)
  6181. {
  6182. con.Close();
  6183. }
  6184. }
  6185. }
  6186. /// <summary>
  6187. /// 保存 分配到工序节点
  6188. /// </summary>
  6189. /// <param name="sUserInfo"></param>
  6190. /// <returns></returns>
  6191. public static ServiceResultEntity SaveProcedureData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6192. {
  6193. ServiceResultEntity sre = new ServiceResultEntity();
  6194. int userID = Convert.ToInt32(cre.Properties["UserID"]);
  6195. DataTable procedureTable = cre.Data.Tables[0];
  6196. int returnRows = 0;
  6197. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  6198. try
  6199. {
  6200. string sqlString = null;
  6201. if (procedureTable != null && procedureTable.Rows.Count > 0)
  6202. {
  6203. //先删除后插入
  6204. sqlString = "delete from TP_PC_ProcedureUser where userid=" + userID;
  6205. oracleTrConn.ExecuteNonQuery(sqlString);
  6206. foreach (DataRow item in procedureTable.Rows)
  6207. {
  6208. sqlString = @"SELECT NODENO FROM TP_PC_procedure WHERE PROCEDUREID = " + item["PROCEDUREID"];
  6209. int nodeNo = int.Parse(oracleTrConn.GetSqlResultToStr(sqlString));
  6210. sqlString = @"insert into TP_PC_ProcedureUser
  6211. (
  6212. USERID,
  6213. PROCEDUREID,
  6214. PRODUCTIONLINEID,
  6215. NODENO,
  6216. CREATEUSERID
  6217. ) values
  6218. ( :USERID,
  6219. :PROCEDUREID,
  6220. 1,
  6221. :NODENO,
  6222. :CREATEUSERID
  6223. )";
  6224. OracleParameter[] Paras = new OracleParameter[] {
  6225. new OracleParameter(":USERID",OracleDbType.Int32,userID,ParameterDirection.Input),
  6226. new OracleParameter(":PROCEDUREID",OracleDbType.Int32,item["PROCEDUREID"],ParameterDirection.Input),
  6227. new OracleParameter(":NODENO",OracleDbType.Varchar2, nodeNo,ParameterDirection.Input),
  6228. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6229. };
  6230. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  6231. }
  6232. }
  6233. oracleTrConn.Commit();
  6234. }
  6235. catch (Exception ex)
  6236. {
  6237. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6238. {
  6239. oracleTrConn.Rollback();
  6240. oracleTrConn.Disconnect();
  6241. }
  6242. throw ex;
  6243. }
  6244. finally
  6245. {
  6246. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6247. {
  6248. oracleTrConn.Disconnect();
  6249. }
  6250. }
  6251. return sre;
  6252. }
  6253. #endregion
  6254. #region BOM物料检验明细表
  6255. /// <summary>
  6256. /// BOM物料检验明细表
  6257. /// </summary>
  6258. /// <param name="sUserInfo"></param>
  6259. /// <returns></returns>
  6260. public static ServiceResultEntity GetBOMDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6261. {
  6262. ServiceResultEntity sre = new ServiceResultEntity();
  6263. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6264. try
  6265. {
  6266. string sqlString = @"
  6267. SELECT f.barcode
  6268. ,CASE
  6269. WHEN f.checkvalue = 1 THEN
  6270. '装配正确'
  6271. WHEN f.checkvalue = 2 THEN
  6272. '装配错误'
  6273. WHEN f.checkvalue = 3 THEN
  6274. '漏装'
  6275. WHEN f.checkvalue = 4 THEN
  6276. '多装'
  6277. ELSE
  6278. ''
  6279. END checkvalue
  6280. ,pd.idnrk
  6281. ,pd.MEINS
  6282. ,f.bomname IDNRKNAME
  6283. ,cu.usercode CREATEUSERNAME
  6284. ,cu.USERNAME CheckNames
  6285. ,f.createtime
  6286. FROM tp_pm_fqcbom f
  6287. LEFT JOIN tp_mst_packingbomdetail pd
  6288. ON pd.packingbomdetailid = f.packingbomdetailid
  6289. LEFT JOIN tp_mst_user cu
  6290. ON cu.userid = f.createuserid
  6291. WHERE f.CREATETIME >= :CREATETIMEBEGIN
  6292. AND f.CREATETIME < :CREATETIMEEND
  6293. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(f.BARCODE, :BARCODE) > 0)
  6294. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(pd.idnrk, :MATNR) > 0)
  6295. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(f.bomname, :IDNRKNAME) > 0)
  6296. AND (:CHECKVALUE = 0 OR f.CHECKVALUE IS NULL OR f.checkvalue = :CHECKVALUE) ";
  6297. OracleParameter[] parameters = new OracleParameter[]
  6298. {
  6299. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6300. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  6301. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  6302. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6303. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6304. new OracleParameter(":CHECKVALUE", OracleDbType.Int32, cre.Properties["CHECKVALUE"], ParameterDirection.Input),
  6305. };
  6306. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6307. return sre;
  6308. }
  6309. catch (Exception ex)
  6310. {
  6311. throw ex;
  6312. }
  6313. finally
  6314. {
  6315. if (con.ConnState == ConnectionState.Open)
  6316. {
  6317. con.Close();
  6318. }
  6319. }
  6320. }
  6321. /// <summary>
  6322. /// BOM物料检验汇总
  6323. /// </summary>
  6324. /// <param name="sUserInfo"></param>
  6325. /// <returns></returns>
  6326. public static ServiceResultEntity GetBOMDSummary(SUserInfo sUserInfo, ClientRequestEntity cre)
  6327. {
  6328. ServiceResultEntity sre = new ServiceResultEntity();
  6329. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6330. try
  6331. {
  6332. string sqlString = @"
  6333. SELECT
  6334. BARCODE,
  6335. GOODSCODE,
  6336. INSPECTNAME,
  6337. CREATEUSERNAME,
  6338. CheckNames,
  6339. CASE WHEN Unqualifiednums <> 0 THEN '不合格' ELSE ' 合格'END AS ConformityMarking,
  6340. createtime
  6341. FROM(
  6342. SELECT
  6343. DISTINCT
  6344. pd.BARCODE,
  6345. PD.GOODSCODE,
  6346. PD.INSPECTNAME ,
  6347. pd.CREATEUSERNAME,
  6348. pd.CheckNames,
  6349. PD.createtime,
  6350. SUM(CASE WHEN PD.checkflag=1 THEN 1 ELSE 0 END ) qualifiednums,
  6351. SUM(CASE WHEN PD.checkflag<>1 THEN 1 ELSE 0 END ) Unqualifiednums
  6352. FROM(
  6353. SELECT f.barcode ,GD.GOODSCODE
  6354. ,CASE WHEN f.checkvalue = 1 THEN '装配正确'
  6355. WHEN f.checkvalue = 2 THEN '装配错误'
  6356. WHEN f.checkvalue = 3 THEN '漏装'
  6357. WHEN f.checkvalue = 4 THEN '多装'
  6358. ELSE '' END checkvalue
  6359. ,f.checkvalue AS checkflag
  6360. ,pd.idnrk
  6361. ,pd.MEINS
  6362. ,f.bomname IDNRKNAME
  6363. ,cu.usercode CREATEUSERNAME
  6364. ,cu.USERNAME CheckNames
  6365. ,f.createtime
  6366. ,fi.INSPECTNAME
  6367. FROM tp_pm_fqcbom f
  6368. LEFT JOIN tp_mst_packingbomdetail pd ON pd.packingbomdetailid = f.packingbomdetailid
  6369. LEFT JOIN tp_mst_user cu ON cu.userid = f.createuserid
  6370. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.BARCODE=F.BARCODE
  6371. LEFT JOIN TP_PM_FQCITEMSDATA fid ON fid.barcode = f.barcode and fid.INSPECTTYPE = '617'
  6372. left join TP_PM_FQCITEMS fi on fi.itemsid = fid.itemsid
  6373. WHERE f.CREATETIME >= :CREATETIMEBEGIN
  6374. AND f.CREATETIME < :CREATETIMEEND
  6375. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(f.BARCODE, :BARCODE) > 0)
  6376. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(pd.idnrk, :MATNR) > 0)
  6377. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(f.bomname, :IDNRKNAME) > 0)
  6378. AND (:CHECKVALUE = 0 OR f.CHECKVALUE IS NULL OR f.checkvalue = :CHECKVALUE)
  6379. ) PD
  6380. GROUP BY pd.BARCODE, PD.GOODSCODE,pd.CREATEUSERNAME,pd.CheckNames, PD.INSPECTNAME, PD.createtime
  6381. ) ";
  6382. OracleParameter[] parameters = new OracleParameter[]
  6383. {
  6384. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6385. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  6386. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  6387. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6388. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6389. new OracleParameter(":CHECKVALUE", OracleDbType.Int32, cre.Properties["CHECKVALUE"], ParameterDirection.Input),
  6390. };
  6391. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6392. return sre;
  6393. }
  6394. catch (Exception ex)
  6395. {
  6396. throw ex;
  6397. }
  6398. finally
  6399. {
  6400. if (con.ConnState == ConnectionState.Open)
  6401. {
  6402. con.Close();
  6403. }
  6404. }
  6405. }
  6406. #endregion
  6407. #region BOM物料检验明细表
  6408. /// <summary>
  6409. /// BOM物料检验明细表
  6410. /// </summary>
  6411. /// <param name="sUserInfo"></param>
  6412. /// <returns></returns>
  6413. public static ServiceResultEntity GetBarCodeData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6414. {
  6415. ServiceResultEntity sre = new ServiceResultEntity();
  6416. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6417. try
  6418. {
  6419. string barcodes = "";
  6420. string barcodeString = @"SELECT distinct p.BARCODE FROM TP_PM_FQCITEMSDATA p
  6421. WHERE p.VALUEFLAG =1
  6422. AND p.CREATETIME>=:CREATETIMEBEGIN
  6423. AND p.CREATETIME<=:CREATETIMEEND
  6424. AND ( p.BARCODE = :BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6425. AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6426. ";
  6427. OracleParameter[] parameters = new OracleParameter[]
  6428. {
  6429. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6430. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6431. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6432. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6433. };
  6434. DataTable barcodeTable = con.GetSqlResultToDt(barcodeString, parameters);
  6435. if (barcodeTable != null && barcodeTable.Rows.Count > 0)
  6436. {
  6437. for (int i = 0; i < barcodeTable.Rows.Count; i++)
  6438. {
  6439. if (i == 0 )
  6440. {
  6441. barcodes = barcodeTable.Rows[i]["BARCODE"].ToString();
  6442. }
  6443. else if (i <= 100)
  6444. {
  6445. barcodes = barcodes + "," + barcodeTable.Rows[i]["BARCODE"].ToString();
  6446. }
  6447. }
  6448. }
  6449. string sqlString = "";
  6450. if (string.IsNullOrEmpty( cre.Properties["BarCode"].ToString()))
  6451. {
  6452. sqlString = @"
  6453. SELECT *
  6454. FROM (select
  6455. p.INSPECTITEM AS 检验项目,
  6456. fd.technicalrequirement as 检验依据,
  6457. p.BARCODE,
  6458. CASE WHEN p.INSPECTVALUE = '1' AND tpf.INSPECTMARK = '630' THEN cast('合格'as nvarchar2(10)) ELSE p.INSPECTVALUE END INSPECTVALUE
  6459. from TP_PM_FQCITEMSDATA p
  6460. LEFT JOIN TP_PM_FQCITEMSDETAIL tpf ON p.INSPECTITEM = tpf.INSPECTITEM AND p.ITEMSID = tpf.ITEMSID
  6461. left join tp_pm_fqcitemsdetail fd on p.itemsdetailid = fd.itemsdetailid
  6462. WHERE p.VALUEFLAG =1
  6463. AND p.CREATETIME>=:CREATETIMEBEGIN
  6464. AND p.CREATETIME<=:CREATETIMEEND
  6465. AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6466. AND ( p.BARCODE IN (" + barcodes + ") ) ) PIVOT (listagg ('['||INSPECTVALUE||']', ',') WITHIN GROUP (ORDER BY INSPECTVALUE) FOR BARCODE IN (" + barcodes + ")) ";
  6467. }
  6468. else
  6469. {
  6470. sqlString = @"
  6471. SELECT *
  6472. FROM (select
  6473. p.INSPECTITEM AS 检验项目,
  6474. fd.technicalrequirement as 检验依据,
  6475. p.BARCODE,
  6476. CASE WHEN p.INSPECTVALUE = '1' AND tpf.INSPECTMARK = '630' THEN cast('合格'as nvarchar2(10)) ELSE p.INSPECTVALUE END INSPECTVALUE
  6477. from TP_PM_FQCITEMSDATA p
  6478. LEFT JOIN TP_PM_FQCITEMSDETAIL tpf ON p.INSPECTITEM = tpf.INSPECTITEM AND p.ITEMSID = tpf.ITEMSID
  6479. left join tp_pm_fqcitemsdetail fd on p.itemsdetailid = fd.itemsdetailid
  6480. WHERE p.VALUEFLAG =1
  6481. AND p.CREATETIME>=:CREATETIMEBEGIN
  6482. AND p.CREATETIME<=:CREATETIMEEND
  6483. AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6484. AND (p.BARCODE = :BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6485. ) PIVOT (listagg ('['||INSPECTVALUE||']', ',') WITHIN GROUP (ORDER BY INSPECTVALUE) FOR BARCODE IN (" + barcodes + ")) ";
  6486. }
  6487. parameters = new OracleParameter[]
  6488. {
  6489. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6490. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6491. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6492. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6493. };
  6494. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6495. sre.Data.Tables[0].TableName = "Detail";
  6496. sqlString = @" SELECT distinct fd.barcode,g.goodscode,f.inspectname ,u.username, to_char(fd.createtime, 'yyyy-mm-dd hh24:mi') createtime
  6497. FROM TP_PM_FQCITEMSDATA fd
  6498. left join TP_PM_FQCITEMS f on f.itemsid = fd.itemsid
  6499. left join tp_mst_goods g on fd.goodsid = g.goodsid
  6500. left join tp_mst_user u on fd.createuserid = u.userid
  6501. WHERE fd.VALUEFLAG =1
  6502. AND fd.CREATETIME>=:CREATETIMEBEGIN
  6503. AND fd.CREATETIME<=:CREATETIMEEND
  6504. AND (fd.barcode=:BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6505. AND (fd.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6506. ";
  6507. parameters = new OracleParameter[]
  6508. {
  6509. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6510. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6511. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6512. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6513. };
  6514. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  6515. sre.Data.Tables[1].TableName = "Data";
  6516. return sre;
  6517. }
  6518. catch (Exception ex)
  6519. {
  6520. throw ex;
  6521. }
  6522. finally
  6523. {
  6524. if (con.ConnState == ConnectionState.Open)
  6525. {
  6526. con.Close();
  6527. }
  6528. }
  6529. }
  6530. /// <summary>
  6531. /// 查询导出明细
  6532. /// </summary>
  6533. /// <param name="sUserInfo"></param>
  6534. /// <returns></returns>
  6535. public static ServiceResultEntity GetDaochuData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6536. {
  6537. ServiceResultEntity sre = new ServiceResultEntity();
  6538. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6539. try
  6540. {
  6541. string sqlString = @" SELECT fd.barcode
  6542. ,g.goodscode
  6543. ,gt.goodstypename
  6544. ,g.groutingdate
  6545. ,fd.inspectitem
  6546. ,case when fdd.unitname is null then '-'
  6547. else to_char(fdd.unitname) end unitname
  6548. ,fdd.technicalrequirement
  6549. ,fd.inspectvalue
  6550. ,case when fd.isqualified = 1 then '合格'
  6551. else '不合格' end as isqualified
  6552. FROM tp_pm_fqcitemsdata fd
  6553. LEFT JOIN tp_pm_fqcitemsdetail fdd
  6554. ON fd.itemsdetailid = fdd.itemsdetailid
  6555. LEFT JOIN tp_pm_fqcitems f
  6556. ON f.itemsid = fd.itemsid
  6557. left join tp_pm_groutingdailydetail g on
  6558. g.barcode = fd.barcode
  6559. left join tp_mst_goods gg on
  6560. gg.goodsid = g.goodsid
  6561. left join tp_mst_goodstype gt on
  6562. gg.goodstypeid = gt.goodstypeid
  6563. WHERE fd.barcode = :BARCODE
  6564. AND f.inspectname = :INSPECTNAME
  6565. AND fd.valueflag = 1
  6566. ";
  6567. OracleParameter[] parameters = new OracleParameter[]
  6568. {
  6569. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6570. new OracleParameter(":INSPECTNAME", OracleDbType.Varchar2, cre.Properties["InspectName"], ParameterDirection.Input),
  6571. };
  6572. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6573. return sre;
  6574. }
  6575. catch (Exception ex)
  6576. {
  6577. throw ex;
  6578. }
  6579. finally
  6580. {
  6581. if (con.ConnState == ConnectionState.Open)
  6582. {
  6583. con.Close();
  6584. }
  6585. }
  6586. }
  6587. #endregion
  6588. #region QC检验计划完成明细表
  6589. /// <summary>
  6590. /// BOM物料检验明细表
  6591. /// </summary>
  6592. /// <param name="sUserInfo"></param>
  6593. /// <returns></returns>
  6594. public static ServiceResultEntity GetInspectType(SUserInfo sUserInfo, ClientRequestEntity cre)
  6595. {
  6596. ServiceResultEntity sre = new ServiceResultEntity();
  6597. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6598. try
  6599. {
  6600. string sqlString = @"SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno " +
  6601. " FROM TP_MST_DataDictionary dd\n" +
  6602. " WHERE dd.DictionaryType = 'TPC021'\n" +
  6603. " AND dd.valueflag = '1'\n" +
  6604. " AND dd.accountid = :ACCOUNTID\n" +
  6605. " ORDER BY dd.displayno";
  6606. OracleParameter[] parameters = new OracleParameter[]
  6607. {
  6608. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6609. };
  6610. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6611. return sre;
  6612. }
  6613. catch (Exception ex)
  6614. {
  6615. throw ex;
  6616. }
  6617. finally
  6618. {
  6619. if (con.ConnState == ConnectionState.Open)
  6620. {
  6621. con.Close();
  6622. }
  6623. }
  6624. }
  6625. /// <summary>
  6626. /// BOM物料检验计划汇总
  6627. /// </summary>
  6628. /// <param name="sUserInfo"></param>
  6629. /// <returns></returns>
  6630. public static ServiceResultEntity GetDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  6631. {
  6632. ServiceResultEntity sre = new ServiceResultEntity();
  6633. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6634. try
  6635. {
  6636. string sqlString = @"
  6637. SELECT
  6638. DISTINCT
  6639. TP_PM_FQCITEMSPLAN.PLANID ,
  6640. TP_PM_FQCITEMSPLAN.GOODSCODE ,
  6641. TP_PM_FQCITEMSPLAN.MATERIALCODE ,
  6642. TP_MST_DATADICTIONARY.DICTIONARYVALUE ,
  6643. TP_PM_FQCITEMSPLAN.PLANDATE ,
  6644. OUTQUANTITY ,
  6645. TP_PM_FQCITEMSPLAN.PLANINSPECTIONQUANTITY ,
  6646. TP_PM_FQCITEMSPLAN.INSPECTIONQUANTITY ,
  6647. DECODE( NVL( INSPECTIONQUANTITY, 0 ), 0, '0%', TO_CHAR( ( (NVL( INSPECTIONQUANTITY, 0 ))/ DECODE( NVL( PLANINSPECTIONQUANTITY, 1 ), 0, 1, NVL( PLANINSPECTIONQUANTITY, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS WANCHENG
  6648. FROM TP_PM_FQCITEMSPLAN
  6649. LEFT JOIN TP_MST_DATADICTIONARY ON TP_MST_DATADICTIONARY.DICTIONARYID=TP_PM_FQCITEMSPLAN.INSPECTTYPE
  6650. LEFT JOIN TP_MST_GOODS ON TP_MST_GOODS.GOODSID=TP_PM_FQCITEMSPLAN.GOODSID
  6651. LEFT JOIN tp_mst_goodsType gt ON gt.goodstypeid = TP_MST_GOODS.goodstypeid
  6652. AND TP_MST_DATADICTIONARY.DICTIONARYTYPE='TPC021'
  6653. WHERE TP_PM_FQCITEMSPLAN.VALUEFLAG=1 AND TP_PM_FQCITEMSPLAN.ACCOUNTID=1
  6654. AND TP_PM_FQCITEMSPLAN.PLANDATE = :PLANDATE
  6655. AND (:INSPECTTYPE = 0 OR TP_PM_FQCITEMSPLAN.INSPECTTYPE IS NULL OR TP_PM_FQCITEMSPLAN.INSPECTTYPE = :INSPECTTYPE)
  6656. AND (TP_PM_FQCITEMSPLAN.GOODSCODE = :GOODSCODE OR :GOODSCODE IS NULL OR :GOODSCODE='')
  6657. AND (:GOODSTYPE IS NULL OR instr(gt.goodstypecode, :GOODSTYPE) = 1)";
  6658. OracleParameter[] parameters = new OracleParameter[]
  6659. {
  6660. new OracleParameter(":GOODSTYPE", OracleDbType.Varchar2, cre.Properties["GoodsType"], ParameterDirection.Input),
  6661. new OracleParameter(":GOODSCODE", OracleDbType.Varchar2, cre.Properties["GoodsCode"], ParameterDirection.Input),
  6662. new OracleParameter(":PLANDATE", OracleDbType.Date, cre.Properties["CreateTime"], ParameterDirection.Input),
  6663. new OracleParameter(":INSPECTTYPE", OracleDbType.Int32, cre.Properties["InpectType"], ParameterDirection.Input),
  6664. };
  6665. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6666. return sre;
  6667. }
  6668. catch (Exception ex)
  6669. {
  6670. throw ex;
  6671. }
  6672. finally
  6673. {
  6674. if (con.ConnState == ConnectionState.Open)
  6675. {
  6676. con.Close();
  6677. }
  6678. }
  6679. }
  6680. /// <summary>
  6681. /// BOM物料检验计划明细
  6682. /// </summary>
  6683. /// <param name="sUserInfo"></param>
  6684. /// <returns></returns>
  6685. public static ServiceResultEntity GetDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6686. {
  6687. ServiceResultEntity sre = new ServiceResultEntity();
  6688. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6689. try
  6690. {
  6691. string sqlString = @"
  6692. SELECT
  6693. DISTINCT
  6694. TPF.BARCODE,
  6695. TMU.USERCODE,
  6696. TMU.USERNAME
  6697. FROM
  6698. TP_PM_FQCITEMSDATA TPF
  6699. LEFT JOIN TP_MST_USER TMU ON TPF.CREATEUSERID = TMU.USERID
  6700. WHERE
  6701. TPF.PLANID = :PLANID ";
  6702. OracleParameter[] parameters = new OracleParameter[]
  6703. {
  6704. new OracleParameter(":PLANID", OracleDbType.Int32, cre.Properties["PLANID"], ParameterDirection.Input),
  6705. };
  6706. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6707. return sre;
  6708. }
  6709. catch (Exception ex)
  6710. {
  6711. throw ex;
  6712. }
  6713. finally
  6714. {
  6715. if (con.ConnState == ConnectionState.Open)
  6716. {
  6717. con.Close();
  6718. }
  6719. }
  6720. }
  6721. #endregion
  6722. #region QC检验分析汇总表
  6723. /// <summary>
  6724. /// BOM物料检验明细表
  6725. /// </summary>
  6726. /// <param name="sUserInfo"></param>
  6727. /// <returns></returns>
  6728. public static ServiceResultEntity GetInspectName(SUserInfo sUserInfo, ClientRequestEntity cre)
  6729. {
  6730. ServiceResultEntity sre = new ServiceResultEntity();
  6731. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6732. try
  6733. {
  6734. string sqlString = @"SELECT ITEMSID,INSPECTTYPE,INSPECTNAME FROM TP_PM_FQCITEMS WHERE VALUEFLAG=1 and ACCOUNTID=:AccountID";
  6735. OracleParameter[] parameters = new OracleParameter[]
  6736. {
  6737. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6738. };
  6739. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6740. return sre;
  6741. }
  6742. catch (Exception ex)
  6743. {
  6744. throw ex;
  6745. }
  6746. finally
  6747. {
  6748. if (con.ConnState == ConnectionState.Open)
  6749. {
  6750. con.Close();
  6751. }
  6752. }
  6753. }
  6754. /// <summary>
  6755. /// 检验计划汇总
  6756. /// </summary>
  6757. /// <param name="sUserInfo"></param>
  6758. /// <returns></returns>
  6759. public static ServiceResultEntity Get080116Detail(SUserInfo sUserInfo, ClientRequestEntity cre)
  6760. {
  6761. ServiceResultEntity sre = new ServiceResultEntity();
  6762. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6763. try
  6764. {
  6765. string sqlString = @"
  6766. WITH 基础 AS(
  6767. SELECT
  6768. INSPECTITEM ,
  6769. COUNT(DISTINCT BARCODE) COUNTS,
  6770. SUM(CASE WHEN ISQUALIFIED =0 THEN 1 else 0 END) ISQUALIFIED
  6771. FROM
  6772. TP_PM_FQCITEMSDATA
  6773. WHERE VALUEFLAG=1
  6774. AND (ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6775. AND CREATETIME>=:CREATETIMEBEGIN
  6776. AND CREATETIME<=:CREATETIMEEND
  6777. GROUP BY INSPECTITEM
  6778. ),
  6779. 总不合格数 AS (
  6780. SELECT
  6781. SUM(CASE WHEN ISQUALIFIED =0 THEN 1 else 0 END) 总不合格数
  6782. FROM TP_PM_FQCITEMSDATA
  6783. WHERE VALUEFLAG=1
  6784. AND CREATETIME>=:CREATETIMEBEGIN
  6785. AND CREATETIME<=:CREATETIMEEND
  6786. AND (ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6787. )
  6788. SELECT
  6789. INSPECTITEM,COUNTS,ISQUALIFIED,
  6790. DECODE( NVL( ISQUALIFIED, 0 ), 0, '0%', TO_CHAR( ( NVL( ISQUALIFIED, 0 ) / DECODE( NVL( COUNTS, 1 ), 0, 1, NVL( COUNTS, 1 ) ) ) * 100, 'fm99990.0' ) || '%' ) AS BUHEGELV,
  6791. DECODE( NVL( ISQUALIFIED, 0 ), 0, '0%', TO_CHAR( ( NVL( ISQUALIFIED, 0 ) / DECODE( NVL( 总不合格数, 1 ), 0, 1, NVL( 总不合格数, 1 ) ) ) * 100, 'fm99990.0' ) || '%' ) AS ZHANBI
  6792. FROM 基础
  6793. LEFT JOIN 总不合格数 ON 1=1";
  6794. OracleParameter[] parameters = new OracleParameter[]
  6795. {
  6796. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["ITEMSID"], ParameterDirection.Input),
  6797. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6798. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6799. };
  6800. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6801. return sre;
  6802. }
  6803. catch (Exception ex)
  6804. {
  6805. throw ex;
  6806. }
  6807. finally
  6808. {
  6809. if (con.ConnState == ConnectionState.Open)
  6810. {
  6811. con.Close();
  6812. }
  6813. }
  6814. }
  6815. /// <summary>
  6816. /// 检验计划明细
  6817. /// </summary>
  6818. /// <param name="sUserInfo"></param>
  6819. /// <returns></returns>
  6820. public static ServiceResultEntity GetDetailInspection(SUserInfo sUserInfo, ClientRequestEntity cre)
  6821. {
  6822. ServiceResultEntity sre = new ServiceResultEntity();
  6823. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6824. try
  6825. {
  6826. string sqlString = @"
  6827. SELECT
  6828. TPF.BARCODE,
  6829. TPF.INSPECTITEM INSPECTITEMS,
  6830. TPF.INSPECTVALUE,
  6831. TMU.USERCODE,
  6832. TMU.USERNAME,
  6833. TPF.CREATETIME
  6834. FROM
  6835. TP_PM_FQCITEMSDATA TPF
  6836. LEFT JOIN TP_MST_USER TMU ON TPF.CREATEUSERID = TMU.USERID
  6837. WHERE
  6838. TPF.VALUEFLAG = 1
  6839. AND TMU.VALUEFLAG = 1
  6840. AND BARCODE IN (
  6841. SELECT
  6842. BARCODE
  6843. FROM
  6844. TP_PM_FQCITEMSDATA
  6845. WHERE
  6846. VALUEFLAG = 1
  6847. AND ( ITEMSID = NULL OR NULL IS NULL OR NULL = '' )
  6848. AND CREATETIME >= :CREATETIMEBEGIN
  6849. AND CREATETIME <= :CREATETIMEEND
  6850. AND INSPECTITEM = :INSPECTITEM
  6851. AND ISQUALIFIED = 0
  6852. ) ORDER BY BARCODE DESC";
  6853. OracleParameter[] parameters = new OracleParameter[]
  6854. {
  6855. new OracleParameter(":INSPECTITEM", OracleDbType.Varchar2, cre.Properties["INSPECTITEM"], ParameterDirection.Input),
  6856. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6857. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6858. };
  6859. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6860. return sre;
  6861. }
  6862. catch (Exception ex)
  6863. {
  6864. throw ex;
  6865. }
  6866. finally
  6867. {
  6868. if (con.ConnState == ConnectionState.Open)
  6869. {
  6870. con.Close();
  6871. }
  6872. }
  6873. }
  6874. #endregion
  6875. }
  6876. }